【科普向】盘点翻墙常见协议和内核

Nội dung video gốcMở rộng video
  • 本期视频探讨了翻墙技术的发展历程
  • 介绍了GFW和全球开发者的对抗
  • 讨论当前流行的翻墙协议与内核
  • 分析了各种技术的演进和现状
  • 强调了社区参与的重要性

朋友们好, 我是大特, 欢迎来到我的频道。今天我们要聊的不是某个单一的工具,而是一场持续了十多年并且还在不断升级的波澜壮阔的技术军备竞赛。竞赛的一方是大家熟知的GFW——防火长城,一个日益精密复杂的审查系统。另一方则是一个由全球开发者组成的去中心化的反抗军联盟,他们用代码作为武器,为信息的自由流通开辟道路。这就是翻墙技术的发展史。

在开始盘点之前,我们必须先弄清楚两个核心概念——协议和内核。

协议(protocol)你可以把它想象成一种秘密语言,它定义了你的设备和远端服务器之间如何沟通、如何加密数据,从而让GFW听不懂、看不透。比如我们后面会聊到的Shadowsocks、VMS和WLS都是不同的语言。

内核(core),内核就是能说这种秘密语言的引擎或软件。它是协议的具体实现,负责处理所有的数据收发和加密解密。比如cherry和Synbox就是非常强大的内核,它们甚至能同时说好几种语言。

搞清楚这两者的关系至关重要,因为现代翻墙工具的演进就是围绕着这两个层面展开的。GFW的手段也在不断进化,从最初简单的IP封锁、DNS污染,发展到后来的深度包检测DPI,乃至近年来利用大数据和机器学习进行实时流量分析,专门识别和封锁那些看起来不像正常上网的加密流量。正是这种步步紧逼,才催生出了我们今天将要盘点的这些五花八门、越来越狡猾的协议和内核。

一代传奇Shadowsocks,我们的故事要从201年开始。那一年,一位网名为Cloudwindie的中国程序员发布了一个名为Shadowsocks的项目,从此彻底改变了翻墙领域的游戏规则。从技术上讲,Shadowsocks的本质是一个轻量级的基于SOCKS5协议的加密代理,它的初衷很简单,把流量加密,让早期的GFW看不懂内容就行。

但Shadowsocks真正的颠覆性创新在于它首次完美结合了PAC文件。这东西有什么用呢?它就像一个智能的交通调度员。当你访问国内网站时,它会指挥你的流量直接连接畅通无阻;而当你访问国外网站时,它才把流量引导到代理服务器上。这个功能就是所谓的智能分流。

在它出现之前,传统的VPN一旦开启,所有流量都必须挤到国外的服务器,绕一圈访问国内网站就会变得奇慢无比、体验极差。而Shadowsocks解决了这个核心痛点,提供了前所未有的顺滑体验。正因如此,它迅速取代了传统VPN的地位。那个印有小飞机图标的客户端几乎成了当时翻墙用户的标配。

然而好景不长。2015年8月2日,ClareWindy在Github上留下了这样一段话:“两天前,警察找到了我,希望我停止开发这个项目。今天,他们让我删掉Github上的所有代码,我别无选择,只能服从。”这就是著名的“喝茶”事件,开发者被迫停止更新并删除了整个项目代码库。

这本应是Shadowsocks的终点,但谁也没想到,这反而成了它永生的起点。因为Shadowsocks是开源的,代码早已传遍了整个开发者社区。当Cloudwindy这个主脑被迫消失后,社区的力量迅速接管了一切。开发者们用各种不同的编程语言复刻和改进它,催生了无数个版本和分支。当局试图通过打击核心开发者来扼杀一个项目,结果却无意中促成了它的去中心化,使其演变成了一个打不死的九头蛇。

这种现象在此后的十几年的对抗中反复上演。Shadowsocks的现状如何呢?GFW早就能轻松针对Shadowsocks的特征进行识别和封锁。虽然社区有通过各种插件试图对抗识别,但效果有限。现在如果你用普通VPS搭建Shadowsocks节点,基本上几秒钟就会被检测到并封杀。目前只有专线机场还在使用Shadowsocks,因为专线不过GFW,所以不存在被识别的问题。对于普通用户来说,Shadowsocks已经基本退出历史舞台。

