在 Windows 中为高级用户配置 IPv6 的指南
Windows Vista、Windows Server 2008 和更高版本的 Windows 实施 RFC 3484,并使用前缀表确定当多个地址可用于域名系统 (DNS) 名称时要使用的地址。
默认情况下,相比 IPv4 地址,Windows 更倾向于使用 IPv6 全球单播地址。
原始 KB 编号:929852
总结
IT 管理员通常禁用 IPv6 来排查与网络相关的问题,例如名称解析问题。
重要
Internet 协议版本 6 (IPv6) 是 Windows Vista 和 Windows Server 2008 及更高版本的必要组成部分。
不建议禁用 IPv6 或 IPv6 组件或从接口取消绑定 IPv6。 如果这样做,某些 Windows 组件可能无法正常工作。
我们建议你在前缀策略中使用“优先 IPv4 而非 IPv6”,而不是禁用 IPV6。
使用注册表项配置 IPv6
重要
请认真遵循本部分所述的步骤。 如果注册表修改不正确,可能会发生严重问题。 在修改注册表之前,请备份注册表,以便在出现问题时可以还原。
备注
- 必须重启计算机,这些更改才能生效。
- 在此更改生效之后,0 或 32 以外的值会导致“路由和远程访问”服务失败。
可以通过修改以下注册表项来配置 IPv6 功能:
位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\
名称:DisabledComponents
类型:REG_DWORD
最小值:0x00(默认值)
最大值:0xFF(禁用 IPv6)
IPv6 功能 | 注册表值和注释 |
---|---|
优先 IPv4 而非 IPv6 | 十进制 32 十六进制 0x20 二进制 xx1x xxxx 推荐,而非禁用 IPv6。 若要确认 IPv4 优先于 IPv6,请执行以下步骤: - 打开命令提示符或 PowerShell。 - 使用“ping”命令检查首选 IP 版本。 例如,“ping bing.com”。 - 如果首选 IPv4,则应在响应中看到返回的 IPv4 地址。 网络连接: - 打开命令提示符或 PowerShell。 - 使用'netsh 接口 ipv6 显示 prefixpolicies - 检查“前缀”策略是否已修改为确定 IPv4 的优先级。 -“:ffff:0:0/96”前缀的优先级应高于“::/0”前缀。 例如,如果有两个条目,一个条目优先级为 35,另一个条目优先级为 40,则优先使用优先级为 40 的条目。 |
禁用 IPv6 | 十进制 255 十六进制 0xFF 二进制 1111 1111 如果在 Windows 7 SP1 或 Windows Server 2008 R2 SP1 中禁用 IPv6 后遇到启动延迟问题,请参阅在 Windows 中禁用 IPv6 后出现启动延迟。 此外,如果错误地将“DisabledComponents”注册表设置的值设为 0xffffffff,导致禁用 IPv6,则系统启动将会延迟 5 秒。 正确的值应为 0xff。 有关详细信息,请参阅 Internet 协议版本 6 (IPv6) 概述。 “DisabledComponents”注册表值不会影响复选框的状态。 因此,即使 DisabledComponents 注册表项设置为禁用 IPv6,也仍可勾选每个接口的“网络”选项卡中的复选框。 这是正常现象。 不能完全禁用 IPv6,因为在系统内部许多 TCPIP 任务都会用到 IPv6。 例如,配置此设置后仍可运行 ping ::1 。 |
在所有非隧道接口上禁用 IPv6 | 十进制 16 十六进制 0x10 二进制 xxx1 xxxx |
在所有隧道接口上禁用 IPv6 | 十进制 1 十六进制 0x01 二进制 xxxx xxx1 |
在所有非隧道接口(环回接口除外)和 IPv6 隧道接口上禁用 IPv6 | 十进制 17 十六进制 0x11 二进制 xxx1 xxx1 |
优先 IPv6 而非 IPv4 | 二进制 xx0x xxxx |
在所有非隧道接口上重新启用 IPv6 | 二进制 xxx0 xxxx |
在所有隧道接口上重新启用 IPv6 | 二进制 xxx xxx0 |
在非隧道接口和 IPv6 隧道接口上重新启用 IPv6 | 二进制 xxx0 xxx0 |
可以按照以下步骤修改注册表项:
打开管理员“命令提示符”窗口。
运行以下命令:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" /v DisabledComponents /t REG_DWORD /d <value> /f
注意
将 <值> 替换为对应的值。
如何计算注册表值
Windows 使用位掩码检查 DisabledComponents 值并确定是否应禁用组件。
若要了解每个位(从低到高)控制哪个组件,请参阅下表。
名称 | Setting |
---|---|
Tunnel | 禁用隧道接口 |
Tunnel6to4 | 禁用 6to4 接口 |
TunnelIsatap | 禁用 Isatap 接口 |
Tunnel Teredo | 禁用 Teredo 接口 |
本机 | 禁用本机接口(也称为 PPP) |
PreferIpv4 | 在默认前缀策略中优先使用 IPv4 |
TunnelCp | 禁用 CP 接口 |
TunnelIpTls | 禁用 IP-TLS 接口 |
对于每一位,“0”表示 false,“1”表示 true。 有关示例,请参阅下表。
Setting | 在前缀策略中优先使用 IPv4 over IPv6 | 在所有非隧道接口上禁用 IPv6 | 在所有隧道接口上禁用 IPv6 | 在非隧道接口(环回接口除外)和 IPv6 隧道接口上禁用 IPv6 |
---|---|---|---|---|
禁用隧道接口 | 0 | 0 | 1 | 1 |
禁用 6to4 接口 | 0 | 0 | 0 | 0 |
禁用 Isatap 接口 | 0 | 0 | 0 | 0 |
禁用 Teredo 接口 | 0 | 0 | 0 | 0 |
禁用本机接口(也称为 PPP) | 0 | 1 | 0 | 1 |
在默认前缀策略中优先使用 IPv4。 | 1 | 0 | 0 | 0 |
禁用 CP 接口 | 0 | 0 | 0 | 0 |
禁用 IP-TLS 接口 | 0 | 0 | 0 | 0 |
Binary | 0010 0000 | 0001 0000 | 0000 0001 | 0001 0001 |
十六进制 | 0x20 | 0x10 | 0x01 | 0x11 |
此注册表值不会影响以下复选框的状态。 即使此注册表项设置为禁用 IPv6,也仍可以选中每个接口的“网络”选项卡中的复选框。 这是正常现象。
从接口取消绑定 IPv6
注意
不建议从以太网或 WiFi 网络适配器取消绑定 IPv6,而无需合理。 Windows 已经过测试,并且某些产品和功能需要 IPv6 绑定且功能正常。
从网络适配器取消绑定 IPv6 可能会导致 Windows 配置不受支持。
从网络适配器取消绑定协议时,强烈建议使用基于 WMI 的方法,例如 Disable-NetAdapterBinding
。
可以使用以下方法之一从网络接口取消绑定 IPv6:
- 在网络属性 GUI 中取消选择 Internet 协议版本 6 (TCP/IPv6 )。 请参阅上面的屏幕截图。
- 运行 PowerShell 命令
Disable-NetAdapterBinding -Name "<MyAdapter>" -ComponentID ms_tcpip[6]
IPv6 隧道接口
默认情况下,当为接口分配公共 IPv4 地址时,Windows 系统会启用 6to4 隧道协议(公共 IPv4 地址是指除 10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16 范围外的任何 IPv4 地址)。 6to4 为每个地址的 6to4 隧道接口分配一个 IPv6 地址,并且 6to4 将在分配的 DNS 服务器上动态注册这些 IPv6 地址。
如果这不是预期行为,我们建议你在受影响的主机上禁用 IPv6 隧道接口。
可以使用下列方法之一禁用 6to4 隧道协议和其他 IPv6 转换技术:
将
DisabledComponents
注册表项设置为0x01。设置以下组策略:
计算机配置\管理模板\网络\TCPIP 设置\IPv6 转换技术- 将 6to4 状态 设置为 “已禁用”
- 将 ISATAP Sate 设置为 “已禁用”
- 将 Teredo 状态 设置为 “已禁用”
备注
默认情况下,在 Windows 中禁用 ISATAP 和 Teredo。
参考
有关 RFC 3484 的详细信息,请参阅 Internet 协议版本 6 (IPv6) 的默认地址选择。
有关如何设置 IPv4 优先于 IPv6 的更多信息,请参阅使用 SIO_ADDRESS_LIST_SORT。
有关 RFC 4291 的信息,请参阅 IP 版本 6 寻址体系结构。
有关相关问题的详细信息,请参阅以下文章:
- 示例 1:在域控制器上,你可能会遇到 LDAP 优先于 UDP 389 将导致停止工作的问题。 请参阅如何使用 Portqry 解决 Active Directory 连接问题
- 示例 2:Exchange Server 2010,可能会遇到 Exchange 停止工作的问题。 请参阅反对禁用 IPv6 的理由和禁用 IPv6 和 Exchange – 全面解析。
- 示例 3:故障转移群集 请参阅什么是 Microsoft 故障转移群集虚拟适配器?和 Windows Server 2012 R2 中的故障转移群集和 IPv6。
用于帮助处理网络跟踪的工具: Microsoft 网络监视器 3.4(存档)
警告
启用 LBFO NIC 分组时,Netmon 3.4 与 Windows Server 2012 或更新版本的操作系统不兼容。