有一天遇到一个很奇怪的问题,局域网中一台机器无法上网。我打开一看,原来是无法获取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。也就是基于这个原理的!
|