云服务器 10 分钟不操作自动断开 SSH,一般不是服务器的问题,而是:

  • ssh 客户端会断开
  • ssh 服务端有超时策略
  • 中间跳板机 / 防火墙 / 云厂商网关会超时断开
  • 运营商 NAT 会断开空闲连接

解决方式有 客户端保活、服务端保活、两端同时保活 三种。

方案 1:客户端开启 SSH KeepAlive(本地机器设置)

macOS / Linux 本地执行:

编辑 SSH 配置文件:

vim ~/.ssh/config

添加:

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 1000

含义:

  • ServerAliveInterval 60 → 每 60 秒发一次心跳包
  • ServerAliveCountMax 1000 → 容忍 1000 次失败(基本不会断)

🔒 全平台最稳通用配置!

重连后生效。


方案 2:开启服务端 SSH 保活(在云服务器上设置)

在服务器上执行:

sudo vim /etc/ssh/sshd_config

添加或修改:

ClientAliveInterval 60
ClientAliveCountMax 1000

然后重启 SSH:

sudo systemctl restart sshd

这会让服务器每 60 秒给客户端发心跳,让连接保持活跃。


方案 3:最强组合(客户端 + 服务端双保活)

如果网络中间设备(运营商 NAT、防火墙、路由器)有超时,这个组合最稳。

  • 客户端:ServerAliveInterval 60
  • 服务端:ClientAliveInterval 60

双向心跳,基本不可能断。


方案 4:使用 TMUX / SCREEN(不怕断线)

这是高级方案:

即使 SSH 断线,你的程序不会停止

安装 tmux:

sudo apt install -y tmux

启动:

tmux

断开 SSH 再登录,输入:

tmux attach

就能回到原来的环境。

适合长时间运行脚本 / 部署 / 训练模型。


方案 5:使用 MobaXterm、FinalShell(自带 KeepAlive)

如果你用 Windows:

  • MobaXterm(自动发送 keepalive)
  • FinalShell(也有保持连接功能)

直接开启即可。


方案 6:使用 SSH 的 -o 参数临时开启保活

无需修改配置文件:

ssh -o ServerAliveInterval=60 root@你的服务器IP

适合临时使用。


方案 7:如果你的云厂商有「空闲超时设置」

例如部分中国云厂商(腾讯云、阿里云、华为云)会在控制台网络层断开长期 idle 会话。

检查你的云服务器控制台是否有:

  • 会话超时设置
  • 安全组 TCP 超时
  • SLB 空闲超时

如果有,改成:

  • 1200 秒(20 分钟)
  • 或者直接最大(7200 秒)

也能避免断开。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