我们有运行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它。