![SSH 一次挂起几分钟](https://linux22.com/image/654375/SSH%20%E4%B8%80%E6%AC%A1%E6%8C%82%E8%B5%B7%E5%87%A0%E5%88%86%E9%92%9F.png)
我可以通过 SSH 进入服务器并顺利运行命令,但通常在一分钟左右的时间内,会话就会挂起(变得无响应)。我可以输入命令,但它们甚至没有在终端上回显。但它们是排队并最终运行。这开始于最多在对网络进行小幅更改后,我们的服务器出现问题,但网络团队无法确定原因,并指出是系统问题。我束手无策,准备重新安装操作系统,看看是否有帮助。我tcpdump
在服务器和客户端都运行了 s,我看到的只是很大的时间间隔和一些 TCP 重置,但没有确定的结果。Sysstat 也没有显示任何 I/O 问题或任何其他问题。
我正在运行 CentOS 6 openssh-server-5.3p1-104
。
答案1
连接停滞并最终恢复几乎肯定是由数据包丢失引起的。从数据包捕获中应该可以清楚地看出何时发生了数据包丢失。如果数据包由连接的一端发送而另一端未收到,那么它一定是被中间网络丢弃了。
数据包可能在传输过程中损坏,而不是被丢弃。在这种情况下,您应该寻找不会触发 ACK 的数据包。如果您能找到其中任何一个,请检查接收端的数据包是否与发送的数据包不同。
最简单的方法是将流量转储到文件中,同时重现问题,然后将两个 pcap 文件下载到要检查文件的机器上。我建议使用 Wireshark 查看数据包的详细信息。