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

2023-03-16 12:31:26 +08:00
 wenerme

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

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

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

ClientAliveInterval 300
ClientAliveCountMax 10

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

打算尝试下 tcp keepalive ,因为每个用到的都维护会有点麻烦。
wenerme
2023-03-16 14:01:13 +08:00
eryajf
2023-03-16 16:16:33 +08:00
如果你用的 iterm ,可以尝试下这个配置: https://wiki.eryajf.net/pages/de6b13/
rekulas
2023-03-16 21:44:01 +08:00
可能跟你网络有关(包括整个链路上的),我连阿里运气好的时候可以维持几天
wwbfred
2023-03-16 22:50:53 +08:00
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