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