我的 SSH 会话似乎在随机时间终止 - 响应将停止,然后几秒钟后 PuTTY 会弹出一条消息,“服务器意外关闭了网络连接。“它似乎最常发生在空闲时,但并非总是如此 - 它甚至可能在我输入 vim 或类似的东西时死机(非常令人沮丧!)。但它相当频繁 - 如果我很幸运它可能会存活几个小时,但如果我不幸它可能会在我登录后的几秒钟或几分钟内死机。
- 服务器:VPS 搭载 CentOS 5.6、WebMin 1.62、OpenSSH 4.3
- 客户:
- FTTH(或者更准确地说,覆盖建筑物:104 套公寓)
- 运行 NAT 和安全的路由器 #1
- 路由器 #2 作为无线接入点运行
- Windows 7 笔记本电脑(但我在 XP 台式机上也遇到了同样的问题)
- 腻子 0.62
大多数时候我甚至不使用 wifi,而只是将 TCP-IP(使用集线器)连接到路由器 #1 - 但问题仍然存在。我假设根本原因是我的 ISP 连接出现故障(或建筑物中的某些问题),但我可能无法解决这个问题,所以我在 ServerFault 上询问这个问题的原因是因为我只是想配置 SSH(或 PuTTY 或任何需要的东西),以便它不会轻易终止会话。
我尝试过其他人认为有用的各种方法:
将 PuTTY 的连接->“保持连接之间的秒数”设置为各种非零值(我不知道该设置是否像 TCPKeepAlive 或更像 ServerAliveInterval,但它是 PuTTY 中唯一可用的设置)
尝试让服务器完成工作,通过关闭 PuTTY 的 keepalive(0)然后打开服务器,在 sshd_config 中包含以下内容:
TCPKeepAlive no ClientAliveInterval 60 ClientAliveCountMax 3000
将我的电脑更改为静态 IP(这是SuperUser.com 上的这个问题)
但它仍然会在各种情况下死机 - 很难判断一组设置是否比另一组略好,但即使在今天,每组设置都在不到一个小时的时间内失败。而且这个问题长期存在 - 在我管理这台服务器的几年里,我已经忍受了它(我主要是一名程序员,所以我不会在 SSH 上花费大量时间,但当我确实需要它时,不断丢失会话令人沮丧)。有什么想法吗?
答案1
当我遇到此问题时,要么是由于互联网连接不稳定(根据我的经验,这种情况越来越少见),要么是由于服务器配置。我的连接通常保持打开状态超过 8 小时。
我建议设置TCPKeepAlive
为yes
,因为这将强制 sshd 服务器成为保持连接活动的对等方。我从未在 Putty 本身中更改过任何东西。
我的 sshd_config 的相关部分:
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 3
如果这有帮助的话请告诉我。
答案2
问题已经自行解决——我写这个答案是为了分享发生的事情,以便以后可能读到它的人……
在同一时期,我的 LAN 打印机出现“网络板错误”,几乎每天都需要重新启动 - 我没有将这两个问题联系起来,因为它们似乎以不同的频率发生,并且打印机驱动程序将问题归咎于打印机,而 SSH 将问题归咎于服务器。当打印机错误似乎越来越多时,我决定机器快要坏了,并更换了它(几百美元的商用级彩色激光打印机)。但新机器也有同样的问题!那时我才意识到原因不在打印机上,并开始思考它和 SSH 问题(以及 Skype 连接中断)可能有相同的原因。我尝试更换路由器,但无济于事。我研究了一些其他的东西,但没有得出结论。然后,在忍受了这些问题几年之后,我丈夫更换了他的 PC,所有的问题突然消失了!显然他的 PC 以某种方式干扰了本地网络上的一切,但只有某些进程会出现明显的症状,并且只是间歇性的。我的观点是:如果有人发现这个帖子有类似的问题,请检查你的局域网上的设备,即使是那些看起来工作正常的设备。