![为什么 ssh 经常会断开连接并显示‘连接被对方重置’?](https://linux22.com/image/1511245/%E4%B8%BA%E4%BB%80%E4%B9%88%20ssh%20%E7%BB%8F%E5%B8%B8%E4%BC%9A%E6%96%AD%E5%BC%80%E8%BF%9E%E6%8E%A5%E5%B9%B6%E6%98%BE%E7%A4%BA%E2%80%98%E8%BF%9E%E6%8E%A5%E8%A2%AB%E5%AF%B9%E6%96%B9%E2%80%8B%E2%80%8B%E9%87%8D%E7%BD%AE%E2%80%99%EF%BC%9F.png)
为什么我家里的互联网比办公室互联网更频繁地出现‘对端重置连接’ SSH 断开连接的情况?
多年来,我一直在断断续续地研究这个问题,但这个网站和谷歌上的其他问题和答案都对我没有帮助。
以下是我的网络状况良好时发生断开连接的实际示例:
从远程主机 examplehost.com 读取:对等方重置连接
与 examplehost.com 的连接已关闭。
我已经对 SSH/SSHD 配置等进行了全部检查,包括诸如ServerAliveInterval
、、ServerAliveCountMax
之类的TCPKeepAlive
深奥建议,例如启用/禁用GSSAPIAuthentication
相关设置。
所有系统都是CentOS服务器。
我通过 ssh 从办公室和家里连接到相同的服务器。我自己在两个地方设置路由器。办公室路由器是小型办公室级 DSR-250N,而我的家庭路由器是家庭级 D-Link DIR-655。
可能感兴趣:我使用 VPN,有趣的是,只要 VPN 保持运行(几天到几周),通过 VPN 的 SSH 连接似乎就能保持运行。
这种情况已经持续好几年了,所以我现在怀疑这与路由器限制有关,而不是与谁提供互联网有关,但我不确定家用路由器可能存在哪些限制,以及在新路由器中需要寻找什么才能确保这些问题至少显着减少。
也许是路由器内存,也许是我在某些路由器上看到的“会话限制”规格之类的东西,等等?
如果问题仅仅出在我的相对低端路由器上(尽管我认为对于家用路由器来说它属于中高端),我会很满意。
答案1
问题出在路由器上。将路由器 (DIR-655) 换成 DSR-250N 后,我的网络已经连续一周保持 100% 正常运行,这在过去几年里是闻所未闻的。因此,我将此标记为答案。我想,有时只需换一个路由器就可以了。
更新 2018-04-20:自从我于 2017 年 7 月更换路由器以来,路由器一直非常稳定。虽然不是完美无缺,但例如,我的 SSH 会话一次可以保持一到两周,而之前它们经常在一小时内崩溃。我怀疑我的一些断开连接甚至是由于 ISP 而不是路由器造成的。
答案2
编辑:这个方法比我预期的要有效,但也比配置的要早退出。我有一个 ping 服务器在监视我的互联网连接,看起来没有出现任何互联网连接问题。所以不能说这是解决办法。
在尝试了 、 、、和TCPKeepAlive
的无数种客户端和服务器端变体组合后,我将客户端和服务器都同步到以下设置:ServerAliveInterval
ServerAliveCountMax
ClientAliveInterval
ClientAliveCountMax
客户:
TCPKeepAlive no
ServerAliveInterval 60
ServerAliveCountMax 525600
服务器:
TCPKeepAlive no
ClientAliveInterval 60
ClientAliveCountMax 525600
我跑了一整天(交叉手指) 在此期间,我完全预料到自己会频繁且快速地断线。
请注意,我的AliveCountMax
值大得令人怀疑,您应该进行调整以满足您的需要。
答案3
我的 Netgear XR500 游戏路由器也遇到了同样的情况。
我与他们的技术支持人员进行了交谈,他们从未听说过这样的事情。
我们刷新了固件并恢复出厂设置,情况好多了。我非常惊讶这个方法竟然有效。
这让我想对我的旧路由器做同样的事情,看看它的表现如何。