Lazy loaded image
技术分享
网络审查与反审查技术的十年对抗演进史分析
字数 4749阅读时长 12 分钟
2025-11-18
2025-11-22
type
Post
status
Published
date
Nov 18, 2025
slug
antigfw
summary
网络审查与反审查技术的十年对抗演进史分析
tags
思考
推荐
category
技术分享
icon
password
Description

一场没有硝烟的战争

本文深度剖析一场已持续十余年且仍在不断升级的技术“军备竞赛”。这场博弈的双方泾渭分明:一方是以GFW(防火长城)为代表,一个日益精密、复杂的国家级网络审查系统;另一方则是一个由全球开发者组成的、松散且去中心化的“反抗军联盟”,他们以代码为武器,致力于为信息的自由流通开辟道路。
在深入探讨之前,我们必须首先明确两个贯穿全文的核心概念:协议 (Protocol)内核 (Kernel)
  • 协议 (Protocol):可以将其想象成一种“秘密语言”。它精确定义了用户设备与远程服务器之间如何沟通、如何加密数据,从而让审查系统无法直接理解通信内容。我们后续将剖析的Shadowsocks、Vmess等,都是不同时代的“秘密语言”。
  • 内核 (Kernel):则是能够驱动这种“秘密语言”的软件“引擎”。作为协议的具体实现,内核负责处理所有的数据收发、加密解密工作。例如Xray和Sing-box就是极其强大的内核,它们甚至能同时驱动多种协议。
GFW的技术手段经历了从早期简单的IP封锁、DNS污染,到后来的深度包检测(DPI),再到近年来利用大数据和机器学习进行实时流量分析,专门识别和封锁那些“看起来不像正常上网”的加密流量。正是这种“步步紧逼”的压迫,催生了反审查技术的持续迭代与进化。本报告将系统性地梳理这场博弈中的关键技术、核心思想及其演变脉络。

1. 早期加密时代:Shadowsocks的诞生与“去中心化”求生

在Shadowsocks出现之前,以传统VPN为代表的工具存在一个核心痛点:一旦开启,所有网络流量都必须绕行国外服务器,导致访问国内网站的速度变得奇慢无比,用户体验极差。2012年,由中国程序员clowwindy开发的Shadowsocks项目,凭借其“智能分流”这一核心创新,彻底改变了当时的“游戏规则”。

核心创新与影响

从技术上看,Shadowsocks (SS) 本质上是一个基于SOCKS5协议的轻量级加密代理,其初衷非常纯粹:将流量加密,让早期的GFW看不懂即可。
然而,其真正的颠覆性创新在于首次完美结合了PAC文件(智能分流)。PAC文件扮演着一个智能交通调度员的角色:当用户访问国内网站时,流量被指挥直接连接,畅通无阻;而当访问国外网站时,流量才被引导至代理服务器。这一功能彻底解决了传统VPN的痛点,提供了前所未有的顺滑体验,使其迅速成为当时翻墙用户的标配,那个“小飞机”图标也成为了一个时代的符号。
notion image

“喝茶事件”与意外的永生

2015年8月,创始人clowwindy在项目主页上留言,表示自己被警方约谈,并被迫停止开发、删除所有代码。这便是著名的“喝茶事件”。这本应是Shadowsocks的终点,但出乎意料的是,项目的“死亡”反而成为了其“永生”的起点。
由于Shadowsocks的开源属性,其代码早已遍布全球开发者社区。当核心开发者被迫消失后,社区力量迅速接管了一切。无数开发者使用不同的编程语言对其进行复刻和改进,催生了大量分支。此事件无意中为整个生态系统建立了一个极具韧性的反脆弱模型:攻击核心人物只会加速技术的去中心化和迭代硬化,这是一个审查者在后续博弈中反复未能吸取的教训。

现状与历史注脚

时至今日,原生SS协议的流量特征早已能被GFW轻松识别和封锁。对于普通用户自行搭建的VPS节点,几乎在几秒钟内就会被检测并封杀。目前,它主要被用于“专线机场”等特定场景,因为专线流量不过GFW,所以不存在被识别的问题。
值得一提的是,在SS发展期间曾出现一个名为**ShadowsocksR (SSR)**的著名分支。它在原版基础上增加了协议混淆等功能,一度非常流行。但因其作者行事风格高调,与原版社区关系紧张,最终在遭受网络攻击后删库退场,成为了历史的注脚。
GFW向主动探测和统计学分析的战略转移,宣告了Shadowsocks纯粹密码学防御的过时,迫使社区从“隐藏消息”(加密)的战术,转向“隐藏信使”(伪装)的全新战略。

2. 伪装与混淆:应对深度包检测(DPI)的策略演进

随着GFW具备了流量分析和主动探测的能力,能够识别出Shadowsocks等协议的固有特征,反审查技术的核心思路发生了一次关键转变:从“让GFW看不懂”的加密混淆,演进为“让GFW分不清”的流量伪装
notion image

2.1 复杂性对抗:Vmess协议的崛起

