服务器远程连不上:一份完整的排查顺序
发布时间:2026-08-01 15:21       
更新时间:2026-08-02 05:29
控制台里实例明明在运行,本地 SSH 却连不上。这种时候最忌讳东一下西一下地试,从近到远逐层排除,每一层都有明确的判断命令。
第一层:本地网络正常吗
ping 任意一个稳定站点,通则本地网络没问题。公司内网常见的情况是出口封了 22 端口,切手机热点再连一次,能连上就是本地网络的限制,找网管放行即可。还有一种容易忽略的情况:域名解析指向了旧 IP,用 ssh user@IP 直接连公网 IP 绕开 DNS 验证,能连上就是解析问题。
第二层:服务器还活着吗
ping 服务器公网 IP。ping 不通先别下结论,禁用了 ICMP(ping 所用的网络协议)的服务器本来就不响应。监控里如果连 ICMP 都没有曲线,优先怀疑实例停了而不是网络问题。更硬的证据去云控制台找:实例状态是否正常、CPU 监控是否还有业务波动;控制台支持 VNC(一种图形化的远程登录方式)的话直接进系统,绕开 SSH。
第三层:端口通吗
nc -zv 服务器IP 22
超时说明数据包没到达,安全组、防火墙、链路任何一环都可能拦;连接被拒绝说明机器活着但 sshd 有问题。这两种结果指向完全不同的方向。没装 nc 用 telnet 服务器IP 22 也行,退出时按 Ctrl+] 再输 quit。
第四层:安全组和系统防火墙
云平台安全组确认 22 端口对当前出口 IP 放行,这是新手故障里占比最高的一项。能从控制台进系统的话,再查系统内防火墙:CentOS 用 firewall-cmd --list-all,Ubuntu 用 ufw status,确认没有误拦规则。放行时来源填当前出口 IP,公司出口经常不止一个,只放行一个就会出现"同事能连你不能连"。
第五层:服务本身
从控制台登录后执行 systemctl status sshd 看状态,ss -lntp | grep :22 确认在监听。配置改完没重载、端口被改成其他值,都是常见原因。
五层走完,问题基本能定位到某一层。每层的结果都记下来,远程求助时不用从头再来。排查顺序的价值在于每一步都给出明确结论:这一层通还是不通,嫌疑范围随之砍掉一半。