DNS被劫持,导致Unable to connect'to the remote server,修改Hosts解决

朋友多真的很好。。


今天公司的几个客户,说软件无法访问了,同事在群里发图报错内容是:Unable to connect'to the remote server,然后抱着事不关己高高挂起的态度,冒了一句:无法连接到远程服务器,他们那边网络有问题。

然后到处问其他同事,得到的答案都是一样的,他们那边网络有问题;然后客户又一直在问,能QQ能远程能开网页,就是你们的软件不能用。


半天无果。。。


哥们实在看不下去,去问了下,然后防火墙关闭的,安全防护软件木有,DNS也改了,路由也没用任何配置,电脑、猫、路由也都重启了。
感觉没问题啊,只有拿一个域名到他们机器ping了一下,看能通不。嗯嗯,通的。。。正准备关了,多跳了几行后,才发现。。。尼玛啊,解析的IP不对啊。。这尼玛是DNS被劫持了?。。自己机器再ping了一次,让朋友的机器也ping了一次,是对的,看来多半是DNS被劫持了。百度查了这个IP,尼玛什么北京教育网。然后同事一脸焦急的望着我,问我咋办。。我尼玛。。。
咋办。。哥们不专业啊。。百度了下,就是下软件去恢复DNS,改DNS之类的。。。改了之后还会被劫持的啊。。
问了一个搞运维的哥们,去把Hosts文件改了就完事了,我一拍脑门,我草。。我居然忘了。。。然后立马让同事远程处理,立马见效了。。我草


然后为了考虑一群置业顾问去搞这个,会各种问,还是老老实实写了控制台应用程序直接去改吧。。



static void Main(string[] args)
        {
            string Url = @"C:\Windows\System32\drivers\etc\hosts";
            string OldMessage = Read(Url);
            OldMessage += "XXX.XX.XX.XXX XXX.XXX.XX";
            Write(Url, OldMessage);
        }


        #region 文件读写
        /// <summary>
        /// 读取文件
        /// </summary>
        /// <param name="path"></param>
        public static string Read(string path)
        {
            StreamReader sr = new StreamReader(path, System.Text.Encoding.Default);
            StringBuilder sb = new StringBuilder();
            string line;
            while ((line = sr.ReadLine()) != null)
            {
                sb.Append(line.ToString() + Environment.NewLine);
            }
            sr.Close();
            return sb.ToString();
        }


        /// <summary>
        /// 写入文件
        /// </summary>
        /// <param name="path"></param>
        /// <param name="Info"></param>
        public static void Write(string path, string Info)
        {
            FileStream fs = new FileStream(path, FileMode.Create);
            StreamWriter sw = new StreamWriter(fs);
            //开始写入
            sw.Write(Info);
            //清空缓冲区
            sw.Flush();
            //关闭流
            sw.Close();
            fs.Close();
        }
        #endregion



这个错误信息“MySql.Data.MySqlClient.MySqlException:‘Unable to connect to any of the specified MySQL hosts.’”表示你的应用程序无法连接到指定的MySQL主机。这通常是由于以下几个原因导致的: 1. **网络问题**: - 检查你的网络连接是否正常,确保你的计算机可以访问MySQL服务器所在的网络。 - 确认防火墙设置是否允许从你的客户端到MySQL服务器的连接。 2. **MySQL服务器未运行**: - 确保MySQL服务器正在运行。你可以通过命令行或服务管理工具来检查和启动MySQL服务。 3. **连接字符串错误**: - 检查你的连接字符串是否正确,包括服务器地址、端口号、数据库名称、用户名和密码等。 - 确保服务器地址是正确的,并且没有拼写错误。 4. **权限问题**: - 确保你使用的MySQL用户有权限从你的客户端IP地址连接到MySQL服务器。 - 检查MySQL用户的权限设置,确保其允许从你的客户端IP地址进行连接。 5. **DNS解析问题**: - 如果使用的是域名而不是IP地址,确保域名能够正确解析为IP地址。 6. **端口被占用**: - 确保MySQL服务器监听的端口没有被其他应用程序占用。 7. **MySQL配置问题**: - 检查MySQL配置文件(如`my.cnf`或`my.ini`),确保绑定地址(`bind-address`)设置正确,允许外部连接。 8. **SSL/TLS问题**: - 如果使用了SSL/TLS加密连接,确保证书和密钥配置正确。 以下是一些可能的解决方案: ```csharp // 示例连接字符串 string connectionString = "Server=your_server_address;Port=3306;Database=your_database;User Id=your_username;Password=your_password;"; using (var connection = new MySqlConnection(connectionString)) { try { connection.Open(); Console.WriteLine("连接成功!"); } catch (MySqlException ex) { Console.WriteLine($"连接失败: {ex.Message}"); } } ``` 请根据具体情况逐一排查上述可能的原因,找到并解决问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值