为什么阿里云 ECS 链接一段时间后会中断?

2023 年 3 月 16 日
 wenerme

最有体感的是 SSH ,一段时间无操作就会 hang ,链接中断。 但并不只有 SSH ,所有链接都是,比如 redis 、mysql ,除非自己主动保活,否则都会这样,是为什么呢?有地方可以配置么?

2175 次点击
所在节点    程序员
14 条回复
opengps
2023 年 3 月 16 日
socket 默认都是这样,一定的时间不通信会断掉
wsseo
2023 年 3 月 16 日
设置心跳
BeforeTooLate
2023 年 3 月 16 日
.ssh/config 添加
Host *
ServerAliveInterval 20
TCPKeepAlive no
wenerme
2023 年 3 月 16 日
@opengps 但是如果我在域网,那 ssh 就不会中断,电脑放几个小时过后过来还是 OK 的。
opengps
2023 年 3 月 16 日
@wenerme 默认好像是 2 小时,放倒公网估计是半路上的网络设备给你当作不活动连接掐断的
wenerme
2023 年 3 月 16 日
@opengps 我理解 idle 会被掐断,但是不确定时间,也没找到相关文档说明,就很困惑
abelyao
2023 年 3 月 16 日
楼上瞎扯,腾讯云香港的 ssh 设置好了放一个晚上都没断

阿里云的配置好了放一段时间也会断,不止 ssh 断,还有 io 过高导致 ssh 卡死的
zzlyzq
2023 年 3 月 16 日
可能是中间的路由设备导致。具体说来,对于经过 NAT 上网的用户来说,每次出网通过路由器的时候,会产生一条 NAT Session 条目。该条目是有时间限制的,一段时间没有流量刷新定时器,会导致掉线。
解决办法:可以通过 shell 软件,例如 SecureCRT 、XShell 、FinalShell 等在登录中的发送 NOP 信息,例如每 30 秒一次,避免中断。
abelyao
2023 年 3 月 16 日
@wenerme 服务器上改 /etc/ssh/sshd_config

ClientAliveInterval 300
ClientAliveCountMax 10

能有改善
wenerme
2023 年 3 月 16 日
找到了 GCP 的相关文档,但是没找到阿里云的相关文档 https://cloud.google.com/compute/docs/troubleshooting/general-tips?hl=zh-cn#idle-connections

打算尝试下 tcp keepalive ,因为每个用到的都维护会有点麻烦。
wenerme
2023 年 3 月 16 日
eryajf
2023 年 3 月 16 日
如果你用的 iterm ,可以尝试下这个配置: https://wiki.eryajf.net/pages/de6b13/
rekulas
2023 年 3 月 16 日
可能跟你网络有关(包括整个链路上的),我连阿里运气好的时候可以维持几天
wwbfred
2023 年 3 月 16 日
TCP 都有中断的问题,这个没办法,使用 TCP 就应该把它当成沉默一段时间后会自然中断。
SSH 的话不知道你用啥客户端,有些客户端可以设置定时发空 SSH 包或哑命令,这样可以挂几天都不断。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/924480

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX