买了VPS刚用得好好的,突然SSH连不上了、网站打不开了、ping不通了——几乎每个站长都遇到过这种事。新手第一反应往往是"IP被墙了",然后开始慌,到处找人问怎么办。
但实际上,VPS连不上有很多种可能原因,IP被墙只是其中一种,而且占比不到30%。本地网络问题、SSH服务挂了、防火墙没开端口、VPS宕机了……这些原因比"被墙"更常见。
这篇文章我整理了一套完整的排查流程,从本地到服务器,从简单到复杂,一步步教你定位问题。哪怕你是完全的新手,按照顺序走一遍,大概率能找到问题所在。
1第一步:先看报错信息是什么
SSH连接时出现的错误信息,直接告诉你问题出在哪。先别慌着搜,仔细读一下报错内容:

常见报错及对应原因
| 报错信息 | 可能原因 | 严重程度 |
|---|---|---|
Connection timed out(连接超时) |
IP被墙 / 服务器宕机 / 防火墙阻断 | 中-高 |
Connection refused(连接被拒绝) |
SSH服务没启动 / 端口不对 / SSH监听地址配置错 | 低-中 |
Permission denied(权限拒绝) |
密码错了 / 密钥不对 / 用户名错 | 低 |
No route to host(无路由) |
本地网络问题 / VPS已关机 / 路由异常 | 中 |
Host key verification failed |
SSH指纹变更(服务器重装系统) | 低 |
2第二步:排除本地网络问题
先别急着怪VPS,本地网络也可能出问题。做三个简单测试:
测试1:换个网络试试
用手机流量(断开WiFi)SSH连接试试。如果手机流量能连上,WiFi连不上,说明是你本地宽带的问题(可能是运营商路由问题、本地DNS问题,不是VPS的锅)。
测试2:ping其他公网IP
ping一下百度 ping www.baidu.com 和 8.8.8.8,如果都ping不通,说明你本地网络断了,先把自己网络修好。
测试3:换个DNS试试
本地DNS污染也可能导致连不上。把电脑DNS改成 223.5.5.5(阿里)或 119.29.29.29(腾讯)再试。
3第三步:用MTR做路由追踪
ping不通不一定是被墙,有可能是中间某个路由节点出问题了。MTR(My Traceroute)是结合了ping和traceroute的工具,可以看到数据包在哪一跳出了问题。

怎么安装和使用MTR
# Windows:下载WinMTR,填入VPS IP点Start # Mac/Linux: sudo apt install mtr # Debian/Ubuntu brew install mtr # Mac # 然后运行: mtr -rwn 你的VPS-IP
怎么看MTR结果
- 最后一跳(你的VPS)丢包:VPS端问题,或者IP被墙
- 国内某一跳开始丢包:国内运营商节点问题,等几小时通常自动恢复
- 国际出口节点丢包(一般是第4-5跳):国际出口拥堵,晚高峰常见
- 全程不丢包但最后一跳100%丢:IP被墙(防火墙在边境直接丢包)
4第四步:检查端口是否开放
IP能ping通但SSH连不上?很可能是端口问题。VPS的防火墙或者商家安全组没开22端口(或者你改过SSH端口但忘记了)。

快速检测端口
# 用nc(netcat)检测: nc -zv 你的VPS-IP 22 nc -zv 你的VPS-IP 80 nc -zv 你的VPS-IP 443 # 或者用telnet: telnet 你的VPS-IP 22 # 或者用nmap批量扫描: nmap 你的VPS-IP
端口结果判断
succeeded!/open→ 端口正常打开,问题不在端口Connection refused/closed→ 端口关闭,可能是SSH没启动,或者防火墙没放行timed out/filtered→ 端口被防火墙阻断(可能被墙,也可能是服务器防火墙)
5第五步:检测IP是否真的被墙
确认完前面几步都没问题,才来判断是不是被墙。注意:"ping不通"≠"被墙"——有些VPS默认禁ping,但网站和SSH都是正常的。
被墙有两种情况
- IP被封(TCP阻断):IP本身能ping通,但特定端口(比如22、80、443)被阻断。这是最常见的情况,通常是端口被封,不是整个IP挂了
- IP完全被墙(null routed):所有端口都连不上,ping完全不通。这种情况比较少见,一般是严重违规才会这样
多节点检测方法
不要只在自己电脑上测,要用多个国内外节点测。推荐方法:

- 使用在线检测工具(如 itdog.cn、ping.pe、ip138等),输入你的IP让全国各地节点ping测
- 如果国内节点全部超时/丢包100%,海外节点全部正常,那IP大概率是被墙了
- 如果国内海外都不通,大概率是VPS本身宕机了
- 如果部分国内节点通、部分不通,可能是运营商路由问题,不是被墙
6第六步:检查服务器防火墙和安全组
能ping通、IP没被墙、但端口连不上?那很可能是服务器内部防火墙没放行端口,或者商家后台的安全组没开。

