Windows优先使用IPv4

时间:2024-03-03 18:34:41

当前主流的Windows系统(从Windows 7之后)都会同时使用ipv6和ipv4,并且优先使用ipv6。当你ping另一个服务器的时候就能看到,优先使用的是ipv6进行通信。由于能够在DNS中解析到AAAA记录,所以本地服务器会优先使用ipv6进行通信,对方也会回应。如果看不到图,请点我

有些情况下,我们想让服务器优先使用ipv4通信怎么办呢?微软推荐是修改注册表来实现,而不是禁用ipv6。简单的从网卡属性里去掉ipv4的钩,并不能禁用ipv6。在以下位置添加一个REG_DWORD值,HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents

具体配置参数信息如下图:

默认没有这个键值的时候相当于全0,禁用ipv6是全1,不过并不推荐禁用。只要根据我们的具体需求配置对应位置的参数就可以了。我们目前需要的就是将PreferIpv4这个位置1。高位在下方,PreferIpv4在从高到低的第3位,对应的二进制值就是00100000。转换成16进制0x20或者10进制32,对应写入注册表重启就可以了。我在client-233这台服务器上将DisabledComponents设置成了32,并重启。

重启后,别的计算机再来ping,会发现无法返回结果。因为发出ping的服务器还是会优先使用ipv6来通信。强制使用ipv4就能ping通了。由此看来,这个选项似乎并不是仅仅优先使用ipv4,而是不会响应来自ipv4的请求。修改回来只要将DisabledComponents改成0,并重启就可以了。全程不需要修改网卡属性上的ipv6设置。