Sid*_*ant 2 networking linux debian nat linux-networking
我在工作场所的服务器遇到了一个奇怪的问题(如果这很重要,它在 NAT 后面)。问题是有时,它变得无法访问,然后又恢复正常,通常在几秒钟内,有时会持续长达 1 分钟。它不会重新启动,也不会崩溃。它只是变得无法访问。在此期间,我无法通过 ssh 进入它,也无法访问机器上运行的任何应用程序(它正在运行几个 Rails 应用程序,因此它们也无法访问)。我检查了 dmesg 并看到了这些行 -
[ 4.958074] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 5.040476] ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 5.175624] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
[ 5.177207] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Run Code Online (Sandbox Code Playgroud)
几行之后,我看到关于网络接口的类似内容 -
[1195777.544167] igb: eth0 NIC Link is Down
[1195780.962943] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
Run Code Online (Sandbox Code Playgroud)
看起来确实是网络问题。/var/log/messages 没有显示任何有趣的东西。我不知道如何调试这个。关于它可能是什么的任何线索?我应该在这里检查什么?谢谢!
此类问题通常不会生成大量日志消息。您已经发现了显示接口下降和上升的两条重要消息。这些可以通过拔下以太网电缆并重新插入来生成。
可能是网卡和路由器之间的电缆坏了。我的第一步(一次完成)是:
netstat -i或ifconfig并检查错误计数。通常,它们应该是 0 或个位数。高载波或帧错误可能表示双工不匹配。可以通过上传然后下载大文件来验证双工不匹配。伴随错误计数增加的巨大速度差异表明链路不匹配。电缆调制解调器通常具有不同的上传和下载带宽,因此本地传输更适合此测试。我使用的一种工具是mtr. 我使用一个命令mtr -i 15 -n google.com来监视连接。考虑使用您的 ISP 服务器之一,而不是 google.com。它可以在报表模式下批量运行。如果问题出现在服务器的上游,则输出应有助于确定问题发生的位置。