SSH 连接失败的第一步是确认服务器本身是否在线。 打开终端 (Windows 用户可用 cmd),输入:
ping <your_vps_ip>
- 如果 ping 通:说明网络通畅,问题出在 SSH 服务或端口配置上。
- 如果 ping 不通 (Request timed out):可能是:
- IP 被墙 (GFW 拦截)。
- VPS 宕机或正在重启。
- 服务商网络故障。
- 禁用了 ICMP (较少见)。
如果 ping 通但无法连接 SSH,可能是端口被防火墙阻挡。
使用 telnet 或 tcping 工具:
telnet <your_vps_ip> 22
或者在线工具如 Port Check。
- Connection refused: 端口未开放,或 SSH 服务没启动。
- Connection timed out: 防火墙拦截了该端口。
这是国内用户最常见的原因。症状是:国外 IP 可以 ping 通,但国内 IP 无法 ping 通。 解决方法:
- 更换 IP (部分服务商支持免费或付费更换)。
- 套 Cloudflare CDN (仅限 Web 服务,SSH 需通过 Cloudflare Argo Tunnel)。
- 使用跳板机连接。
解决方法: 登录服务商提供的 VNC Console (网页版控制台),无需 SSH 即可操作。 登录后执行:
systemctl status sshd
# 如果未运行
systemctl start sshd
有时候安装宝塔面板或配置 UFW/iptables 时会误封 SSH 端口。 在 VNC 中执行:
# Ubuntu/Debian (UFW)
ufw allow 22/tcp
# CentOS (FirewallD)
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload
部分服务商 (如 Google Cloud, AWS, 甲骨文) 默认禁用 Root 密码登录,必须使用密钥。 如果必须开启密码登录,编辑配置文件:
vim /etc/ssh/sshd_config
# 修改以下项
PermitRootLogin yes
PasswordAuthentication yes
重启 SSH 服务生效:systemctl restart sshd
遇到 SSH 连接问题不要慌,按顺序排查:Ping -> Port -> VNC 检查服务 -> 防火墙。绝大多数问题都可以通过 VNC 控制台修复。
