我们其中一台服务器上的外部网络接口 (eth0) 会定期冻结。它还有一个本地网络接口 (eth1),因此我可以通过同一网络中的其他服务器之一连接到该服务器。通过外部网络进行的任何连接 - 例如从我的本地计算机进行 SSH、从我的本地计算机进行 ping、从不同网络上的开发服务器进行 SSH - 都会超时。通过本地网络中的其他服务器之一进行连接时,我可以运行,sudo ifdown eth0 && sudo ifup eth0
并且接口会神奇地再次工作。如果我ifup
先尝试该命令而不是关闭接口,它会给我一条错误消息,说接口已启动。
作为一种解决方法,我尝试将以下行添加到我的根 crontab 中:
55 1 * * * ifdown eth0 && ifup eth0 &> /dev/null
令人困惑的是,这实际上并没有解决问题。5 分钟后运行的备份作业无法将文件复制到本地网络之外的机器。
您可以看到输出sudo dmesg
这里。
该服务器是运行 Ubuntu Lucid (10.04) 的 HP ProLiant DL360 G5。提前感谢您对如何跟踪和解决此问题提供的任何帮助!
答案1
1-您可以使用以下命令监控此接口上的流量:
sudo tcpdump -i eth0 -s 1518 -XX -vv -n -w /tmp/trace_file.pcap
尝试连接并查看接口是否接收任何流量。
2-检查除了使用 eth0 访问此服务器之外,您是否可以从此服务器访问其他机器。
3-使用以下命令检查接口状态:ethtool eth0
。
4- 使用下面的 sys 文件检查接口状态/sys/class/net/eth0/*
5-检查您的防火墙状态(活动或非活动)并检查规则(如果有)。
6-使用检查内核调试消息dmesg
并检查系统日志文件 /var/log/messages 中是否有任何错误/警告。
希望这会有所帮助!