在 Windows 中为高级用户配置 IPv6 的指南

适用于: Windows 10, version 1903Windows Server, version 1903Windows 10, version 1809

简介


Windows Vista、Windows Server 2008 以及更高版本的 Windows 实施 RFC 3484 并使用前缀表来确定当多个地址可用于域名系统 (DNS) 名称时要使用的地址。

默认情况下,相比 IPv4 地址,Windows 更倾向于使用 IPv6 全球单播地址。

摘要


通常,IT 管理员希望禁用 IPv6。 这往往是由于某些未知的、与网络相关的问题,例如名称解析问题。

重要说明 Internet 协议版本 6 (IPv6) 是 Windows Vista 和 Windows Server 2008 及更高版本的必要组成部分。 我们建议不要禁用 IPv6 或其组件。 如果禁用,某些 Windows 组件可能无法正常工作。

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

自动禁用或重新启用 IPv6 或其组件


若要自动禁用或重新启用 IPv6 或其组件,请按照下列步骤操作:

  1. 单击要运行的过程所对应的“下载”按钮。
  2. 在“文件下载”对话框中,单击“运行”或“打开”
  3. 按照 Easy Fix 向导中的步骤执行操作。
 
在前缀策略中优先使用 IPv4 over IPv6 在所有非隧道接口上禁用 IPv6 在所有隧道接口上禁用 IPv6 在非隧道接口(环回接口除外)和 IPv6 隧道接口上禁用 IPv6
 
在前缀策略中优先使用 IPv6 over IPv4 在所有非隧道接口上重新启用 IPv6 在所有隧道接口上重新启用 IPv6 在非隧道接口和 IPv6 隧道接口上重新启用 IPv6
 

使用注册表项配置 IPv6


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

若要配置 IPv6,请根据下表修改以下注册表值。

Location:         HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\Name:             DisabledComponentsType:             REG_DWORDMin Value:        0x00Max Value:        0xFF (IPv6 disabled)

IPv6 功能

注册表值

注释

优先使用 IPv4 over IPv6

Dec 32

Hex 0x20

Bin xx1x xxxx

推荐而不是禁用它。

禁用 IPv6

Dec 255

Hex 0xFF

Bin 1111 1111

如果在 Windows 7 SP1 或 Windows Server 2008 R2 SP1 中禁用 IPv6 后遇到启动延迟问题,请参阅 KB3014406

此外,如果不正确地禁用 IPv6,系统启动将会延迟 5 秒,同时会将 DisabledComponents 注册表设置的值设为 0xfffffff。 正确的值应为 0xff。
有关更多信息,请参阅 Microsoft Windows 的 IPv6: 常见问题解答中的问题“Microsoft 对禁用 IPv6 有哪些建议?”。

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

在所有非隧道接口上禁用 IPv6

Dec 16

Hex 0x10

Bin xxx1 xxxx

 

在所有隧道接口上禁用 IPv6

Dec 1

Hex 0x01

Bin xxxx xxx1

 

在所有非隧道接口(环回接口除外)和 IPv6 隧道接口上禁用 IPv6

Dec 17

Hex 0x11

Bin xxx1 xxx1

 

优先使用 IPv6 over IPv4

Bin xx0x xxxx

 

在所有非隧道接口上重新启用 IPv6

Bin xxx0 xxxx

 

在所有隧道接口上重新启用 IPv6

Bin xxx xxx0

 

在非隧道接口和 IPv6 隧道接口上重新启用 IPv6

Bin xxx0 xxx0

 


注意

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

默认情况下,如果为某个接口分配了一个公共 IPv4 地址(即,不在 10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16 范围内的 IPv4 地址),则在 Windows Vista、Windows 7、Windows Server 2008 和 Windows Server 2008 R2 中启用 6to4 隧道协议。 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 值并确定是否应禁用组件。

若要了解每个位(从低到高)控制哪个组件,请参阅下表。

Tunnel 禁用隧道接口
Tunnel6to4 禁用 6to4 接口
TunnelIsatap 禁用 Isatap 接口
TunnelTeredo 禁用 Teredo 接口
Native 禁用本机接口(也称为 PPP)
PreferIpv4 在默认前缀策略中优先使用 IPv4
TunnelCp 禁用 CP 接口
TunnelIpTls 禁用 IP-TLS 接口

对于每个位,0 表示 false,1 表示 true。 有关示例,请参阅下表。
 
 

在前缀策略中优先使用 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

二进制

0010 0000

0001 0000

0000 0001

0001 0001

十六进制

0x20

0x10

0x01

0x11

参考


有关更多信息,请参阅下面的文章:

969029 Windows Server 2008 和 Windows Vista 中的源 IP 地址选择功能不同于 Windows 早期版本中的相应功能

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

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

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

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

示例 1: 在域控制器上,你可能会遇到 LDAP over UDP 389 将停止工作的问题。
请参阅
816103 如何使用 Portqry 解决 Active Directory 连接问题

示例 2: Exchange Server 2010,你可能会遇到 Exchange 停止工作的问题。
请参阅反对禁用 IPv6 的理由禁用 IPv6 和 Exchange – 全面解析

示例 3:  故障转移群集
请参阅什么是 Microsoft 故障转移群集虚拟适配器?Windows Server 2012 R2 中的故障转移群集和 IPv6

帮助进行网络跟踪的工具

Microsoft 消息分析器

Microsoft 网络监视器 3.4(存档)
警告 启用 LBFO NIC 组合时,Netmon 3.4 与 Windows Server 2012 或更新版本的操作系统不兼容。 请改为使用“消息分析器”。