我们尝试在新的Windows Server 2008 R2计算机上安装第三方软件产品,并发现除了通过本地localhost
或计算机名称(例如:parsing为localhost
VPS-Web
)之类的环回地址访问本地服务外,所有工作都可以正常工作。 我们不使用IPv6,并希望在软件兼容之前将其禁用。
我尝试使用这些说明来禁用Windows 2008 R2上的IPv6,但并未禁用localhost
的协议。 Ping localhost
或VPS-Web
仍将返回::1:
而不是127.0.0.1
。 我可以使用ping localhost -4
来获取正确的地址,但IPv6优先于IPv4,因此第三方软件只能获得IPv6地址。
我最初检查了SilverbackNetbuild议的主机文件,但在Windows 2008 R2服务器上,这是默认文件:
# localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost
#
表示主机文件中的注释,因此所有条目都被注释掉了,第一行有点混乱。 然后我注意到,有两个localhost的条目被注释掉了,所以我尝试去注释一个IPv4,它的工作! 我应该先尝试一下,但是我被第一线抛弃了。 使用下面的主机文件ping计算机名称或本地主机将始终返回一个IPv4地址,它解决了第三方软件的问题!
# localhost name resolution is handled within DNS itself. # ::1 localhost 127.0.0.1 localhost 127.0.0.1 VPS-Web
设置“DisabledComponents”= 0x20下
HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\ TCPIP6 \参数\
将设置该机器在前缀策略中使用IPv4而不是IPv6。
创buildregistry项,如果它不存在。
有关使用DisabledComponents
registry值的初始ServerFault线程确实是实现此目的的最佳方法。 主机文件的调整不应该在运行良好的networking中进行。 如果您拥有Active Directory,registry调整也更容易通过组策略进行部署和恢复。
它没有工作的原因是因为DisabledComponents
registry设置被读为一组位标志,而不是简单地打开或closures。 这里是微软关于这个主题的官方文档:
如何在Windows 7,Windows Vista,Windows Server 2008 R2和Windows Server 2008中禁用IP版本6(IPv6)或其特定组件
简短的版本是,要在Vista / 2008及更高版本上完全禁用IPv6,请将DisabledComponents
的值设置为0xff
。 我在我们没有明确使用IPv6的每台机器上都这样做。 它具有显着缩短ipconfig
命令的输出的好的副作用。
您是否尝试从%systemroot%\ system32 \ drivers \ etc中的主机文件中删除条目? 这应该做到这一点,如果你只是需要“localhost”永远是IPv4。 但是,如果它是基于服务器名称,这可能不会工作。
您也可以进入NIC本身的属性,取消选中IPv6框,从而启用IPv4。 应该做的伎俩。
尝试添加一行到你的主机文件,如:
::1 VPW-Web
这应该使parsing器能够获得VPW-Web
作为IPv6回送的名称。