最近要在虚拟机上安装 git ,然后托管一个项目,搞得我是焦头烂额。今天下午我卸载了vmware workstation ,但是奇怪的事就发生了,我的google chrome 浏览器没法浏览网页了。打开浏览器就出现了以下的界面:
这时我输入了搜狐主页也出现了类似的提示,我想可能是 DNS 出错了,接着我又输入了 http://localhost ,发现正常(这是因为本地安装了IIS服务器,这个我事先就知道),所以我断定这不是浏览器的问题。接着又再次证实了这个猜测,我打开了火狐浏览器发现问题一样。但是奇怪的事情再次发生了,我打开了系统自带的IE浏览器,发现能正常浏览网页。这个时候就纳闷了,这是浏览器的问题吗?
这时我打开了 C盘下的 C:\Windows\System32\drivers\etc\hosts 文件发现和以前一样并没有被不正常的修改过,
于是我又在Google chorme中输入了 209.116.186.217,发现问题还是一样。
于是我就百思不得其解了。。。。。。于是就百度了。。。。。。
结果百度正解:在命令行输入: netsh winsock reset
为什么要这么做呢???
------------------------------------------------------------------------------------------>>>>>>>>>>>
先看一下 netsh 命令是干什么的
总的来说命令 netsh 是对计算机网络配置的操作。
winsock 是windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层数据传输编程接口,winsock 是在 windows操作系统中与 Tcp/Ip 协议栈有关的。命令 netsh winsock reset 是对winsock 目录的重置(在注册表中我们可以看到 winsock 和 winsock2的目录)。综上所述,导致问题出现的原因可能是在卸载软件的过程当中损坏了winsock 的相关目录,或者是恶意软件修改了winsock目录中的相关内容,导致 windows 系统内的 Tcp/Ip 协议栈出现了问题。但是为什么这没有使得 IE 浏览器无法访问网络呢???而且要补充的是当前比如 360 软件的账号依然可以登录。所以问题可以改为 “为什么这样只是导致 google chorme 和 firefox 无法正常访问网络???”
我自己的看法:浏览器之间的异常(Google chorme 无法访问而 IE 可以访问)的原因可能是因为 其它浏览器访问网络需要windows 提供的网络访问接口(这是在编写浏览器软件是就已经决定了),而 IE 浏览器并没有访问这个网络编程接口,这可能是因为在编写 windows 操作系统时程序员只是提供了一个网络访问接口供其它程序使用,而自己用的是另一套,这样做的好处是不依赖于操作系统而又附属在操作系统之上!!另外浏览器与非浏览器之间的访问差异可能是因为被改变的只是 Tcp/Ip 协议栈中的Http 协议,而其它的协议并没有改变。
最后附加两个刚学到的实例:
1 netsh 的实例 :启用 windows 自身携带的发射无线WIFI的功能
netsh wlan show dirvers //检查是否支持承载网络
netsh wlan set hostednetwork mode=allow ssid=你的网络名 key=密码 //设置打开网络承载以及设置分享网络信息
设置为分享网络
netsh wlan start hostednetwork //打开网络
2 winsock 的实例:删除winsock文件后的处理方法
其实写到最后还是没有找到问题出现的根本原因,我觉得这只能在以后的学习中慢慢体会吧
2014-07-30 22:38:05