Windows 7 使用 ipv6 而不是 ipv4 解析本地主机名

Windows 7 使用 ipv6 而不是 ipv4 解析本地主机名

当我ping 本地主机我可以看到 localhost 名称解析为 :::1 而不是 127.0.0.1。您知道如何解决这个问题吗?我需要为 Tomcat 服务器提供 localhost 的 ipv4 解析。

我可以使用 Windows 的 hosts 文件中的“127.0.0.1 localhost”快速修复此问题,但我认为可能有更好的解决方案。

答案1

坦白说,使用主机文件。它存在的原因是为了修复您描述的问题,所以没有理由不使用它。

禁用 IPv6 不受支持,并且会破坏功能(尽管没有什么严重影响)。这比触碰主机文件更具破坏性。

答案2

如果不使用,您可以禁用 IPv6 服务。

进入注册表,找到:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP6\参数

添加此内容:

  • 键:DisabledComponents
  • 类型:DWORD
  • 值: 0xffffffff

答案3

我建议让 tomcat 也监听 ipv6 堆栈。通常应该可以,你使用哪个版本?

答案4

您需要更改前缀策略表中的解析顺序。但是我怀疑这不会解决您遇到的任何问题,因为 127.0.0.1 是 ::1。如果 tomcat 没有在 v4 堆栈上收到响应(如果它尝试连接到 v4 上的本地主机),则存在其他问题。除非您已将 v4 从 NIC 中解除绑定,否则您将始终从 v4 堆栈获得 v4 答案,从 v6 堆栈获得 v6 答案

在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP6\Parameters 中执行此操作

添加(如果不存在)项:DisabledComponents 作为 DWORD(32 位)值

下一个

1. 找到 DisabledComponents 的当前值数据。2. 将数据更改为二进制数据。它将是一个 32 位二进制值。3. 找到数据的第六位,然后将其设置为 0。不要更改任何其他位。例如,如果当前数据是 1 ...

相关内容