揭秘“间歇性失联”:手把手教你诊断国外网站是否被中国防火墙屏蔽
揭秘“间歇性失联”:手把手教你诊断国外网站是否被中国防火墙屏蔽

在国内访问 GitHub 时快时慢?Stack Overflow 今天能打开明天就“404”?你可能不是网络出了问题,而是撞上了国家网络监管的“动态策略”。本文将带你深入 GFW(Great Firewall)的运作机制,用技术手段精准判断一个域名是否被封、如何被封,以及为何“有时能访问,有时不能”。
1. 为什么国外网站会“时通时断”?
很多开发者、研究人员或普通用户都遇到过这样的情况:某个国外网站(如 example.com)在某些时间段完全无法访问,但换个时间、换个网络,甚至换个浏览器又能打开。这种“玄学”现象背后,其实是中国网络监管系统(俗称“防火墙”)的动态、多层、智能干扰机制在起作用。
1.1 防火墙不是“一刀切”的墙,而是“智能筛子”
GFW 并非简单地把所有国外网站全部屏蔽。它采用多种技术手段,根据时间、地点、用户行为、内容敏感度等因素,动态调整封锁策略。因此,同一个域名在不同时间、不同地区、不同网络环境下,可能呈现完全不同的访问状态。
1.2 常见的封锁类型
要准确判断一个网站是否被“封”,首先得知道它可能以哪些方式被干扰:
1.2.1 DNS 污染(最常见)
- 原理:当你向国内 DNS 服务器(如 114.114.114.114)查询
github.com时,GFW 会抢先返回一个错误的 IP(如127.0.0.1或某个无效地址)。 - 表现:浏览器提示“无法连接”或跳转到奇怪页面。
- 特点:仅影响使用国内 DNS 的用户;使用 DoH(DNS over HTTPS)或国外 DNS 可绕过。
1.2.2 IP 封锁
- 原理:目标服务器的 IP 地址被列入黑名单,所有发往该 IP 的流量被丢弃或重置。
- 表现:即使你知道正确 IP,也无法建立 TCP 连接(
telnet超时或 RST)。 - 特点:影响所有使用该 IP 的服务(如多个域名共用 CDN)。
1.2.3 SNI 阻断(针对 HTTPS)
- 原理:在 TLS 握手阶段,客户端会明文发送访问的域名(SNI 字段)。GFW 检测到敏感域名后,立即发送 TCP RST 包中断连接。
- 表现:浏览器显示“连接被重置”或“SSL 协议错误”。
- 特点:仅影响 HTTPS;HTTP 可能仍能访问(但现代网站基本全站 HTTPS)。
1.2.4 TCP 重置(RST 攻击)
- 原理:GFW 伪装成服务器,向客户端发送伪造的 TCP RST 包,强制断开连接。
- 表现:连接建立后瞬间断开,
curl显示Connection reset by peer。 - 特点:难以与服务器故障区分,需抓包分析。
1.2.5 策略性临时屏蔽
- 原理:在重大会议、节假日、敏感日期前后,GFW 会临时加强审查,扩大屏蔽范围。
- 表现:平时能访问的网站突然无法打开,几天后又恢复正常。
- 特点:具有时间周期性,常被误认为“网络波动”。
2. 如何科学验证一个域名是否被封?
盲目猜测不如动手验证。下面我们将从在线工具和本地命令行两个维度,教你系统性诊断。
2.1 使用权威在线检测工具(快速初筛)
这些工具部署在中国境内的多个节点,能模拟真实用户访问行为,提供可视化报告。
2.1.1 GreatFire.org —— GFW 状态的“晴雨表”
- 网址:https://en.greatfire.org/
- 操作:输入域名(如
stackoverflow.com),点击分析。 输出:
- 是否被屏蔽(Yes/No)
- 屏蔽类型(DNS pollution, IP block 等)
- 历史屏蔽记录(可查看是否“间歇性”)
- 优势:数据权威,支持批量检测,开源项目背景。
2.1.2 ViewDNS.info 的中国防火墙检测
- 网址:https://viewdns.info/chinesefirewall/
- 操作:输入域名,点击 “Check”。
- 原理:从中国多个城市发起 HTTP 请求,观察是否返回 200。
- 注意:仅测试 HTTP(非 HTTPS),对现代网站参考价值有限,但可作为辅助。
2.1.3 国内站长工具(如 站长之家)
- 网址:https://ping.chinaz.com/
- 用途:从全国多地 ping 目标域名。
判断依据:
- 若多地返回
127.0.0.1、0.0.0.0或超时 → DNS 污染或 IP 封锁。 - 若部分地区通、部分地区不通 → 区域性策略或运营商差异。
- 若多地返回
2.2 本地命令行深度诊断(技术进阶)
如果你熟悉终端操作,以下方法能提供更精确的底层信息。
2.2.1 第一步:检查 DNS 解析是否被污染
# 使用国内公共 DNS(114)
nslookup github.com 114.114.114.114
# 使用 Google DNS(需能访问 8.8.8.8)
nslookup github.com 8.8.8.8对比结果:
- 若 114 返回
9.9.9.9而 8.8 返回140.82.121.4→ DNS 污染 - 若两者一致 → DNS 层未被干扰
- 若 114 返回
💡 提示:也可用
dig命令,输出更详细:dig @114.114.114.114 github.com A +short dig @8.8.8.8 github.com A +short
2.2.2 第二步:测试真实 IP 连通性
假设你从国外 DNS 得到正确 IP 为 140.82.121.4:
# 测试 TCP 443 端口是否可达
telnet 140.82.121.4 443
# 或使用 curl 强制指定 IP(绕过 DNS)
curl -v https://github.com --resolve github.com:443:140.82.121.4预期结果:
- 成功:返回 HTTP 200 或 TLS 握手信息
失败:
Connection timed out→ IP 封锁Connection reset by peer→ TCP RST / SNI 阻断
2.2.3 第三步:区分 SNI 阻断与 IP 封锁
SNI 阻断只在发送域名时触发。可尝试用 IP 直接访问(无 SNI):
# 使用 IP 访问(不指定 Host)
curl -vk https://140.82.121.4
# 再对比带 Host header 的请求
curl -vk https://140.82.121.4 -H "Host: github.com"- 若前者成功、后者失败 → SNI 阻断
- 若两者都失败 → IP 封锁
⚠️ 注意:很多服务器配置为仅响应特定 Host,因此该方法需结合实际情况判断。
2.2.4 第四步:抓包分析(终极手段)
使用 tcpdump 或 Wireshark 抓包,观察是否有异常 RST 包:
sudo tcpdump -i any host github.com- 若看到来自非目标服务器的 RST 包(TTL 异常、序列号不匹配)→ GFW 主动干扰
3. 为什么“有时能访问,有时不能”?
这是最令人困惑的现象。结合前述机制,我们可以给出合理解释:
3.1 动态策略调整
GFW 会根据实时情报、关键词热度、用户访问量等,临时提升或降低某个域名的风险等级。例如:
- 某开源项目突然被大量中国开发者访问 → 触发“异常流量”警报 → 临时屏蔽
- 敏感事件期间 → 扩大审查范围 → 平时可用的网站也被波及
3.2 CDN 与 IP 轮换
许多国外网站使用 Cloudflare、Akamai 等 CDN,IP 地址会动态变化。GFW 可能只封锁了部分 IP,而你的 DNS 解析恰好轮询到未被封的节点 → 偶然能访问。
3.3 运营商差异
中国电信、联通、移动的 GFW 节点策略可能不同。你在家用电信打不开,但用手机 5G(联通)却能访问,就是这个原因。
4. 合规提醒与使用边界
📌 重要声明:本文所有技术手段仅用于网络故障诊断、学术研究、企业合规跨境业务等合法场景。
根据《中华人民共和国计算机信息网络国际联网管理暂行规定》及《网络安全法》:
- 任何个人和组织不得擅自设立国际通信设施
- 不得使用非法手段绕过国家网络监管
- 企业开展跨境业务应通过国家批准的国际通信出入口局
请务必确保你的检测行为符合法律法规,避免用于非法翻墙或传播违规内容。
5. 总结:一张表快速定位问题
| 现象 | 可能原因 | 验证命令/工具 |
|---|---|---|
域名解析为 127.0.0.1 | DNS 污染 | nslookup example.com 114.114.114.114 |
| 能解析但连接超时 | IP 封锁 | telnet <IP> 443 |
| 连接瞬间被重置 | SNI 阻断 / TCP RST | curl -v --resolve ... + 抓包 |
| 仅部分地区无法访问 | 区域性策略 | 站长之家全国 Ping |
| 重大事件期间失联 | 临时加强审查 | GreatFire 历史记录 |
6. 延伸阅读
- GreatFire 官方技术白皮书
- 《How the Great Firewall of China Works》— University of Toronto Citizen Lab
- RFC 7540: HTTP/2(了解 SNI 在现代协议中的作用)
技术无罪,合规先行。掌握这些诊断方法,不仅能帮你解决开发中的网络难题,更能让你在复杂的网络环境中保持清醒与理性。下次再遇到“神秘失联”,你就知道:不是网不好,而是墙在“思考”。
有时卡,有时好
外网都是这样的