在 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 或其组件。 如果禁用,某些 Windows 组件可能无法正常工作。

我们建议你在前缀策略中使用“优先 IPv4 而非 IPv6”,而不是禁用 IPV6。

使用注册表项配置 IPv6

重要

请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 修改之前,备份注册表以便在发生问题时进行还原

可以通过修改以下注册表项来配置 IPv6 功能:

位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\
名称:DisabledComponents
类型:REG_DWORD
最小值:0x00(默认值)
最大值:0xFF(禁用 IPv6)

IPv6 功能 注册表值和注释
优先 IPv4 而非 IPv6 十进制 32
十六进制 0x20
二进制 xx1x xxxx

推荐,而非禁用 IPv6。
禁用 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

注意

  • 管理员必须创建 .admx 文件才能在“组策略”设置中显示下表的注册表设置。
  • 必须重启计算机,这些更改才能生效。
  • 在此更改生效之后,0 或 32 以外的值会导致“路由和远程访问”服务失败。

默认情况下,当为接口分配公共 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 隧道接口。

还可以按照以下步骤修改注册表项:

  1. 打开管理员“命令提示符”窗口。

  2. 运行以下命令:

    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

不支持使用网络属性 GUI 禁用 IPv6

此注册表值不会影响以下复选框的状态。 即使此注册表项设置为禁用 IPv6,也仍可以选中每个接口的“网络”选项卡中的复选框。 这是正常现象。

“网络”属性中的 Internet 协议版本 6 (TCP/IPv6) 选项。

参考

有关 RFC 3484 的详细信息,请参阅 Internet 协议版本 6 (IPv6) 的默认地址选择

有关如何设置 IPv4 优先于 IPv6 的更多信息,请参阅使用 SIO_ADDRESS_LIST_SORT

有关 RFC 4291 的信息,请参阅 IP 版本 6 寻址体系结构

有关相关问题的详细信息,请参阅以下文章:

用于帮助处理网络跟踪的工具: Microsoft 网络监视器 3.4(存档)

警告

启用 LBFO NIC 分组时,Netmon 3.4 与 Windows Server 2012 或更新版本的操作系统不兼容。 请改用消息分析器