Vmess协议正是为对抗GFW的流量识别而设计的。相比Shadowsocks,Vmess在协议结构和验证机制上都复杂得多。它引入了UID作为用户标识,并创造性地加入了时间戳验证机制,要求客户端与服务器的系统时间误差不能超过90秒。
这种复杂性在当时成为了其最好的防御手段,但它是一把双刃剑:它对GFW来说很复杂,对普通用户而言同样如此。用户想要搭建一个足够安全的Vmess节点,往往需要购买域名、配置CDN来隐藏真实IP,这一系列操作远比搭建SS繁琐。

2.2 完美拟态:Trojan协议的“隐身”哲学

如果说Vmess的思路是“我用复杂性让你看不懂”,那么Trojan的哲学则完全相反:“我和你一模一样,让你分不清”。
Trojan,意为特洛伊木马,其伪装目标是互联网上最常见、最无可挑剔的HTTPS流量。一个标准的Trojan服务器,本身就是一个功能完整的HTTPS网站服务器,监听在标准的443端口上。当GFW的主动探测系统访问它时,它会返回一个正常的网站页面,看起来天衣无缝。只有当一个“懂暗号”的客户端连接时,它才会摇身一变,成为代理服务。
这种设计使得GFW的主动探测技术彻底失效。因为探测器无法分辨目标到底是一个普通的网站,还是一个伪装起来的代理服务器。
Vmess与Trojan的成功,标志着伪装策略的胜利。但社区对更高效率、更强隐蔽性和更灵活架构的追求并未停止,这推动了下一代革命性技术的诞生。

3. 高级伪装与模块化:VLESS、XTLS与Reality的技术革命

为了解决TLS-in-TLS这种“套娃式”双重加密带来的性能损耗和流量特征问题——其内部TLS握手过程中固定的数据包大小会形成可被识别的统计学指纹——技术演进开始走向协议解耦与模块化设计,并催生了一系列引领潮流的革命性技术。

3.1 大道至简:VLESS协议的解耦设计

VLESS协议可以被理解为Vmess的“减法升级版”。其最核心的设计在于:将传输协议本身与加密层完全解耦。VLESS协议自身不带任何加密功能,只负责用户的身份验证和数据转发,并明确要求必须运行在TLS等可靠的加密信道之上。
这个设计的巧妙之处在于,协议本身变得极其轻量高效。更重要的是,这种模块化的设计允许开发者在其基础上灵活地插入各种更先进、更强大的加密和伪装技术,而无需改动VLESS协议本身,为后续XTLS和Reality等技术的诞生铺平了道路。
在此期间,开发者rprx为解决TLS-in-TLS的性能问题发明了XTLS技术。但由于与当时维护V2Ray的V2Fly社区在开源许可证等问题上存在分歧,XTLS未能合并到主线代码中。于是,rprx自立门户,创建了名为Xray的新内核。这次分裂虽然看似是社区的挫败,但最终却被证明是有益的。它创造了一种竞争动态:V2Fly专注于稳定性,而Xray则成为激进创新的试验场,极大地加速了整个军备竞赛的步伐。

3.2 终极伪装:Reality协议的颠覆性创新

如果说Trojan是扮演成一个自己的HTTPS网站,那么Reality技术就是直接借用一个你根本不拥有、但绝对可信的知名大网站(如微软、苹果官网)的身份。
notion image
其工作原理堪称神来之笔:用户的服务器会先真实地访问目标大网站,获取其真实的TLS握手信息。当GFW来探测时,服务器便把这个“货真价实”的、属于大网站的握手信息展示给GFW看,而真正的代理认证信息则被巧妙地隐藏在了后续通信中。
这项技术带来了颠覆性的改变:
  • 彻底摆脱了对域名和证书的依赖:用户不再需要购买域名或配置证书,极大地降低了成本和暴露风险。
  • 提高了GFW的封锁成本:GFW无法通过封锁域名或证书来打击,更不能轻易封锁那些国际知名公司的IP地址,否则会造成巨大的“附带伤害”。
这使得Reality成为了目前最强大、最坚固的伪装技术之一。

3.3 其他伪装思路的探索

  • ShadowTLS:它扮演着一个“护卫”的角色,同样借用真实网站的TLS握手来建立一条安全的外部通道,然后在这条通道的掩护下,让Shadowsocks等更高效的协议在内部悄悄传输数据。
  • NaiveProxy:它的思路更为极端,直接将谷歌浏览器的网络堆栈整个搬过来使用。这使得其流量指纹与一台真正的Chrome浏览器发出的流量在每一个比特上都完全一致。2022年基于统计学特征的“大清洗”事件,揭示了GFW审查策略从“黑名单”模式(寻找并封杀可疑流量)向“白名单”模式(识别并放行已知正常流量,将其余加密流视为可疑)的重大转变。NaiveProxy的成功证明,终极的伪装并非模仿,而是化身。
在TCP赛道追求极致隐蔽性的同时,另一条基于UDP、追求极致速度的平行进化路线也已悄然展开。

4. 平行进化:基于QUIC协议的速度与性能探索

