什么原因会导致“ping localhost”失败?

什么原因会导致“ping localhost”失败?

/etc/hosts 文件包含一行:127.0.0.1 localhost,因此 localhost 应该是一个有效的主机名,但是任何尝试连接到 localhost 上的端口的尝试都会失败,包括 ping。

使用相同的客户端从外部尝试连接该服务器,可以成功。

使用这些客户端从该服务器到其他服务器的连接尝试也可以成功。

进一步调查发现,当直接在该 IP 上调用 ping 时,也无法 ping 回环 IP 127.0.0.1。除了 ping 之外,我还使用“socat TCP4..”进行了测试。

错误的 iptables 会阻止本地主机连接吗?

答案1

是否有一个接口或任何其他接口配置lo0了 127.0.0.1?检查 Rx 数据包/Tx 数据包数量。另外,检查 /etc/network/interfaces 中是否配置了 lo0。

output of 'ifconfig'
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1440 (1.4 KB)  TX bytes:1440 (1.4 KB)

答案2

是的,iptables 可以将 localhost 与自身隔离开来。如果你一直在使用这个功能,那么它将会是一个很好的起点。

尝试运行iptables -L -n。如果您不确定如何读取输出,请发布它。

一个典型的错误是将策略设置为 DENY,而不为 localhost 添加例外。

答案3

“ip neigh show”是否显示环回接口已启动?

是的,可以配置 iptables 以丢弃 lo 上收到的所有数据包。我不确定这种情况是如何偶然发生的,但值得检查一下。

答案4

您可能会查看 /etc/resolv.conf ,但我不知道哪个条目会阻止 localhost 工作。

相关内容