VPS 的 IP 被封锁/端口连不上怎么办?TCP Ping 排查与 Cloudflare CDN 救活指南
2026-08-14 · DevCraft Studio
IP 被封锁还是端口被封,还是机器自己挂了?教你用 TCP Ping 精准排查,搞懂 RackNerd/ColoCrossing 的换 IP 政策,并用 Cloudflare 橙色云把被封锁的网站救回来。
说句大实话,几乎每个玩 VPS 的人,迟早都会撞上这么一回事:昨天还好好的,今天一早起来,网站打不开了,SSH 也连不上,ping 一下全是超时……心里咯噔一下,第一反应往往是"我的 IP 被封锁了?"
别慌,先别急着下结论。因为"连不上"这事儿,其实分好几种完全不同的原因:可能是 IP 真的被封锁了,可能是某个端口被封了,也可能只是这台机器自己宕机了,甚至还可能是你家宽带这会儿抽风。原因不同,解决办法天差地别——把"宕机"当成"被封锁"去换 IP,白花冤枉钱;把"端口被封"当成"IP 被封锁"去折腾 Cloudflare,也是白忙活。
这篇就用大白话,一步步带你把问题查清楚,再把能用的救法都给你讲明白。
一、先别急着换 IP:搞清楚到底是哪种"连不上"
很多人排查问题的第一招就是 ping,看到超时就断定"被封锁了"。其实这个判断一点都不准,因为 ping 用的是 ICMP 协议,而现在很多服务器、防火墙、甚至网络环境都会故意禁掉 ICMP 响应。也就是说:ping 不通,不等于机器挂了,更不等于被封锁了。
真正能说明问题的,是"TCP 层面的连通性"——也就是你的端口(比如 22、80、443)到底通不通。这俩的区别,打个比方:ICMP ping 像是在喊"有人吗",对方可能只是不想搭理你(禁 ping);而 TCP 连端口,相当于你真的去敲门、拧门把手,门开没开一试便知。
所以正确的排查姿势是:ICMP 先测个大概,TCP 再下定论。
1. ICMP Ping:只能当个"初步参考"
# 在你本地电脑上测(Linux / macOS 终端,Windows 用 cmd)
ping -c 5 你的VPS的IP- 能通:说明网络层至少基本可达,但不代表你的网站/SSH 端口就可用(ICMP 通 ≠ 端口通)。
- 不通:可能是被封锁、可能是禁 ping、也可能是机器真挂了。光看这一条,啥也定不了。
2. TCP Ping:这才是关键证据
ping 测的是 ICMP,而我们访问网站、连 SSH,走的是 TCP。所以得用专门测端口的工具。下面几个命令挑着用,原理都一样:尝试和目标 IP 的某个端口建立 TCP 连接。
# 方法一:nc(网络瑞士军刀,最推荐,几乎都有)
nc -zv -w 3 你的VPS的IP 443
nc -zv -w 3 你的VPS的IP 22
# 方法二:nmap,结果最直观(open / filtered / closed)
nmap -Pn -p 22,80,443 你的VPS的IP
# 方法三:curl 直接打 IP 的 Web 端口
curl -I --connect-timeout 5 http://你的VPS的IP:80
curl -Iv --connect-timeout 5 https://你的VPS的IP:443
# 方法四:tcping(专门模仿 ping 测 TCP,需安装:apt install tcping)
tcping 你的VPS的IP 443结果怎么看:
- 连上了(nc 显示
succeeded、nmap 显示open、curl 能返回 HTTP 头):说明这个端口是活的,机器没挂。 - 显示
Connection refused:端口没服务监听,但机器本身可达——大概率是服务挂了或配置错了,不是被封锁。 - 一直卡住然后超时(nmap 显示
filtered):这才是典型的"被拦截/被封锁"信号——你的包在半路被掐了。
3. 路由追踪:看看断在哪一跳
如果 TCP 也不通,用 mtr 或 traceroute 看看数据包走到哪一步断的:
# Linux / macOS
mtr -r -c 10 你的VPS的IP
traceroute 你的VPS的IP
# Windows 用 tracert
tracert 你的VPS的IP观察重点:如果数据包跳到国际出口(比如国内骨干网那一跳)之后,后面全是 * * *,基本就是流量在"出国关口"被拦了——这强烈暗示是 网络防火墙 层面的拦截,而不是机器自己宕机。
4. 一锤定音:全球多点验证
最稳的判据,是用海外的视角再看一眼。推荐两个在线工具:
ping.pe:输入 IP,看全球各地的 ICMP 结果。port.ping.pe:输入IP:端口,看全球各地的 TCP 结果。
判读口诀:如果中国节点的检测全是红的 Failed,而美国、欧洲节点全是绿的 Success,那就坐实了——你的 IP 在国内被封锁了。 反过来,如果海外节点也连不上,那多半是机器自身宕机或商家网络出问题,跟"网络封锁"没关系。
二、三种情况,一张表对号入座
把你上面测的结果凑一起,就能分清这三类情况:
| 现象 | 国内 ping | 海外 ping | 国内 TCP 端口 | 海外 TCP 端口 | 结论 | 该咋办 | |------|-----------|-----------|--------------|--------------|------|--------| | 机器宕机 | 不通 | 也不通 | 不通 | 也不通 | VPS 自己挂了 | 进商家后台看状态/控制台/重启 | | 仅禁 ICMP | 不通 | 通 | 通 | 通 | 只是禁了 ping | 不用管,正常用 | | 端口被封 | 通 | 通 | 不通 | 通 | 特定端口被封 | 改端口 / 走 CDN | | IP 被封锁 | 不通 | 通 | 不通 | 通 | 网络防火墙 拦截 | 换 IP 或 Cloudflare 救 Web |
记住最核心的一条:国内不通、海外通 = 被封锁;国内外都不通 = 机器/网络问题。 别再把"机器挂了"误判成"被封锁"去乱花钱了。
三、机器真挂了 / 端口被封 / IP 被封锁,分别怎么处理
- 机器宕机:先去商家控制面板看实例状态,很多面板带"Console / VNC"能直接进后台;能重启就重启,看是不是 OOM、磁盘写满、或者配置改崩了。这种跟"网络封锁"无关,折腾 Cloudflare 没用。
- 端口被封(机器和 IP 都活着,只是某个端口连不上):常见于 22 端口被针对性封、或某些敏感端口被运营商掐。解决办法是"换端口",下面第六节细讲。
- IP 被封锁(TCP 全端口都不通,但海外正常):这是最麻烦的,两个路子——要么找商家换 IP,要么用 Cloudflare 把 Web 流量"绕"过去(SSH 另说)。
四、换 IP:主流便宜商家都是什么政策
确认 IP 被封锁之后,最直接的办法就是换个 IP。以咱们站里常推荐的几家为例,说说真实政策(具体以你下单时的条款为准,这里给个大致参考):
RackNerd(以及它大量使用的 ColoCrossing 机房):
- 后台自带 "Change IP" 自助换 IP 功能,不用发工单。
- 购买后 72 小时(3 天)内第一次换 IP 免费;超过 72 小时,每次收费 3 美元,支付后自动换。
- 注意:换 IP 是"替换"原来的 IP,不是"额外加一个 IP"。换完你的机器还是只有一个 IPv4,只是地址变了。
- 每台机器一般只给一次免费换 IP 机会,用掉就没了。
ColoCrossing / 其他 ColoCrossing 机房的二道贩子:
- 作为底层机房,政策跟 RackNerd 基本一致(很多低价 VPS 本来就跑在 CC 机房里)。
- 部分小商家可能不提供免费换 IP,或只在某些促销活动里送一次,下单前最好看一眼商品页说明。
几个提醒:
- 换 IP 之前,先在本地用上面教的 TCP ping 测一下"新 IP 干净不干净"。有的新 IP 本身就被封锁过或进过黑名单,换了个寂寞。RackNerd 后台换 IP 后通常会开个工单告诉你新 IP,拿到先测再切 DNS。
- 换完 IP 记得同步改域名 DNS 的 A 记录,把 TTL 先调小到 300 秒左右,生效快、好回滚。
- 如果你只是 Web 服务被封锁、又不想花钱换 IP,那一节讲的 Cloudflare 方案能零成本救回来——Web 不用换 IP 也能访问。
五、"死鸡复活":用 Cloudflare 橙色云把被封锁的网站救回来
这是整篇最实用的黑科技,也是很多老手"被封锁不慌"的底气所在。
原理(说白了就一句话)
正常情况下,用户是直接连你的 VPS IP 的;IP 一被封锁,用户就摸不着门了。Cloudflare 的"橙色云"(Orange Cloud / Proxied)相当于在用户和你之间插了个反向代理:
用户 ⇄ Cloudflare 边缘节点(一堆正常网站的 IP) ⇄ 你的 VPS(源站)用户访问的是 Cloudflare 的 IP,根本不知道你的真实 IP 是多少。而 Cloudflare 那些 IP 背后挂着海量正常网站,网络防火墙 不可能为了封你一个人,把整个 Cloudflare 的 IP 段都网络封锁了(那得误伤多少大站)。于是,哪怕你的源站 IP 已经被封锁,只要 Web 流量走 Cloudflare,国内用户照样能打开你的网站。
操作步骤
- 注册个免费 Cloudflare 账号,添加你的域名。Cloudflare 会扫一遍你现有的 DNS 记录,确认一下。
- 按提示,去你的域名注册商那里,把域名的 Nameserver 改成 Cloudflare 给的那两个。生效一般几分钟到一天。
- 在 DNS 面板里,把你网站用的 A 记录(指向你 VPS 真实 IP 的那条)右边的云朵点成橙色(Proxied)。根域名
@和www都点上。 - 进 SSL/TLS → Overview,加密模式选 Full (Strict),并且你 VPS 上装好 Let's Encrypt 证书。这样用户到 Cloudflare、Cloudflare 到源站,全程都是 HTTPS,安全又不会被拦。
- 最关键的一步——锁源站防火墙。否则别人从 DNS 历史里翻出你的真实 IP,照样能绕过 Cloudflare 直接打你。只允许 Cloudflare 的 IP 访问 80/443:
# 用 ufw 放行 Cloudflare 的 IPv4 段到 80/443
for net in $(curl -s https://www.cloudflare.com/ips-v4); do
ufw allow proto tcp from $net to any port 80,443 comment 'Cloudflare'
done
ufw reload
# 验证:从你本地电脑直接打真实 IP,应该超时(说明源站不再对外裸奔)
curl -m 5 http://你的真实VPS的IP/- 验证成功:浏览器开你网站,看响应头里有
server: cloudflare和cf-ray就说明走通了。
两个必须知道的局限
- Cloudflare 只代理 HTTP/HTTPS(Web 流量)。 它支持的端口有限,主要是 80、443,外加 8080、8880、2052、2053、2082、2083、2086、2087、2096、8443 这些。SSH(22)、邮件(25/465)、FTP、游戏服这些走不了 Cloudflare。所以这套方案救的是"网站/API",救不了 SSH 直连——SSH 被封锁还得靠换 IP 或隧道。
- 它不"解封"你的 IP,只是"绕开"封锁。 你的真实 IP 依然在被封锁状态,只是用户访问时碰不到它了。所以别在源站上直接发邮件(邮件头会暴露真实 IP),也别把 MX 记录也橙云了(邮件不能代理)。
六、端口被封怎么办:改 SSH 端口 + 端口漫游
如果你的 IP 没被封锁,只是某个具体端口(最常见是 22)连不上,那是端口层的事,换 IP 就小题大做了。思路是:换个端口,绕开针对这个端口的封锁。
修改 SSH 端口
# 编辑 sshd 配置,把默认的 22 改成一个高位端口,比如 2222
sudo sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config
# 确认一下改对了
grep -i '^Port' /etc/ssh/sshd_config
# 防火墙放行新端口(用 ufw 的例子)
ufw allow 2222/tcp
# 重启 sshd 生效(注意:保持当前会话别断,另开窗口验证新端口能登再关旧窗口)
sudo systemctl restart sshd重要安全提醒:改端口前,一定先开一个新终端窗口测试新端口能登上,确认无误再关旧连接。不然改完重启、旧窗口一断,新端口又没配上,你就被自己锁在门外了。另外,端口别乱选,避开 0~1024 的特权端口,用 1024~65535 之间的高位端口更稳妥。
"端口漫游"的思路
说白了就是:发现某个端口被封,就换一个;被封锁的方向如果是针对特定端口的 TCP Reset,换端口常常立竿见影。配合上面的 Cloudflare,Web 走 443 经 CDN 隐藏真实 IP,SSH 走高位端口,基本能覆盖绝大多数"连不上"的场景。
但要认清现实:如果是整个 IP 的 TCP 全端口阻断(海内外 TCP 都不通,只有海外通),那改端口没用——因为封的是 IP 而非单个端口。这时候 Web 用 Cloudflare 救,SSH 就得换 IP 或用 Cloudflare Tunnel / 中转机了。
七、结论与避坑清单
把上面浓缩成一份"连不上"时的操作清单,照着做基本不会乱花钱:
- 先
ping测个大概,但别拿它下结论。 - 用
nc/nmap/curl做 TCP ping,看端口到底通不通。 - 用
mtr/traceroute看断在哪一跳。 - 上
ping.pe/port.ping.pe做全球多点验证:国内红、海外绿 = 被封锁;都红 = 机器挂了。 - 机器挂了 → 进商家后台重启/看 Console;端口被封 → 改 SSH 端口/端口漫游;IP 被封锁 → 换 IP(RackNerd 72h 内免费、之后 3 刀)或用 Cloudflare 橙色云救 Web。
- Cloudflare 只救 Web,记得锁源站防火墙只放 Cloudflare IP,别让它裸奔。
- SSH 被封锁别指望 Cloudflare,乖乖换 IP 或走隧道。
说到底,VPS 被封锁不是世界末日。先查清楚原因,再对症下药——能改端口解决的别换 IP,能用 Cloudflare 白嫖救回来的别花钱,实在不行再换。把这几点记熟,下次再遇到"连不上",你就能淡定地一步步排雷了。
延伸阅读
更多相关攻略推荐:【10刀以内VPS系列 01】年付不到70块钱的便宜VPS,到底能用、连云厂商也看不到你的数据?机密计算(Confidential Com、被割裂的"云上互联网":数据主权(GDPR)、本地化存储与主权云(S、为什么你自己 VPS 发的邮件总进垃圾箱?邮件协议(SPF、DKIM、百兆带宽如何流畅看 4K?视频切片(HLS/DASH)、AVIF 压。