SSH 会话突然终止并显示消息:输入的 MAC 已损坏。断开连接:数据包已损坏

SSH 会话突然终止并显示消息:输入的 MAC 已损坏。断开连接:数据包已损坏

我们有一台运行 CentOS 6.0 64 位、具有 2GB ECC 内存的 Dell PowerEdge 840 服务器。当任何用户通过 ssh 登录时,一段时间后会话将终止并输出以下内容:

Corrupted MAC on input. Packet Corrupt

这种情况总是会发生。ssh 会话可能会工作一段时间,但最终会失败。我注意到,当我使用 X-forwarding 时,这种情况更频繁。

谷歌搜索答案是,我认为服务器存在硬件问题(可能是内存)。来自 lshw 的输出(内存)。

          capabilities: internal write-back unified
 *-memory
      description: System Memory
      physical id: 1000
      slot: System board or motherboard
      size: 2GiB
    *-bank:0
         description: DIMM DDR2 Synchronous 667 MHz (1.5 ns)
         product: 72T64000HU3SB
         vendor: 7F7F7F7F7F510000
         physical id: 0
         serial: 09022F17
         slot: DIMM1_A
         size: 512MiB
         width: 64 bits
         clock: 667MHz (1.5ns)
    *-bank:1
         description: DIMM DDR2 Synchronous 667 MHz (1.5 ns)
         product: 72T64000HU3SB
         vendor: 7F7F7F7F7F510000
         physical id: 1
         serial: 09022E13
         slot: DIMM1_B
         size: 512MiB
         width: 64 bits
         clock: 667MHz (1.5ns)
    *-bank:2
         description: DIMM DDR2 Synchronous 667 MHz (1.5 ns)
         product: 72T64000HU3SB
         vendor: 7F7F7F7F7F510000
         physical id: 2
         serial: 09030910
         slot: DIMM2_A
         size: 512MiB
         width: 64 bits
         clock: 667MHz (1.5ns)
    *-bank:3
         description: DIMM DDR2 Synchronous 667 MHz (1.5 ns)
         product: 72T64000HU3SB
         vendor: 7F7F7F7F7F510000
         physical id: 3
         serial: 09030B13
         slot: DIMM2_B
         size: 512MiB
         width: 64 bits
         clock: 667MHz (1.5ns)

我运行了 memtest86+,没有返回任何错误。我还重新安装了内存,将内存模块移到了不同​​的插槽,甚至将交换空间增加到了 4GB。该服务器是一个测试服务器,它在不同的端口上运行预配置的 Apache 服务器(从源代码编译)。由于每个开发人员都有自己特定的 httpd.conf 和测试环境,因此可以运行多个 Apache 服务器。

我还检查了系统日志中是否有任何错误消息,但找不到任何有趣的东西。即使要求每个人都停止使用服务器(使用最少的内存),我仍然收到相同的错误消息,并且我的 ssh 会话以我上面指出的错误消息终止。

我下一步该怎么做才能排除故障?

答案1

谢谢 sendmoreinfo,

看来 TCP 校验和是罪魁祸首。我禁用了 TCP 校验和卸载:

ethtool -K eth0 tx off rx off 

它又开始工作了。

答案2

就像建议的那样Linux 服务器上通过 SSH、SCP 和 FTP 进行文件传输时出现“输入 MAC 地址损坏。数据包损坏”,TCP 卸载可能存在问题。使用 ethtool 检查并配置它。

答案3

我在 Mac OSX 上也遇到了同样的问题。我的大多数 ssh/scp 会话都无法工作,尤其是处理大文件时。原来我手动设置了网络接口,但它不喜欢。我将其改回自动配置,一切又开始正常工作了。

System preferences > Network > Ethernet > Advanced > Hardware > Configure: set dropdown to automatic

相关内容