有一天遇到一個很奇怪的問題,局域網中一臺機器無法上網。我打開一看,原來是無法獲取IP。我的網絡中DHCP是開著的,其它電腦可以獲取說明是這臺機器出了問題!
先查DHCP服務,打開狀態顯示正常。
先重啟下服務,net stop dhcp停止,net start dhcp啟動服務。
發現沒有去獲取IP就直接顯示受限制了,這是咋回事呢。通常應該先去獲取,等好一會才顯示受限制的。到這里,還沒明白原因出在哪里的。
既然DHCP分配不行,試著手動配置下。輸入內網IP、網關、DNS等信息。
用常規的方法來測試下。先ping 本地網關,正常返回。說明物理連線是通的,呵呵!不有擔心是網線和網卡了。接著ping 外網網關58.221.201.65 也是通的,說明是可以與ISP的服務器通信的。接著繼續ping DNS 61.147.37.1 也是通的。網絡是正常的,這就郁悶了!還是不能上網……
網絡都正常,那接下來就看DNS解析方面了。仍然打開cmd,ping www.sina.com 發現與平常很不一樣,ping www.sina.com Pinging ? with 32 bytes of data:。這是什么情況,有個問號。不知道www.sina.com是哪個嗎?解析不了?再ping其它域名也是一樣,這下麻煩了。難道要重新做系統?現在人人都把360當個寶,用360修復下IE看看。結果仍然如此,唉!
先請教下老師百度和google吧!打開搜索,能ping IP 不能ping域名。這下好了,列出來很多答案。要根據情況仔細判斷哪個能解決問題了。看了幾個感覺都不靠譜的,有的說DNS問題,有的說和交換機負載有關,有的說和更新了補丁有關。接下來發現有人說是winsock網絡應用層的問題。刪除注冊中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock2 里面的鍵值,那就嘗試下。刪除重啟,發現沒能解決。繼續找答案……
看到一個大俠發的問題,和我情況一樣。說是一個命令就可以解決了,我有點郁悶。cmd下執行netsh winsock reset,重新啟動故障修復。好,再次嘗試下。
意外的驚喜出現了,可以正常上網了。ping的問題也解決了,于是再次使用DHCP獲取IP。仍然可以,說明這次故障完全解決了。
學習使人進步,每一個問題都可以帶來很多學習的知識!就這一個問題,我們又可以學到更深入的東西。再研究下這個netsh winsock reset。得到的答案是:恢復winsock為默認。winsock是Windows網絡編程接口,winsock工作在應用層,它提供與底層傳輸協議無關的高層數據傳輸編程接口。
再次回想下,這種情況是惡意程序破壞了winsock工作。在此同時又想到了很多修復的軟件都提供了修復網絡連接功能。如winsockXPFix.exe修復XP。也就是基于這個原理的!
|