SSH会话突然终止消息:input上的MAC损坏。 断开连接:数据包损坏

我们有运行CentOS 6.0 64位和2GB ECC内存的戴尔PowerEdge 840服务器。 当任何用户ssh进入,一段时间后,会话终止与输出:

Corrupted MAC on input. Packet Corrupt 

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

在Google上search答案之后,我相信服务器有硬件问题(可能是内存)。 从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。 服务器是一个testing服务器,它在不同的端口上运行预先configuration的Apache服务器(从源代码编译)。 由于每个开发人员都有自己特定的httpd.conf和testing环境,因此可以运行多个Apache服务器。

我也检查系统日志的任何错误消息,但无法find任何有趣的东西。 即使在要求所有人停止使用服务器(尽量less使用内存)之后,我仍然得到相同的错误信息,并且我的ssh会话终止于上面指出的错误消息。

我的下一个步骤是什么?

感谢sendmoreinfo,

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

 ethtool -K eth0 tx off rx off 

并开始工作了。

如通过SSH,SCP和FTP在Linux服务器上进行文件传输的“损坏的MACinput。数据包损坏”中所述 ,TCP卸载可能是一个问题。 使用ethtool来检查和configuration它。