Skip to content

GFW 主动探测及封锁机制

简介

本文介绍 GFW(Great Firewall,防火长城)的主要网络审查技术,包括被动检测和主动探测两类机制,以及这些机制对反审查工具的影响。理解这些审查手段是理解 REALITY 和 Xray-core 设计动机的前提。

本文回答

  • GFW 使用哪些技术手段进行网络审查
  • 主动探测和被动检测的区别
  • 为什么 TLS 代理流量容易被识别
  • 反审查工具的设计目标是什么

本文在项目中的位置

本文属于背景知识层,帮助理解"为什么要用 REALITY"。建议在阅读协议分析文档之前先读本文。

适合读者

所有想理解反审查技术背景的读者。

前置知识

TCP/IP 基础,DNS 基础,HTTPS 基础。

文章理解难度

入门。

重点

  • GFW 的被动检测手段(DPI、SNI 过滤、TLS 指纹)
  • GFW 的主动探测手段
  • 2021 年 GFW 对全加密流量的被动检测突破
  • REALITY 如何应对各项审查手段

难点

  • 理解 GFW 如何在不破解加密的情况下检测加密代理流量
  • 理解被动检测和主动探测的配合使用方式

上级文档和相关文档

主要证据

USENIX Security '23 论文《How the Great Firewall of China Detects and Blocks Fully Encrypted Traffic》,GFW Report 公开测量数据,维基百科 Great Firewall 条目。


GFW 概述

GFW 是中国实施的互联网审查系统的总称,其技术手段经历了从简单到复杂、从粗粒度到精细化的演进过程:

时期主要手段
2011 年前IP 黑名单、关键词过滤、DNS 劫持
2011-2015深度包检测(DPI)、SNI 过滤、TCP RST 注入
2015-2021TLS 指纹识别、主动探测、Tor 桥接阻断
2021 至今全加密流量被动检测、QUIC 阻断、实时流量分析

被动检测机制

被动检测指审查方不主动发送探测包,而是分析流经其网络设备的流量特征来进行识别和阻断。

1. IP 地址阻断

最基础的封锁手段。维护一个被封禁 IP 地址的列表,对发往这些 IP 的数据包直接丢弃或发送 TCP RST。

  • IP 阻断粒度粗,容易误伤共享 IP 的其他合法服务
  • 单独使用效果有限,CDN 和域名前置(Domain Fronting)等技术可绕过

2. DNS 劫持和污染

审查方在 DNS 层面进行干扰:

  • DNS 劫持:ISP 的 DNS 服务器对特定域名的查询返回错误 IP 或直接不返回
  • DNS 污染:在网络路径上注入伪造的 DNS 响应包,使客户端收到虚假的解析结果

3. SNI 过滤

SNI(Server Name Indication)是 TLS 握手中 ClientHello 消息的一个扩展字段,以明文形式发送,用于告知服务器客户端想要访问哪个域名。

审查方监控传输中的 TLS ClientHello 包,检查 SNI 字段。当 SNI 匹配黑名单域名时,阻断连接。

SNI 过滤是当前 GFW 最核心的审查手段之一,从 2024 年 4 月起,QUIC 协议的 SNI 过滤也已部署。

4. 深度包检测(DPI)

deep-packet-inspection.md

DPI 不仅检查包头部,还检查数据载荷内容。审查方通过 DPI 可以:

  • 识别特定协议的特征(如 Shadowsocks 的加密格式、VMess 的认证头)
  • 在 HTTP 请求中发现敏感关键词
  • 检测 TLS 证书中的特定字段

5. TLS 指纹识别

tls-fingerprinting.md

不同 TLS 实现(浏览器、Go 标准库、Python requests 等)在 ClientHello 中使用的密码套件、扩展字段等组合是不同的。通过指纹识别,审查方可以:

  • 识别某个连接来自 Go 标准库(Go crypto/tls 的指纹是公开且独特的)
  • 识别某个连接来自特定的代理工具
  • 结合其他特征进行精准阻断

6. 全加密流量被动检测

2021 年 11 月,GFW 部署了一种新的被动检测技术,能够在不破解加密、不发送主动探测包的情况下实时检测全加密协议流量(Shadowsocks、VMess 等)。

这是反审查领域的一个转折点——在此之前,社区普遍认为全加密随机流量(random-looking traffic)无法被被动检测。