备受争议的ShadowsocksR,在SS发展期间还出现过一个名为ShadowsocksR(简称SSR)的著名分支。它在原版SS的基础上增加了协议混淆和加密方式,号称更安全、更难被识别。一时间火爆程度甚至不输原版,但SSR的作者形式风格非常高调,与原版SS社区关系紧张,引发了大量争议。最终在遭受了人肉搜索和网络攻击后,其作者一怒之下删除了项目,退出了这个圈子。如今SSR已经基本退出了历史舞台,成为了一个时代的眼泪。

为强而生VMS,随着GFW的升级,它开始具备了流量分析和主动探测的能力,能够识别出Shadowsocks流量的固有特征。为了应对这种情况,新一代的协议应运而生,它们的核心思想就是伪装。当年SS被大规模封锁后,一个名为V2ray的项目带着它的核心协议VMASS一军突起,可以说,VMS就是为了对抗GFW的流量识别而设计的。

相比SS,VMS在协议结构、验证机制上都复杂得多。它引入了UUID作为用户标识,并且创造性地加入了时间戳验证机制,要求客户端和服务器的系统时间误差不能超过90秒。这种复杂性在当时就是它最好的防御。但是这种安全性的提升也带来了使用门槛的急剧增高。用户想要搭建一个足够安全的VMS节点,往往需要购买域名、配置CDN来隐藏真实IP。这一系列操作远比当年搭建SS要繁琐,它对GFW来说很复杂,对普通用户来说同样很复杂。

完美的模仿者Trojan,如果说VMS的思路是“我很复杂让你看不懂”,那么Trojan的哲学则完全相反,它的思路是“我和你一模一样让你分不清”。Trojan意为特洛伊木马,它的伪装目标是互联网上最常见、最无可挑剔的流量——https。

一个标准的Trojan服务器本身就是一个功能完整的https网站服务器,它在标准的43端口上监听并处理真实的TLS握手。当GFW的主动探测系统访问它时,它会返回一个正常的网站页面,看起来天衣无缝。只有当一个懂暗号的客户端连接时,它才会摇身一变,成为代理服务器。这种设计让GFW的主动探测彻底失效,因为探测器无法分辨这到底是一个普通的网站,还是一个伪装起来的代理服务器。

大到质检,VLESS,在VMESS之后,社区的开发者们推出了VLESS协议。你可以把它理解为VMESS的简法升级版。VLESS最核心的设计在于,它将传输协议本身与加密层完全结合。VLESS协议本身只负责用户的身份验证和数据转发,它自己不带任何加密功能。开发者明确要求你必须把它跑在一个可靠的加密信道上,比如TLS。

这个设计为什么巧妙?因为它让协议本身变得极其清亮高效。更重要的是,这种模块化的设计允许开发者在它的基础上灵活地插入各种更先进、更强大的加密和伪装技术,而无需改动VLS协议本身。正是这个决定,为后来XTLS和Reality等一系列革命性技术的诞生铺平了道路。

这里插入一段V2Fly分裂与插睿诞生的故事。故事要从一个技术难题说起,就是TLS in TLS。当你用VMAS这类协议跑在TLS加密通道里时,实际上是在对已经加密过的数据再进行一次加密。这种套娃式的双重加密不仅会产生独特的流量特征,还会带来巨大的性能损耗。为了解决这个问题,当时还在V2fly社区的一位牛逼开发者RPX发明了一项名为XTLS的技术。然而由于和社区在开源许可证等问题上存在分歧,XTLS最终没能合并到v2fly的主线代码中。

于是RPX干脆自立门户,基于v2fly core的代码创建了一个新的分支,并将其命名为XrayCore。这个全新的内核就是围绕着VLS协议和XTLS技术构建的。这次分裂成为了翻墙技术发展史上的一个重要转折点,Xray社区迅速成为整个生态圈的创新引擎。

一个终极伪装术Reality,如果说Trojan是扮演成一个自己的https网站,那么Reality技术就是直接借用一个你根本不拥有但绝对可信的知名大网站的身份,比如微软或苹果的官网。它的工作原理堪称神来之笔。你的Xray服务器会先去真实的访问一下目标大网站,获取到它真实的TLS握手信息。然后当GFW来探测你的服务器时,Xray就把这个货真价实的属于大网站的握手信息展示给GFW看,而真正的代理认证信息则被巧妙的隐藏在了后续的通信中。

