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