本节书摘来自异步社区《深入解析IPv6(第3版)》一书中的第2章,第2.6节,作者: 【美】Joseph Davies 更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.6 禁用IPv6
从微软的角度看,IPv6是Windows操作系统中不可或缺的一部分,因此在操作系统发展的过程中,Windows服务与应用测试始终包含了IPv6技术的相关环节。由于Windows设计上就包含了IPv6技术,因此微软也无法对禁用IPv6的效果进行任何测试。如果在Windows中禁用了IPv6,那么一些组建也许就无法正常工作。此外,有一些也许你认为与IPv6无关的应用(如远程协助、家庭组、DirectAccess和Windows Mail)也会失效。
因此,即使用户所处的网络中并不包含IPv6环境,无论本地还是隧道连接的环境都与IPv6无关,微软依然建议让系统中的IPv6保持启用状态。这样,那些纯IPv6应用和服务(如家庭组、DirectAccess)也就不会失效,同时这台主机也可以利用IPv6的连接进行通信。不过,本节的后续部分仍会介绍如何禁用IPv6(如无必要,请勿尝试)。
不同于Windows XP和Windows Server 2003,Windows Server 2012、Windows Server 2008 R2、Windows Server 2008、Windows 8、Windows 7和Windows Vista中的IPv6无法卸载。如需为网络连接文件夹中的特定连接禁用IPv6,可以打开连接属性,并清除“此连接使用下列项目”列表中TCP/IPv6旁的勾选框。这个方法可以禁用LAN接口和连接上的IPv6,但不能禁用隧道接口的IPv6或IPv6 loopback接口。
为了在Windows中有选择地禁用IPv6组件并配置IPv6行为,用户必须创建并配置下述注册表项:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicestcpip6ParametersDisabled Components。DisabledComponents(禁用的组件)条目默认情况下并不存在,需要用注册表编辑器(Regedit.exe)手动创建。若DisabledComponents条目不存在,说明它默认值为0。
DisabledComponents注册值会对主机所有的接口产生影响。而网络选项卡的复选框只会对特定接口产生影响。但DisabledComponents注册值不会影响TCP/IPv6组建旁边复选框的状态。因此,即使DisabledComponents注册键值被设置为禁用IPv6,网络选项卡各个接口的相应复选框仍然会保持勾选的状态。这一点应该注意。
DisabledComponents注册值是一个位掩码,它可以控制下列标记,从低顺序位开始(0位)。
- 0位:设置为1会禁用所有IPv6隧道接口,包括ISATAP、6to4和Teredo隧道。默认值为0。
- 1位:设置为1会禁用所有基于6to4的接口。默认值为0。
- 2位:设置为1会禁用所有基于ISATAP的接口。默认值为0。
- 3位:设置为1会禁用所有基于Teredo的接口。默认值为0。
- 4位:设置为1会在所有非隧道接口禁用IPv6,包括LAN接口和基于PPP的接口。默认值为0。
- 5位:设置为1修改默认前缀策略表,使设备在尝试建立连接时选用IPv4而非IPv6。默认值为0。如需进一步了解有关有关前缀规则表的内容,请参阅第9章。
- 6位:保留。
- 7位:设置为1会禁用所有基于IP-HTTPS的接口。默认值为0。
为了获取一组指定了位的DisabledComponents条目的值,可以创建一个二进制数,即在对应的比特位设置所需键值,然后将它转换为十六进制数。例如,如果想禁用6to4接口、Teredo接口,并选择IPv4(而非IPv6),就会得出二进制数101010。将它转换到十六进制后,Disabled Components条目的值即为0x2A。
表2-2列出了一些常用的配置组合以及DisabledComponents的对应值。
https://yqfile.alicdn.com/e323d0f2f5d7ebe35c969228e40ee04a98d1e2fd.png" >
要使对DisabledComponents注册表值的修改生效,必须重启计算机。
管理员既可以使用注册表编辑器在单个计算机上设置DisabledComponents,也可以使用Active Directory和组策略,通过自定义的.ADM文件来设置一组计算机的DisabledComponents。如果使 用自定义的.ADM文件,要把DisabledComponents注册表值从.ADM文件中删除,Disabled Components注册值不会因为计算机应用了新的.ADM文件,就自动从计算机的注册表中删除。