这项技术带来了颠覆性的改变,过去无论是Wemax加TLS还是Trojan,你都必须购买一个域名、申请和配置证书,这不仅花钱,还会在互联网上留下痕迹。而Reality彻底摆脱了这两样东西,你的服务器IP不会出现在任何证书里,你也不再需要域名。GFW看到的只是你的服务器在和苹果、微软这些巨头公司通信。这意味着什么?这意味着GFW无法通过封锁域名或证书来打击你,更重要的是它不能轻易地封锁那些国际知名公司的IP地址,否则会对其自身的经济和网络环境造成巨大的附带伤害。这使得Reality成为了目前最强大、最坚固的伪装技术之一。

忠诚护卫ShadowTLS,ShadowTLS提供了另一种有趣的伪装思路。它不像Reality那样自己处理代理,而是扮演一个护卫的角色。它同样会借用一个真实可信网站的TLS握手来建立一条安全的外部通道。然后在这条安全通道的掩护下,让另一个更简单、更高效的协议,比如Shadowsocks在里面悄悄传输数据。Trojan是自己称为https网站,而ShadowTLS则是拉来一个知名网站当挡箭牌,保护着身后的真正代理协议,这种模块化的设计是它的核心优势。

完美模仿者NaiveProxy,NaiveProxy的思路则更为极端和彻底。它不去模拟浏览器的流量,而是直接把谷歌Chrome浏览器的网络堆栈整个搬了过来。这让它成为了20年那场大清洗中的幸存者。在201年底到20年间,GFW部署了一套全新的实时被动流量检测系统。这套系统不再关心流量加密的内容,而是通过分析流量的统计学特征,比如数据包的大小、长度等来识别不像浏览器的加密流量。

当时许多协议都因此大规模失效,而NaiveProxy因为它的流量指纹和一台真正的Chrome浏览器发出的流量在每一个比特上都完全一致,所以完美地通过了审查,几乎毫发无损。这次事件也揭示了GFW审查策略的一个重大转变,从过去的黑名单模式,即寻找并封杀可疑流量,转向了白名单模式,即识别出已知的正常流量并放行,而将其余所有未知加密流量都视为可疑。

前沿探索AnyTLS,AnyTLS是一个非常新的协议,它致力于解决一个更深层次、更棘手的问题,就是TLS in TLS指纹。当一个TLS连接被包裹在另一个TLS连接中时,其内部的TLS握手过程仍然可能因为固定的数据包大小和时序而暴露特征。AnyTLS的创新之处在于引入了灵活的分包和填充策略,它通过随机化数据包的大小和发送模式来打破这种固有的规律,让流量行为变得更像一团无序的噪音,从而对抗更高级的指纹识别技术。

暴力美学Hysteria,前面我们聊的所有协议几乎都构建在TCP这个稳定可靠的传输协议之上,但还有另一条进化路线,它们选择了更年轻、更狂野的Quack协议。Hysteria中文名“歇斯底里”,是基于谷歌Quack协议魔改而来的,天生就走UDP通道。它的设计理念突出“忙”字,为了在丢包、高延迟等恶劣网络环境下榨干每一滴带宽,它会非常暴力地发包,甚至不惜主动丢弃一部分数据以换取核心数据的超高传输速度。这使得它在观看视频、玩游戏等场景下表现极为出色,能让一些线路质量很差的垃圾VPS也焕发青春。

但它的阿卡利斯之种也正在于此,这种暴力的UDP发包方式很容易触发国内外网络运营商的QoS策略,尤其是在晚上用网高峰期,运营商可能会对你的连接进行限速,甚至直接切断。所以如果你用“歇斯底里”时发现节点突然断流,别慌,不一定是GFW干的,很可能是被运营商教育了。

温柔的猛兽退可,你可以把“退可”理解为“歇斯底里的温和改良版”。它同样基于Quack,追求高性能,但拥有更优秀的拥塞控制算法,发包方式没有“歇斯底里”那么暴力,因此在网络适应性和稳定性上可能表现更好。退可的故事也颇具戏剧性,最初作者因为不堪部分减重用户的无理要求和谩骂而停止了项目,但在社区的呼声和支持下,项目最终以一种更加开放和社区化的治理模式重启。这个故事也反映了开源社区的脆弱与坚韧,一个伟大的项目可能因为开发者个人的精力耗尽而停滞,但也可能因为社区的力量而获得新生。

佛系前行Jocity,Jocity则是在Twick项目的基础上进一步改进的协议,其目标是实现更稳定的UDP传输和更好的兼容性。它代表了这个技术分支上持续不断的迭代和优化,虽然它一直不温不火,鲜有人知。