在以TCP为基础、追求隐蔽性的技术主线之外,为了应对高延迟、高丢包等恶劣网络环境,并追求极致的传输速度,技术社区开辟了一条基于QUIC(一种基于UDP的传输协议)的平行进化路线。
notion image
协议
设计理念与特点
权衡与现状
Hysteria (歇斯底里)
暴力美学:为榨干每一滴带宽而暴力发包,甚至不惜主动丢弃一部分数据以换取核心数据的高速传输。在视频、游戏等场景下表现极为出色。
阿喀琉斯之踵:其暴力发包方式极易触发运营商的QoS策略,尤其在晚高峰时段,可能导致连接被限速甚至直接切断。
Tuic (退壳)
温和改良:可视为Hysteria的温和改良版,拥有更优秀的拥塞控制算法,发包方式没有那么暴力,因此在网络适应性和稳定性上表现更好。
其发展曾因作者不堪部分简中用户的无理要求和辱骂而停滞,后虽由社区重启,但反映了生态对核心开发者的依赖性。
Juicity
持续迭代:在Tuic项目的基础上进一步改进的协议,旨在实现更稳定的UDP传输和更好的兼容性,代表了该技术分支上持续不断的优化。
作为Tuic的迭代,技术上持续优化,但社区认知度和用户基础相对较小。
无论是追求隐蔽还是追求速度,强大的协议都需要高效的“引擎”来驱动。这自然地将我们的视线引向了下一章——代理内核的演进。

5. 引擎之心:代理内核的王朝更迭与大一统趋势

若将协议剖析为“语言”,内核便是驱动它们的“引擎”。内核作为协议的具体实现,其发展同样经历了从专一到通用、从分裂到统一的演进,标志着整个技术生态从专有实现向通用平台的范式转移。

5.1 V2Ray王朝的兴衰与分裂

  • V2Ray: 一个革命性的起点,它带来了Vmess协议,但后来原作者神秘失踪,项目一度陷入停滞。
  • V2Fly: 为延续V2Ray的生命,社区自发组织成立V2Fly,接管了维护工作,保证了项目的稳定和延续。
  • Xray: 正如前文所述,因XTLS技术的出现,Xray从V2Fly中分裂出来,专注于性能和前沿技术的探索,并迅速成为VLESS和Reality协议事实上的官方内核,引领了技术潮流。

5.2 大一统时代的来临:全能型内核的崛起

  • Sing-box (现代瑞士军刀) Sing-box是一个从零开始构建的全新内核,其目标就是成为一个通用的代理平台。如果说协议是“语言”,那么Sing-box就是一位精通多种语言的大师,一个能够流利驾驭几乎所有主流协议的“引擎”。其无与伦比的兼容性灵活性,让它可以用一套强大统一的路由规则进行管理。如果你喜欢折腾,追求极致的自定义,Sing-box绝对是你的不二之选。
notion image
  • Mِهomo (Clash帝国的继承者) 其前身Clash凭借直观的图形化界面和强大的分流规则风靡一时,可爱的“小猫咪”图标深入人心。然而在2023年11月,Clash内核及多个知名客户端的开发者在极短时间内相继删库归档,这被社区称为“Clash宇宙大崩塌事件”。
  • 在这片废墟之上,一个名为Clash.Meta的优秀分支项目存活下来,并为了规避风险更名为Mِهomo,成为了Clash事实上的继承者。Clash的崩塌也给社区带来一个深刻教训:一个生态系统如果过度依赖少数核心开发者,其根基是脆弱的,而活跃的分支项目是保证技术火种得以延续的关键。
内核从“一核一协议”走向“万物皆可驱动”的通用化平台,标志着整个技术生态的成熟。

6. 总结与展望:永不终结的博弈

回顾这场波澜壮阔的技术军备竞赛,我们可以清晰地看到一条宏观的演进路线。其中,三个核心发展趋势尤为突出:
  • 策略演进:从混淆到隐形 战略轨迹揭示了清晰的升级路径:从战术上的模糊(加密),到操作上的伪装(拟态),最终到战略上的误导(身份借用),持续地增加审查的政治与经济成本。
  • 路线分化:TCP与UDP的分裂 这种二元化反映了一个日趋成熟的生态系统,开始服务于不同的用户需求:一个分支优先保障访问的绝对必要性(基于TCP的隐蔽性),另一个分支则满足性能密集型应用的需求(基于UDP的速度)。
  • 内核趋势:走向大一统 底层的“引擎”从过去一个内核主要对应一种核心协议,走向了能够兼容并包、驱动万物的通用化平台,大大提升了灵活性和用户选择空间。
在这场漫长的对抗中,开源精神扮演了至关重要的角色。尽管开发者们面临着从被约谈到被迫删除心血之作的巨大个人风险,但开放、自由的开源精神让这个生态系统展现出了惊人的韧性。每当一种技术被识别、被封锁,总会有更强大、更聪明的技术浴火重生。
展望未来,这场竞赛还将继续。技术社区已在探索后量子密码学的可能性,而AI技术也可能在未来被攻防双方用于更智能的流量分析与伪装。但无论技术如何演变,背后那股对信息自由流动的渴望,将永远是驱动创新的不竭动力。