在 Windows 7 64 位上禁用 IPv6 环回

在 Windows 7 64 位上禁用 IPv6 环回

我有一个Windows 7 64 位机器,我找不到办法禁用IPv6 环回。我看了这篇文章如何在 Windows 中禁用 IP 版本 6 或其特定组件并展示了如何设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents各种值 – 但这些似乎都不能禁用 IPv6 环回。我尝试将此值设置为– 每次更改后0xffffffff0x20重新启动计算机,但仍然无法禁用它。

我正在使用另一个软件网络驱动程序或者如果没有禁用 IPv6 环回,则在调试时会出现错误。它似乎尝试连接到[::1]:7055但失败了。有没有办法强制它连接到127.0.0.1

答案1

我会修改前缀策略,以便在可用时使用 IP4 地址而不是 IPv6 地址。

C:\>netsh interface ipv6 show prefixpolicies
Querying active state...

Precedence  Label  Prefix
----------  -----  --------------------------------
        50      0  ::1/128
        40      1  ::/0
        30      2  2002::/16
        20      3  ::/96
        10      4  ::ffff:0:0/96
         5      5  2001::/32

在上面的列表中,带有标签 3 和 4 的行代表 IP4 兼容性列表。如果您增加它们的优先级,它们将被优先考虑。它们需要高于带有标签 0 的行,因为那是本地主机地址。

C:\>netsh interface ipv6 set prefix ::/96 60 3
Ok.

C:\>netsh interface ipv6 set prefix ::ffff:0:0/96 55 4
Ok.

现在,如果您ping localhost或主机名都可用,它将使用 IP4 地址而不是 IPv6 地址。事实上,对于具有 IP4 地址的所有内容,它将使用该地址而不是 IPv6 地址。

答案2

尝试编辑您的 hosts 文件 ( C:\Windows\System32\drivers\etc\hosts)。我第一次打开 hosts 文件时它看起来像这样:

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

取消注释与 localhost 关联的 IPv4 环回地址,并确保以 开头的行::1已被注释掉。

# localhost name resolution is handled within DNS itself.
  127.0.0.1       localhost
# ::1             localhost

还有两件事要记住:

  1. 您需要以提升的权限启动文本编辑器(例如记事本),否则编辑完成后您将无法保存文件。启动编辑器时,只需右键单击并选择“以管理员身份运行”。

  2. 编辑完成后,将更改保存到 hosts 文件并重新启动机器。

SIGHUP附注:在某些系统上,操作员可以通过发送(例如: )要求 DNS 服务器重新读取其配置文件kill -HUP <pid>。我想在 Windows 7 中有一种方法可以做类似的事情(从而避免重新启动)。

答案3

取消选中您的 LAN 适配器下的 IPv6 协议。结合您所做的注册表编辑,您的系统上将根本没有 IPv6。

相关内容