引擎之心代理内核的演进之路讲完了语言,我们再来看看驱动这些语言的引擎——翻墙软件的内核。翻墙王朝的更迭,从V2ray到V2fly再到Xray。V2ray这一切的起点,它带来了革命性的VMAS协议。但后来原作者神秘失踪,项目一度陷入停滞。

V2fly为了延续V2ray的生命,社区自发组织成立了V2fly,接管了V2ray Core的维护工作,保证了项目的稳定和延续。Xray正如我们前面提到的,因为XTLS的出现,Xray从V2Fly中分裂出来,专注于性能和前沿技术的探索,并迅速成为VLS和Reality协议事实上的官方内核,引领了整个技术潮流。

大一统时代,全能型内核的崛起Thinbox,现代的瑞士军刀Thinbox是一个从零开始构建的全新内核,它的目标就是成为一个通用代理平台。它最大的特点就是无与伦比的兼容性和灵活性,几乎支持我们上面提到的所有主流协议,无论是VLESS、歇斯底里,还是ShadowTLS,它都能轻松驾驭并用一套强大统一的路由规则进行管理。如果你喜欢折腾,追求极致的自定义,Synbox绝对是你的不二之选。

MihomoClash帝国的继承者,要说Mihomo就必须先聊聊它的前身Clash。在过去几年里,Clash凭借其直观的图形化客户端和强大的分流规则,风靡大江南北,无论是普通用户还是提供服务的机场都对它青睐有加。那只可爱的小猫咪图标,其知名度完全不输当年的SS小飞机。然而在203年1月,一场风暴席卷了整个Clash生态。先是CFW的作者删除了项目,随后引发了可怕的连锁反应。Clash内核的原作者以及其他多个知名客户端的开发者都在极短的时间内相继删库、归档、跑路。

这场被社区称为“Clash宇宙大崩塌”的事件,让无数用户和机场服务商措手不及。在这片废墟之上,一个名为ClashMeta的优秀分支项目存活了下来。为了规避风险与原项目进行切割,它最终更名为Mihomo。如今Mihomo已经成为Clash事实上的继任者,它继承了Clash的核心功能和庞大的用户群体,并继续向前发展。

Clash的崩塌事件也给了我们一个深刻的教训:一个生态系统哪怕是开源的,如果过度依赖少数几个核心开发者,其根基是相当脆弱的。当这些关键节点受到压力时,整个生态都可能在一夜之间倾覆。而正是像ClashMeta这样早已存在的活跃的分支项目,才保证了技术的火种得以延续。

以上四个是当下最热门的内核,当然还有歇斯底里、TUIC等专用内核,只支持自家协议,不像Thinkbox和Mihomo那么全能通用。上面这些就是目前翻墙界的主要协议和内核了。至于现在该选择哪种协议和内核,我想每个协议内核都有各自的受众,他们才会依然保持活力,意义生辉。我个人目前仅使用两种协议,分别是VLESS加Reality和歇斯底里2,而内核则偏爱使用Thinbox,都是个人喜好,仅供参考。

好了,盘点到这里,相信大家对翻墙技术的眼镜已经有了一个清晰的脉络。我们回顾一下这条波澜壮阔的军备竞赛路线,从混淆到隐形技术的核心思路,从最早只想把流量加密让GFW看不懂,进化到了完美的模仿正常流量,甚至是直接借用合法身份让自己在海量数据中彻底隐形。

TCP与UDP的分裂,在追求隐蔽性的主线之外开辟出了一条以Quake UDP为基础,追求极致速度的平行进化路线。内核的大一统,底层引擎从过去一个内核对应一个核心协议,走向了能够兼容并包驱动万物的通用化平台。

在这场漫长的对抗中,我们看到的是,尽管开发者们面临着从被喝茶到被迫删除新血之作的巨大个人风险,但开放自由的开源精神,让这个生态系统展现出了惊人的韧性。每当一种技术被识别、被封锁,总会有更强大、更聪明的技术浴火重生。

展望未来,这场竞赛还将继续。我们已经看到Xray社区在探索后量子密码学的可能性,也许未来AI也会被双方用于更智能的流量分析和伪装。但无论技术如何演变,背后那股对信息自由流动的渴望,将永远是驱动创新的不解动力。

今天的视频就到这里。如果你觉得内容对你有帮助,别忘了点赞、关注、转发。我是一名新人YouTube博主,你们的支持是我更新的最大动力。我们下期再见。