这两天电脑的网络总是断断续续,浏览器解析网页、QQ收发文件或消息贼慢。
因为之前修改过VMware虚拟网卡的配置,所以猜测可能是vmware的虚拟网卡配置不当,导致了宿主机网络异常。于是把vmnet1和vmnet8适配器禁用,果然宿主机网络恢复正常。
然后逐个排除,确认了是vmnet1导致的网络问题。
想起来之前是修改过vmnet1的配置。但记不清具体修改哪里了。
那就重置一下vmnet1吧。 在vmvare里 编辑-->虚拟网络编辑器-->更改设置-->还原默认设置 果然,宿主机网络就恢复正常了。
这个方法,只是暂时解决了宿主机的网络问题。 但是还不知道产生这个问题的具体原理。
今天同学也出现了这个问题,帮他去看了,发现是vmnet1网卡设置成固定ip,就会出现这个问题,设置回dhcp,就恢复正常。
猜测原因可能是,因为一个pc只能设一个网关。给vmnet1网卡也设了网关,导致宿主机pc连接外网时,可能把vmnet1当作网关,此时传输数据会失败。而设置dhcp时,dhcp只是分配了ip,没有分配网关,所有往外网的数据都能正常转发,网络也就正常了(不确定,有待验证)
更详细的原因猜测: 其实windows宿主机也可以看作一个路由器,里面也有路由表,所谓网关,其实就是路由表里的一个条目,这个条目的目的网络和目的子网掩码全0,下一跳是网关的ip,可以理解成这个条目是默认路由,若需要转发出的分组跟其他路由条目都不匹配,就按这条默认路由条目转发。 如果有两个网关的话,就有了两个花费和优先级都相同的路由条目了,分组往外网转发时,有时会转发到真正连外网的网关,有时会转发到到设了网关的虚拟网卡里。 若转发到虚拟网卡,连接自然失败。