什么是 “connect to host port 22” 错误?
当你尝试通过 SSH(Secure Shell)连接远程服务器时,如果看到类似以下提示:
ssh: connect to host [IP地址] port 22: Connection refused
或者连接长时间无响应(超时),说明你的客户端无法成功连接到目标主机的 22 端口。
常见原因及解决方案
- SSH 服务未运行:目标服务器上的 SSH 服务(如 OpenSSH)可能未启动。请登录服务器并执行
sudo systemctl status ssh检查状态。 - 防火墙阻止连接:服务器或本地网络的防火墙可能屏蔽了 22 端口。检查 UFW、iptables 或云服务商的安全组规则。
- SSH 端口被修改:部分服务器出于安全考虑将默认端口从 22 改为其他端口。此时需使用
ssh -p [新端口] user@host连接。 - 网络不通或 IP 错误:确认目标 IP 地址正确,并且你的设备与服务器处于同一网络或可路由通达。
- 服务器资源耗尽或宕机:若服务器负载过高或已关机,也会导致无法建立连接。
快速排查命令
- 测试端口是否开放:
telnet [IP] 22或nc -zv [IP] 22 - 查看本机能否访问目标:
ping [IP](注意:部分服务器禁 ping) - 在服务器上监听端口:
ss -tuln | grep :22