为什么“127.0.0.1”尝试连接到“10.0.0.2”?

为什么“127.0.0.1”尝试连接到“10.0.0.2”?

在 LAN 上,每台计算机每天早上都会分配一个不同的 IP 地址。当我安装 Kubuntu 12.10 时,分配给机器的 IP 地址是10.0.0.2,但今天是10.0.0.1。当我尝试http://127.0.0.1在 Firefox 中连接到时,我在状态栏中看到Connecting to 10.0.0.2。但是,文件中没有提到该地址/etc/hosts

127.0.0.1       localhost
127.0.1.1       bruno

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

请注意,无法将 DHCP 服务器设置为每个 MAC 地址分配相同的 IP 地址,因为路由器每天晚上都会拔掉电源(建筑物内的电气问题)并丢失设置。

答案1

以前的 IP 地址是 10.0.0.2,现在则是 10.0.0.1。如果 Firefox 现在尝试连接到 10.0.0.2,那么它肯定之前缓存过该地址。清除 Firefox 的缓存;无论之前将 Firefox 从 127.0.0.1 重定向到 10.0.0.2 的机制是什么,现在都应该将 Firefox 重定向到 10.0.0.1。

答案2

如果http://127.0.0.1被重定向到,http://10.0.0.2则意味着监听的 Web 服务器127.0.0.1:80正在执行此类重定向。

因此,问题不在于 Linux 的 TCP 堆栈实现,也不是 有什么问题/etc/hosts。(不要混淆主机名IP 地址:主机名已解析,但 IP 地址未解析。换句话说,如果不使用高级协议(如 HTTP,允许从一个 IP 地址重定向到另一个 IP 地址),则无法进行127.0.0.1“解析” 。10.0.0.2

尝试使用wget,它将为您提供许多有用的详细信息。您应该看到类似以下内容。

$ wget http://127.0.0.1
--2013-01-09 15:55:38--  http://127.0.0.1
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://10.0.0.2 [following]
...

当然,确切的输出将根据情况而有所不同。但是,如果您看到类似的输出,则表明 Web 服务器正在进行重定向。

因此,要解决这个问题,您应该检查您的 Web 服务器配置。

相关内容