我怎样才能让 localhost 解析为 127.0.0.1 而不是 ::1?

我怎样才能让 localhost 解析为 127.0.0.1 而不是 ::1?

当我 ping localhost 时,该地址解析为::1

我的 MySQL 和 Apache 安装需要的 ipv4 地址是127.0.0.1

如何配置我的 WindowsXP 以将 localhost 解析为 127.0.0.1?

我的 C:\WINDOWS\system32\drivers\etc\hosts 文件:

127.0.0.1 localhost
127.0.0.1 trunk
127.0.0.1 focus
127.0.0.1 demo

我还在 Windows 注册表中设置了以下内容:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters]
"DisabledComponents"=dword:00000255

我还可以尝试其他什么吗?

答案1

这取决于您正在使用的应用程序,即您的应用程序是否要求提供 IPv6 地址。

例如,Linux 上的 telnet 在尝试之前会尝试使用 ipv6 地址进行连接,除非你明确指定协议

默认

x@x:~$ telnet localhost
Trying ::1...
Trying 127.0.0.1...

v4 已指定

x@x:~$ telnet -4  localhost
Trying 127.0.0.1...

对于您的问题,因为您没有绑定 v6 地址(用于 apache 和 mysql 服务)。在 mysql 和 apache 配置中,您可以在指定 localhost 的地方明确指定“127.0.0.1”。这应该可以解决您的问题。

答案2

如果您不想使用 IPv6,请在连接上禁用它并确保已启用 IPv4。

假设您有标准有线链路,您可以在“本地连接”的属性窗口中找到它。那里有多个条目。您应该看到“Internet 协议版本 6 (TCP/IPv6)”和“Internet 协议版本 4 (TCP/IPv4)”。取消选中 v6 并选中 v4。

虽然我不完全明白你的问题。

答案3

是否提供 IPv6 或 IPv4 地址取决于软件首先尝试哪个查询。如果软件首先尝试 AAAA 查询,则将提供 IPv6。

但解决这个问题的一种方法是调整“localhost”的定义,它可能由系统的“hosts”或“hosts.txt”文件定义。请参阅维基百科 Hosts 文件位置

只需删除 IPv6 引用。这可能会导致 IPv6 查询不提供任何结果,因此将尝试 IPv4 查询。

但是,这并不是真正推荐的做法;请理解可能会有副作用(来自可能依赖 IPv6 和标准“localhost”名称的其他程序)。建议在进行更改之前备份此文件(以便您可以轻松地恢复它)。(简单的复制可能就可以了。)并且在宣布您的努力成功之前,请测试任何可能使用“localhost”名称的程序。

相关内容