ssh 连接持续多长时间?

ish*_*kun 2 ssh

我一直在查看 StackOverflow,似乎 SSH 连接在一段时间(2 小时?)看不到任何数据包时会断开连接。另外,我查看了我的/etc/ssh/ssh_config文件,似乎没有任何东西可以保持我当前的连接。

我的问题是:即使 48 小时后,为什么 SSH 连接仍然存在?(我的电脑已关闭,但我 SSH 连接到的服务器大概还在线)

200*_*ess 7

理论上,SSH 连接可以无限期地持续下去。它可以由任一方在 SSH 层(带有FIN数据包)显式终止,也可以在 TCP 层(带有RST数据包)异常终止。

RST如果一方发送数据包并且没有在合理的时间内获得 TCP 确认,则可能会发生A。这通常是因为另一方不再存在。如果中间有 NAT 或防火墙停止跟踪连接(通常是由于缺乏活动),则也可能发生这种情况,因此双方无法再进行通信。更阴险的是,邪恶 ISP 的路由器可以将RST数据包注入连接,但这些措施通常保留给 ISP 认为令人反感的内容,例如 BitTorrent。

Keep-alives 可以通过提醒 NAT 或防火墙保持连接状态来帮助保持连接活动。但是,保持连接也可能会增加网络连接中的瞬时故障被注意到的可能性。