运行半天后无法 ping 本地主机

运行半天后无法 ping 本地主机

这个问题大约在 4 或 5 天前才出现。我运行的是 Ubuntu 12.04 桌面版,运行大约 12 小时后,环回设备似乎停止工作了。如果我执行 ifconfig,它似乎仍然存在,但如果我 ping localhost 或 127.0.0.1,则都会失败。此外,ping 已知 DNS 地址 (www.google.com) 会失败。但通过 IP 进行 ping 可以正常工作。

其余网络功能似乎没有受到影响。我仍然可以从我的 Windows 机器访问 Samba 共享。此外,我运行的 Apache 服务器仍然可以从外部世界访问。查看资源监视器,发生这种情况时 CPU 和内存使用率似乎正常。

如果我重新启动机器,一切都会恢复正常。大约 12 小时后,这种情况就会再次发生。您知道是什么原因导致的,或者如何诊断吗?谢谢。


编辑:我运行了推荐的诊断命令。以下是输出。不过我真的看不懂。有什么异常吗?

~$ IP 地址
1:lo:mtu 16436 qdisc 无队列状态未知
    链路/环回 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 范围主机 lo
    inet6 ::1/128 范围主机
       valid_lft 永远 preferred_lft 永远
2:eth0:mtu 1500 qdisc pfifo_fast 状态UP qlen 1000
    链路/以太 00:1b:fc:64:dc:82 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.132/24 brd 192.168.1.255 范围全局 eth0
    inet6 fe80::21b:fcff:fe64:dc82/64 范围链接
       valid_lft 永远 preferred_lft 永远

~$ netstat -rn
内核 IP 路由表
目标网关 Genmask 标志 MSS 窗口 irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

~$ getent 主机 localhost
127.0.0.1 本地主机

~$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84)字节数据。
^C
--- 127.0.0.1 ping 统计 ---
已发送 572 个数据包,已接收 0 个数据包,100% 数据包丢失,耗时 575551 毫秒


~$ ping6 ::1
PING ::1(::1) 56 个数据字节
64 字节来自 ::1: icmp_seq=1 ttl=64 时间=0.020 毫秒
64 字节来自 ::1: icmp_seq=2 ttl=64 时间=0.023 毫秒
64 字节来自 ::1: icmp_seq=3 ttl=64 时间=0.025 毫秒
64 字节来自 ::1: icmp_seq=4 ttl=64 时间=0.021 毫秒
64 字节来自 ::1: icmp_seq=5 ttl=64 时间=0.028 毫秒
64 字节来自 ::1: icmp_seq=6 ttl=64 时间=0.025 毫秒
64 字节来自 ::1: icmp_seq=7 ttl=64 时间=0.023 毫秒
64 字节来自 ::1: icmp_seq=8 ttl=64 时间=0.026 毫秒
64 字节来自 ::1: icmp_seq=9 ttl=64 时间=0.021 毫秒
64 字节来自 ::1: icmp_seq=10 ttl=64 时间=0.028 毫秒
^C
--- ::1 ping 统计 ---
已发送 10 个数据包,已接收 10 个数据包,0% 数据包丢失,耗时 8998 毫秒
rtt 最小值/平均值/最大值/mdev = 0.020/0.024/0.028/0.002 毫秒

〜$ ifconfig
eth0 链路封装:以太网 HWaddr 00:1b:fc:64:dc:82  
          inet 地址:192.168.1.132 Bcast:192.168.1.255 掩码:255.255.255.0
          inet6 地址:fe80::21b:fcff:fe64:dc82/64 范围:链接
          上行广播运行多播 MTU:1500 度量:1
          RX 数据包:5537467 错误:0 丢弃:0 超限:0 帧:0
          TX 数据包:7700200 错误:0 丢弃:0 超限:0 载波:0
          碰撞:0 txqueuelen:1000
          RX字节:2390500721(2.3 GB)TX字节:8274946292(8.2 GB)
          中断:23 基址:0x4000

lo 链路封装:本地环回  
          inet 地址:127.0.0.1 掩码:255.0.0.0
          inet6 地址:::1/128 范围:主机
          上行环回运行 MTU:16436 度量:1
          RX 数据包:1441430 错误:0 丢弃:0 超限:0 帧:0
          TX 数据包:1441430 错误:0 丢弃:0 超限:0 载波:0
          碰撞:0 txqueuelen:0
          RX 字节数:2084259522 (2.0 GB) TX 字节数:2084259522 (2.0 GB)

答案1

我可以通过将 Squeeze 中当前的内核从 2.6.32-5 升级到 Wheezy 中当前的 3.2.0-4 来解决我的 Debian 机器上的这个问题。

如果您无法更新内核,我已经能够通过告诉它们通过 IPv6 而不是 IPv4 访问本地 DNS 解析器来解决我的两台服务器上的此问题。这是我的resolv.conf

search example.com
nameserver ::1

这不是一个完美的解决办法,但暂时来说已经足够了。

相关内容