半夜三点,你打开终端准备 SSH 登录 VPS,发现——连不上了。
ping 不通、SSH 超时、网站打不开。第一反应:完了,是不是被墙了?
别慌。IP 连不上有好几种原因,不一定是被墙。本文帮你一步步诊断,找到原因,紧急恢复。
第一步:诊断到底是哪种"连不上"
1. 从国内连不上,但从国外能连
症状: 本地 ping 不通,但用手机热点或 VPN 能连
最可能的原因: IP 被 GFW 封了(被墙)
确认方法:
# 用手机热点或其他国内网络测试
ping 你的VPS_IP
# 如果完全不通(0% packet loss = 正常,100% loss = 被墙)
2. 从哪里都连不上
症状: 国内国外都 ping 不通,VPS 面板显示"运行中"
可能原因:
- VPS 被数据中心封了(滥用投诉)
- VPS 内部防火墙配置错误
- VPS 系统崩溃/内核 panic
- 数据中心网络故障
确认方法: 登录 VPS 服务商的 Web 控制台(不是 SSH),查看 VPS 状态和 VNC 控制台
3. SSH 能连但很慢/经常断
症状: 能连上但体验很差
可能原因:
- 线路拥塞(高峰期丢包严重)
- SSH 配置问题
- VPS 性能不足(CPU/内存跑满)
情况一:IP 被墙了怎么办
紧急恢复方案
方案 A:等(最简单)
被墙的 IP 通常 24-72 小时后会自动解封。如果 VPS 里没有紧急业务,可以先不管,过两天再试。
方案 B:换 IP(推荐)
大多数 VPS 商家支持付费换 IP:
| VPS 商家 | 换 IP 价格 | 操作方式 |
|---|---|---|
| RackNerd | $3/次 | 工单申请 |
| Hostinger | 免费(每 14 天一次) | 控制面板 |
| Vultr | $2/次(销毁重建免费) | 控制面板一键重建 |
| Hetzner | €4/次 | Cloud Console |
| Contabo | €5/次 | 工单申请 |
Vultr 最方便: 直接在控制面板点"Destroy"然后"Deploy New",新 IP 随机分配,等于免费换 IP。
方案 C:套 Cloudflare CDN(如果跑网站)
如果 VPS 跑的是网站,可以让 Cloudflare 做反向代理,用户访问的是 Cloudflare 的 IP 而不是你的 VPS IP:
# 1. 注册 Cloudflare,添加域名
# 2. 在 Cloudflare 开启代理(橙色云朵)
# 3. VPS 上只允许 Cloudflare IP 访问 80/443 端口
# iptables 只允许 Cloudflare IP(参考 Cloudflare 官方 IP 列表)
iptables -A INPUT -p tcp --dport 80 -s 173.245.48.0/20 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -s 173.245.48.0/20 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables -A INPUT -p tcp --dport 443 -j DROP
这样即使 IP 被墙,用户通过 Cloudflare 仍然能访问你的网站。
情况二:VPS 被数据中心封了
常见被封原因
- 滥用投诉 — 你的 VPS 被用来发垃圾邮件、扫描端口、DDoS
- 违反 ToS — 跑代理/VPN 被检测到(部分商家禁止)
- 资源滥用 — 长期跑满 CPU/带宽
- IP 被第三方举报 — 比如被安全机构标记
各商家对"灰色用途"的态度
| VPS 商家 | 允许跑代理/VPN? | 允许跑 PT/BT? | 允许跑邮件服务器? |
|---|---|---|---|
| RackNerd | ⚠️ 不明确禁止 | ⚠️ 不建议 | ❌ 禁止 |
| Vultr | ⚠️ 不明确禁止 | ⚠️ 不建议 | ⚠️ 需申请 |
| Hetzner | ❌ 禁止 | ⚠️ 不建议 | ⚠️ 需申请 |
| Contabo | ⚠️ 不明确禁止 | ❌ 禁止 | ❌ 禁止 |
被封后怎么申诉
- 登录 VPS 控制台查看通知邮件
- 回复工单说明情况(如果是误封)
- 如果是滥用投诉,承认错误并承诺整改
- 请求解封或换 IP
实测经验: RackNerd 和 Vultr 比较宽松,Hetzner 比较严格。如果你需要跑代理,建议用 RackNerd 的洛杉矶机房。
情况三:VPS 内部问题导致连不上
通过 VNC 控制台抢救
大多数 VPS 商家都提供 VNC(虚拟网络控制台),即使 SSH 连不上也能操作:
- 登录 VPS 商家的 Web 控制台
- 找到 “VNC Console” 或 “Remote Console” 选项
- 打开后就像本地显示器一样操作
常见内部问题及修复
问题 1:防火墙规则写错了
# 通过 VNC 进入后
# 临时关闭 iptables
iptables -F
# 或者关闭 firewalld
systemctl stop firewalld
# 或者关闭 ufw
ufw disable
问题 2:SSH 端口被改了
# 检查 SSH 配置
cat /etc/ssh/sshd_config | grep Port
# 如果端口被改成非标准的(比如 2222),用新端口连接
ssh -p 2222 root@你的VPS_IP
问题 3:系统启动失败(内核 panic)
在 VNC 控制台查看错误信息,通常需要:
- 进入恢复模式(GRUB 菜单选 recovery)
- 修复 /etc/fstab 挂载错误
- 重装系统(最后手段)
问题 4:磁盘满了
# 通过 VNC 检查磁盘
df -h
# 清理空间
du -sh /* | sort -rh | head -10 # 找大文件
journalctl --vacuum-size=100M # 清理日志
apt clean # 清理包缓存
预防措施:避免 IP 被封
1. 配置安全的防火墙
# 只开放必要端口
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw enable
2. 安装 fail2ban(防暴力破解)
apt install fail2ban -y
systemctl enable fail2ban
3. 定期更换 SSH 端口
# 改成非标准端口,减少扫描攻击
sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
systemctl restart sshd
4. 禁止密码登录,只用密钥
# 生成密钥
ssh-keygen -t ed25519
# 禁止密码登录
sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd
5. 安装系统监控
# 安装 netdata 实时监控
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
高级方案:双 VPS 冗余
如果你的业务不能中断,可以搞双 VPS 做冗余:
用户 → Cloudflare → VPS A(主力)
↘ VPS B(备用,同服务商不同机房)
配置方法:
- 买两台不同机房的 VPS(比如 RackNerd 洛杉矶 + 芝加哥)
- 两边部署相同的服务
- 用 Cloudflare 的负载均衡或健康检查自动切换
成本:两台 RackNerd $22.58/年 = $1.88/月,买个保险不亏。
常见问题
Q: 被墙的 IP 会自动解封吗?
通常 24-72 小时会自动解封,但不保证。如果一周后还没解封,基本就是永久封了。
Q: 换 IP 后还会被封吗?
如果你没有改变使用习惯(比如继续跑被投诉的内容),新 IP 也会被封。关键是改变使用方式。
Q: 怎么判断是被墙还是线路故障?
用这个方法判断:
- 找一个国内朋友帮你 ping → 如果国内能通,不是被墙
- 用手机 4G 网络 ping → 如果能通,可能是你家宽带的问题
- 用 VPN 连到国外再 ping → 如果能通,大概率是被墙
Q: 有没有不怕被墙的 VPS?
没有。但以下策略可以降低被墙概率:
- 用 Cloudflare CDN 隐藏真实 IP
- 不要让 VPS IP 直接暴露在网上
- 选对商家(RackNerd、Vultr 相对宽松)
选购推荐
Disclaimer: Some links are affiliate links. We may earn a commission at no extra cost to you.
