服务器变得无法访问并自行恢复(很可能是网络问题)

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 没有显示任何有趣的东西。我不知道如何调试这个。关于它可能是什么的任何线索?我应该在这里检查什么?谢谢!

Bil*_*hor 7

此类问题通常不会生成大量日志消息。您已经发现了显示接口下降和上升的两条重要消息。这些可以通过拔下以太网电缆并重新插入来生成。

可能是网卡和路由器之间的电缆坏了。我的第一步(一次完成)是:

  • 更换连接到 eth0 的电缆,看看是否能解决问题。
  • 重新配置网络接口,使当前在 eth0 上的流量在 eth1 上,反之亦然。(需要重新启动网络并交换电缆。)如果问题继续存在,则就像 NIC 出现故障。
  • 验证上游设备及其电源的状态。如果它失去电源或以其他方式失败,您可以看到这种行为。
  • 运行netstat -iifconfig并检查错误计数。通常,它们应该是 0 或个位数。高载波或帧错误可能表示双工不匹配。可以通过上传然后下载大文件来验证双工不匹配。伴随错误计数增加的巨大速度差异表明链路不匹配。电缆调制解调器通常具有不同的上传和下载带宽,因此本地传输更适合此测试。

我使用的一种工具是mtr. 我使用一个命令mtr -i 15 -n google.com来监视连接。考虑使用您的 ISP 服务器之一,而不是 google.com。它可以在报表模式下批量运行。如果问题出现在服务器的上游,则输出应有助于确定问题发生的位置。