通过VNC/控制台进入服务器
SSH连不上的时候,商家后台一般都有VNC(也叫Web Console、远程控制台)功能,相当于给你接了个显示器键盘,不经过网络就能登录服务器。登录后检查:
检查系统防火墙
# 查看firewalld状态和开放端口 firewall-cmd --state firewall-cmd --list-all # 如果用的是ufw(Ubuntu默认) ufw status # 开放必要端口 firewall-cmd --permanent --add-port=22/tcp firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp firewall-cmd --reload
检查商家安全组
除了服务器内部防火墙,很多商家(阿里云、腾讯云、Vultr等)还有一层"安全组",相当于云端防火墙。登录商家后台,找到安全组/防火墙设置,确认22、80、443端口已经放行了"0.0.0.0/0"(所有IP)。
7第七步:检查SSH服务和系统状态
通过VNC登录进去后,检查SSH服务是不是挂了、系统资源是不是跑满了。
检查SSH服务状态
# 检查sshd是否在运行 systemctl status sshd # 如果没运行,启动它 systemctl start sshd systemctl enable sshd # 设置开机自启 # 检查SSH监听端口(确认是不是改了端口) ss -tlnp | grep sshd
检查系统资源是不是跑满了
# 查看CPU、内存使用 top free -h df -h # 检查磁盘是不是满了(磁盘满了SSH也会连不上!)
df -h 看一眼Use%是不是100%,如果满了先清日志释放空间。检查系统是否崩溃
如果VNC也连不上,或者进去后系统响应极慢、命令卡死,可能是内核panic或者系统彻底挂了。这种情况在商家后台选择"重启",一般能恢复;如果重启都不行,可能需要重装系统。
8第八步:最终解决方案
情况A:IP被墙了怎么办?
- 联系商家换IP:这是最快的解决办法。大多数VPS商家提供付费换IP服务,价格一般在¥20-50元左右,换完立即能用。选VPS商家时优先选支持方便换IP的。

- 买新IP/附加IP:有些商家支持额外购买IP,旧IP不要了,用新IP
- 备份数据后重装系统换机房:如果是小商家不支持换IP,只能备份数据删掉机器重新开一台(新机器分配新IP)
- 套CDN/高防IP:如果是网站业务,可以套一层CDN(Cloudflare等)隐藏源站IP,用户通过CDN访问,源IP被墙也没关系
情况B:服务器宕机/系统挂了怎么办?
- 先在商家后台点"重启"(Power Cycle / Reboot),等5分钟再试试
- 重启不行用VNC进去看系统日志
journalctl -xe找报错原因 - VNC都进不去,联系商家客服检查物理机状态
- 物理机故障,要求商家迁移或退款
情况C:SSH配置出错把自己锁外面了
- 用VNC登录进去
- 改回配置:
vi /etc/ssh/sshd_config,把PasswordAuthentication改成yes(允许密码登录) - 重启SSH:
systemctl restart sshd - 下次改SSH配置记得先保留一个session测试,不要直接退出
预防措施:让VPS连不上的概率降到最低
排查一次问题挺费时间,不如平时做好预防:
- 改SSH端口为非默认端口(2222或更高),减少被扫描和误伤
- 配置SSH密钥登录,禁用密码登录(既安全又防暴力破解)
- 安装fail2ban,自动封禁暴力破解IP
- 设置服务器监控(比如UptimeRobot、NodeQuery),宕机自动发邮件提醒
- 定期异地备份数据(至少每周一次,换IP或重装时才不慌)
- 不要在VPS上跑违规业务(翻墙、发垃圾邮件、钓鱼等),避免IP被封
- 重要业务准备备用机,一台挂了另一台顶上
- 选择支持快速换IP、响应快的商家(这点LuckVM售后做得不错)
快速排查流程速查表
遇到连不上问题时,按这个顺序快速走一遍:
| 步骤 | 做什么 | 预期结果 |
|---|---|---|
| 1 | 看SSH报错信息 | 初步判断错误类型 |
| 2 | 换手机流量试试 | 排除本地网络问题 |
| 3 | ping + MTR路由追踪 | 定位丢包位置 |
| 4 | nc/nmap检测端口 | 确认端口状态 |
| 5 | 多节点ping测IP | 确认是否被墙 |
| 6 | VNC登录检查防火墙/安全组 | 确认端口是否被拦截 |
| 7 | 检查sshd状态/磁盘/系统资源 | 排除服务和资源问题 |
| 8 | 联系商家换IP/重启/重装 | 最终解决 |
最后说一句:遇到VPS连不上不要慌,也不要上来就重装系统。按步骤一步步排查,绝大多数问题都能找到原因解决。真正需要重装系统的时候非常少,大部分时候就是个小配置问题,改一下就好。
如果你按这个流程走完还是找不到问题,可以在评论区贴上报错信息,我会尽力帮你判断。另外建议把这篇文章收藏一下,万一哪天VPS突然连不上,可以回来对照排查——毕竟每一个站长,都有过凌晨三点被监控告警叫醒排查VPS的经历 😂




