在 Ubuntu 上遇到 SSH 连接超时(超时断开、连接慢、自动掉线等),可以从客户端、服务端、网络三方面排查和解决。下面按常见场景给你一套实用方案。
ping 服务器IP
在服务器上执行:
systemctl status ssh
没运行就启动:
sudo systemctl start ssh
sudo systemctl enable ssh
Ubuntu 常用:
sudo ufw status
如果启用,确保 22 端口开放:
sudo ufw allow 22
云服务器还要检查:安全组 / 防火墙规则
如果你改过端口(如 2222):
ssh -p 2222 user@ip
并确保防火墙和安全组放行该端口。
编辑服务器配置:
sudo nano /etc/ssh/sshd_config
修改或添加:
UseDNS no
GSSAPIAuthentication no
重启 SSH:
sudo systemctl restart ssh
ssh -o ConnectTimeout=10 -o ServerAliveInterval=30 user@ip
编辑:
sudo nano /etc/ssh/sshd_config
添加:
ClientAliveInterval 60
ClientAliveCountMax 3
含义:每 60 秒发一次心跳,最多 3 次无响应才断开
重启:
sudo systemctl restart ssh
编辑:
nano ~/.ssh/config
添加:
Host *
ServerAliveInterval 60
ServerAliveCountMax 3
如果你是:
解决方式:
autosshsudo apt install autossh
autossh -M 0 -o "ServerAliveInterval=30" user@ip
常见原因:
看服务器日志:
sudo tail -f /var/log/auth.log
✅ 网络通不通
✅ SSH 服务在不在
✅ 防火墙 / 安全组
✅ UseDNS no
✅ 心跳保活
✅ 日志看 auth.log
如果你愿意,可以告诉我:
Connection timed out)我可以给你更精确的方案。