USENIX Security '23 的论文分析了这一机制。审查方通过检查加密流量的首个数据包的载荷长度来区分协议:

  • 真实随机协议的客户端首个数据包没有可预测的长度模式
  • TLS 客户端首个数据包的长度是固定的结构:ClientHello 记录头(5 字节)+ 握手类型(1 字节)+ 长度字段 + 客户端版本 + 随机数 + Session ID + 密码套件 + 扩展
  • 通过观察首个数据包的载荷长度分布,审查方可以将符合随机流量特征但不符合 TLS 特征的连接识别出来

GFW 还对符合豁免规则(如白名单 IP、特定端口等)的连接不做阻断,以减少误伤。

主动探测机制

主动探测指审查方主动向可疑服务器发送探测包,根据响应判断其是否为代理/VPN 服务。

工作原理

  1. 被动发现:审查方通过被动检测识别出可疑的目标 IP 和端口
  2. 主动验证:审查方模拟客户端向该 IP 发送特定协议的握手请求
  3. 响应分析
    • 如果服务端返回了有效的协议响应 → 确认为代理服务,加入黑名单
    • 如果服务端返回错误或超时 → 可能是普通服务,暂不封禁

针对常见协议的主动探测

  • Shadowsocks:审查方发送随机数据到可疑端口,如果服务端返回了符合 Shadowsocks 格式的加密数据,则识别为 Shadowsocks 服务端
  • VMess:审查方发送模拟 VMess 认证头的包,分析响应
  • Tor:审查方发送 Tor 握手包到可疑 IP,对 Tor 桥接节点进行探测和阻断
  • TLS 代理:审查方发起正常的 TLS 握手到可疑端口,分析返回的证书是否为自签名证书(许多代理工具使用自签名证书)

探测后的处理

一旦主动探测确认了代理服务:

  1. IP 被加入黑名单 → 后续流量被直接阻断
  2. 可能伴随端口封锁 → 同 IP 的其他端口也可能被限制
  3. 封锁有残留效应——即使封锁解除后恢复连接,在探测到代理特征后会立即再次封锁

GFW 的残留阻断通常持续 1-3 分钟,期间从同一源 IP 到同一目标 IP+端口的所有 TCP/UDP 包都会被丢弃。

REALITY 如何应对各项审查

审查手段REALITY 的应对
IP 阻断使用境外服务器 + CDN 中转(非 REALITY 直接解决)
DNS 劫持客户端使用 DoH/DoT(非 REALITY 直接解决)
SNI 过滤REALITY 使用的 SNI 是真实网站域名(如 microsoft.com),未被封锁
DPIREALITY 对外表现为标准 TLS 1.3 + HTTP/2,没有异常协议特征
TLS 指纹服务端使用目标网站的真实证书(无服务端指纹);客户端通过 uTLS 模拟浏览器指纹
全加密流量被动检测REALITY 流量在 TLS 层使用标准加密套件,首个包结构与正常 TLS 一致
主动探测探测方的 TLS 握手被识别为非 REALITY 客户端 → 连接被转发到目标网站 → 探测方收到的是目标网站的真实响应

核心设计思想:REALITY 不在网络层面表现出任何不同于普通 HTTPS 的特征——它的 TLS 握手与访问 microsoft.com 的 TLS 握手完全一致。

审查机制的协同使用

GFW 的各种审查手段并非独立运行,而是形成多层过滤的协同体系:

REALITY 的设计目标是让流量在每一层的表现都与普通 HTTPS 流量无法区分,使审查方没有理由触发任何阻断。

外部参考资料

资料:How the Great Firewall of China Detects and Blocks Fully Encrypted Traffic 类型:顶会论文(USENIX Security '23) 链接:https://www.usenix.org/conference/usenixsecurity23/presentation/wu-mingshi 可信度:A,经过同行评审的学术研究 建议参考:理解 GFW 如何被动检测全加密流量(Shadowsocks、VMess 等)

资料:Great Firewall - Wikipedia 类型:百科全书 链接:https://en.wikipedia.org/wiki/Great_Firewall 可信度:B,综合多种来源

资料:GFW Report 类型:测量研究 链接:https://gfw.report/ 可信度:A,基于真实网络测量

资料:Exposing and Circumventing SNI-based QUIC Censorship of the Great Firewall 类型:顶会论文(USENIX Security '25) 可信度:A,最新的 GFW QUIC 审查研究

读者自检

读完本文后应能回答:

  • GFW 有哪几种主要的审查手段,分别如何工作
  • 被动检测和主动探测的根本区别
  • 为什么全加密流量(random-looking traffic)也会被检测
  • REALITY 如何针对性地应对每种审查手段
  • 审查机制的协同工作流程

下一步阅读