我曾经遇到过这个问题在多个公司、多个发行版和多个内核版本中随机、间歇性地发生。我想我只是被诅咒了。
发生的情况是,我将加载一个新盒子,并且我将在 ssh 内执行某些操作,例如 yum update 或 apt-get。一切都会进展顺利,然后会话就会停止。 ssh 不会断开连接,就像有人向会话发送了滚动锁定按键一样。
如果我在 ssh 会话中按 Enter 键、空格键或任何击键,会话就会重新唤醒,就好像没有发生任何问题一样。
我曾经跟踪过这样的问题,发现交互进程正在进入 SLEEP 状态。我无法确认在这种情况下这是相同的行为,但如果我能查明具体原因,我将修改问题。
无论如何,我始终无法弄清楚为什么这些进程会随机进入睡眠状态。
有没有人遇到过这个或类似的问题,并且了解可能导致该问题的原因?
答案1
我曾经有过类似的事情。事实证明 TCP 断开连接然后重新连接,因为会话上的 MTU 错误。当长输出发送到终端时,就会发生这种情况(长输出意味着大数据包意味着超过真实的MTU 限制,假设您通过隧道连接)。
就我而言,调制解调器重置(我在家里使用VPN)解决了这个问题。在另一个类似的情况下——防火墙/VPN 网关上的配置做到了这一点。
当有大量输出进入控制台时会发生这种情况吗?如果是这样,您可以尝试在远程机器上运行 tcpdump,对文件说,看看是否是这种情况?