自从天朝有了言论管制,科学上网的话题就一直存在,于是大量的梯子软件应运而生。但是GFW与这些梯子软件的斗争从来都没有停止过,一直是此消彼长,墙越来越高,科学上网技术也是持续突破,不断涌现出新技术、新工具。现在最主流的科学上网技术有VPN/SS/SSR/V2Ray/Trojan/Trojan-Go,还有小众的 WireGuard、Brook、Snell 和 NaiveProxy 等,本篇文章不讨论Brook、NaiveProxy以及Snell协议。SS是科学上网代理协议的鼻祖,Snell和Brook是小众协议,Snell协议一直没有开源,是iOS平台非常知名的Surge软件团队开发的专属协议,Brook配套设施不完善;其中,VPN/SS/SSR最为出名,V2Ray和Trojan/Trojan-Go作为新星,正在受到越来越多的关注和使用。
本文目录
1、什么是VPN和WireGuard,它们有什么关系?
VPN是英文 Virtual Private Network 的缩写,中文名称为虚拟专用网络,是一种加密通信技术。VPN 只是一个统称,它有很多的具体实现,比如PPTP、L2TP、IPSec和OpenVPN等。VPN是在公用网络上建立专用网络,并对通信进行加密,防止传输数据被识别或篡改,以保障通信的安全。当你在VPN网络中通信,就相当于通过物理的内网专线进行通信。由此可见,VPN绝不是为了科学上网而生,而是更加注重数据信息的安全,很多大型企业和高校的远程SOHO办公使用VPN较多。
WireGuard 是最新开发的VPN协议,比主流的VPN技术有明显优势,被誉为下一代VPN。WireGuard有如下特点:
WireGuard 的优点:
- 更轻便:以Linux内核模块的形式运行,资源占用小。
- 更高效:相比目前主流的IPSec、OpenVPN等VPN协议,WireGuard的效率要更高。
- 更快速:比目前主流的VPN协议,连接速度要更快。
- 更安全:使用了更先进的加密技术。
- 更易搭建:部署难度相对更低。
- 更隐蔽:以UDP协议进行数据传输,比TCP协议更低调。
- 不易被封锁:TCP阻断对WireGuard无效,IP被墙的情况下仍然可用。
- 更省电:不使用时不进行数据传输,移动端更省电。
WireGuard 的不足:
- 处于研发初期,各种功能及支持有待完善。
- 由于使用UDP协议,BBR、锐速等TCP网络加速工具,对WireGuard无效。
- 部分运营商可能会对UDP协议进行QOS限速,WireGuard会受到一定影响。
- 客户端分流功能较弱,对GFWList的支持不足。
WireGuard虽然有一些不足,但WireGuard的优点更突出,而且可以拯救被封IP的VPS,所以 WireGuard 是 SS/SSR/V2Ray/Trojan 等代理工具之外的一个不错的选择。
2、什么是 Shadowsocks/SS?
SS 是 Shadowsocks 的缩写,中文名为影梭,为了避免关键词过滤,网友喜欢将 Shadowsocks 称为“酸酸”,是一种基于Socks5代理方式的加密传输协议,也可以指实现这个协议的各种开发包。Shadowsocks 由 Clowwindy 为了自己使用谷歌查资料而编写,Shadowsocks分为服务器端和客户端,在使用之前,需要先将服务器端程序部署到服务器上面,然后通过客户端连接并创建本地代理。后来,他觉得这个东西非常好用、速度也很快,于是他在 GitHub 上共享了源码。在天朝,本工具被广泛用于突破GFW,以浏览被封锁、遮蔽或干扰的内容,由于 Shadowsocks 被广泛传播,导致作者被请去喝茶。2015年8月22日,Shadowsocks 原作者 Clowwindy 称迫于天朝内部的压力,宣布停止维护此计划(项目),并移除其个人页面所存储的源代码,而且保证永不再参与维护更新。值得庆幸地是,Shadowsocks 仍然有不少国外社区成员在维护更新。后来贡献者Librehat也为Shadowsocks补上了一些数据混淆类特性,甚至增加了类似Tor的可插拔传输层功能。
3、什么是 ShadowsocksR/SSR?
SSR 是 ShadowsocksR 的缩写,网民爱称“酸酸乳”,是在 Shadowsocks 的作者被请去喝茶之后,网名为breakwa11的用户发起的Shadowsocks的一个分支版本,它在Shadowsocks的基础上增加了一些数据混淆方式,修复了部分安全问题并提高QoS优先级。由于 ShadowsocksR 在协议和混淆方面做了改进,更加不容易被GFW检测到,而且兼容原 Shadowsocks,并为新项目取名叫 Shadowsocks-R,一开始部分代码由社区人员进行更新。由于不完全开源,也导致后来使用 SS 和 SSR 的用户分成两个阵营,互相撕逼,直到开发者 Breakwa11(破娃) 被人肉出来。Breakwa11(破娃)最终决定删除 Shadowsocks-R 项目的所有代码,并解散了所有相关群组。
事件始末澄清:ShadowsocksR 的作者一开始曾有过违反GPL,在发布二进制文件时不开放源码的争议。不过后来 Shadowsocks-R 项目由 breakwa11 采用了与 Shadowsocks 相同的GPL、Apache许可证、MIT许可证等多重自由软件许可协议。
2017年7月19日,ShadowsocksR 作者 breakwa11 在Telegram频道 ShadowsocksR news 里转发了深圳市启用SS协议检测的消息并被大量用户转发,在TG圈引发恐慌。7月24日,breakwa11 发布了闭源的SS被动检测程序,引发争议。7月27日,breakwa11 遭到自称 “ESU.TV” 的不明身份人士人身攻击,对方宣称如果不停止开发并阻止用户讨论此事件将发布更多包含个人隐私的资料,随后 breakwa11 表示遭到对方人肉搜索并公开个人资料的是无关人士。为了防止对方继续伤害无关人士,breakwa11 将删除GitHub上的所有代码、解散相关交流群组,并停止 ShadowsocksR 项目。
从本质上说,Shadowsocks 和 ShadowsocksR 的基本原理相同,都是基于 socks5 的代理工具,只在本地客户端和服务器端对数据包加解密,然后使用 socks5 协议转发加密的数据包,而不用在乎使用什么协议,所以 Socks5 代理比其他应用层代理速度要快得多。
【科普】什么是 socks5 代理?
socks5 代理的原理是把你的网络数据请求先发送到你的代理服务器,然后由代理服务器转发给目标;如果目标有反馈发送到代理服务器,那么代理服务器会将数据包直接传回你的本地网络,整个过程只是数据的二次传输,并没有做额外的处理。比如,现在你在深圳,你的代理服务器在日本,如果你想要访问Google,那么你首先要把数据请求通过本地 socks5 代理客户端发给你在香港的服务器上的 socks5 代理服务端,然后你在香港的服务器将数据请求发送给Google,再把Google反馈的结果传回你的本地电脑的 socks5 客户端,这样就可以绕开GFW的检测而实现科学上网。
显而易见,socks5代理的所有数据走的仍然是公网,而且在公网传输过程中,没有对数据进行任何加密和混淆,这跟VPN在公网建立虚拟专用通道传输过程中,对数据高强度加密的方式完全不同。Shadowsocks 和 ShadowsocksR 只在客户端和服务器端对数据做了简单加密和认证,主要功能是流量转发,过墙才是主要目的。虽然现在 ShadowsocksR 已经停止更新很久了,而 Shadowsocks 仍处于社区人员的更新维护之中,不断修复漏洞并增加新功能,所以现在 Shadowsocks 比 ShadowsocksR 更强大。
我在此提醒大家:请不要迷信 SSR 一定比 SS 强,也包括现在的V2Ray、Trojan,甚至WireGuard等,因为增加混淆意味着损失速度,混淆加密越是强悍,那么其速度和稳定性损失就越大,另外 SSR 至今已经被研究透了,而且长期没有更新维护,其流量特征是可以被GFW精准识别的,所以用 SSR 跟用 SS 没有本质区别,由于SS一直在更新维护,反而更稳定。我们要做的就是爱国爱家爱生活,勿谈国是,专心做好自己的事情就是了。天朝一直都清楚,跨境相关业务一直存在,尤其是近些年跨境电商的蓬勃发展,很多做跨境相关业务的朋友不外出通讯是不可能的一件事情,但所谓的公司备案VPN却非常昂贵,一般用户根本承担不起费用。但我们一定要“做好分内事,勿论他人非”,尤其不发表涉及天朝的言论和行为,做一个天朝的好公民、中华的好儿女,这样天朝是没有必要跟她的好儿女过不去的。
4、什么是 V2Ray?
V2Ray 是在Shadowsocks 被封杀之后,为了表示抗议而开发的,属于后起之秀,功能更加强大,为抗GFW封锁而生。V2Ray 现在已经是 Project V 项目的核心工具,而 Project V 是一个平台,其中也包括支持 Shadowsocks 协议。由于 V2Ray 早于 Project V 项目,而且名声更大,所以我们习惯称 Project V 项目为 V2Ray,所以我们平时所说的 V2Ray 其实就是 Project V 这个平台,也就是一个工具集。其中,只有 VMess协议是V2Ray社区原创的专属加密通讯协议,被广泛应用于梯子软件。
V2Ray目前支持以下协议:
- Blackhole:中文名称“黑洞”,是一个出站数据协议,它会阻碍所有数据的出站,配合路由(Routing)一起使用,可以达到禁止访问某些网站的效果。
- Dokodemo-door:中文名称“任意门”,是一个入站数据协议,它可以监听一个本地端口,并把所有进入此端口的数据发送至指定服务器的一个端口,从而达到端口映射的效果。
- Freedom:是一个出站协议,可以用来向任意网络发送(正常的) TCP 或 UDP 数据。
- HTTP:超文本传输协议,是传统的代理协议
- MTProto:Telegram 的开发团队开发的专用协议,是一个 Telegram 专用的代理协议。在 V2Ray 中可使用一组入站出站代理来完成 Telegram 数据的代理任务。目前只支持转发到 Telegram 的 IPv4 地址。
- Shadowsocks:最早被个人开发的科学上网梯子协议,但 V2Ray 目前不支持 ShadowsocksR。
- Socks:标准 Socks 协议实现,兼容 Socks 4、Socks 4a 和 Socks 5,也是传统的代理协议。
- VMess:是V2Ray 专用的加密传输协议,它分为入站和出站两部分,通常作为 V2Ray 客户端和服务器之间的桥梁。因为增加了混淆和加密,据说比 Shadowsocks 更安全。现在的机场支持 V2Ray,一般是指支持 VMess 协议。VMess 依赖于系统时间,请确保使用 V2Ray 的系统 UTC 时间误差在 90 秒之内,时区无关。在 Linux 系统中可以安装ntp服务来自动同步系统时间。
- VLESS:是一种无状态的轻量级数据传输协议,被定义为下一代V2ray数据传输协议。作者对该协议的愿景是“可扩展性空前,适合随意组合、全场景广泛使用,符合很多人的设想、几乎所有人的需求,足以成为 v2ray 的下一代主要协议,乃至整个 XX 界的终极协议。”,由此可见VLESS协议的强大。
V2Ray 可选的传输层配置有:TCP、mKCP、WebSocket、HTTP/2、DomainSocket、QUIC。其中,mKCP、QUIC和TCP用于优化网络质量;WebSocket用于伪装;HTTP/2和DomainSocket用于传输以及TLS加密。
V2Ray不仅可以在传输层配置 TLS 使 HTTP 和 SOCKS 变成 HTTPS 和 SOCKS over TLS 协议,也可以使MTProto、Shadowsocks 和 VMess 通过传输层配置TLS加密伪装成 TLS 流量。所以,VMess 配置 TLS 加密是最常见的做法,但没人会对 Shadowsocks 使用 TLS 加密,因为这完全没意义。
5、什么是 Trojan/Trojan-Go?
Trojan,原来多是指特洛伊木马,是一种计算机病毒程序。但是,我们今天所说的Trojan是一种新的科学上网技术,全称为Trojan-GFW,是目前最成功的科学上网伪装技术之一。你可以认为Trojan是V2Ray的“WS+TLS”模式的精简版,速度比V2Ray更快,伪装比V2Ray更逼真,更难以被GFW识别。
Trojan工作原理:Trojan通过监听443端口,模仿互联网上最常见的 HTTPS 协议,把合法的Trojan代理数据伪装成正常的 HTTPS 通信,并真正地完整完成的TLS 握手,以诱骗GFW认为它就是 HTTPS,从而不被识别。Trojan处理来自外界的 HTTPS 请求,如果是合法的,那么为该请求提供服务,否则将该流量转交给Caddy、Nginx等 web 服务器,由 Caddy、Nginx 等为其提供网页访问服务。基于整个交互过程,这样能让你的VPS更像一个正常的web服务器,因为Trojan的所有行为均与 Caddy、Nginx等 web 服务器一致,并没有引入额外特征,从而达到难以识别的效果。
Trojan-Go是Trojan-GFW的分支项目,对Trojan进行性能优化,并增加不少新功能,Trojan-Go性能和功能均有大幅度的提升,而且支持分流和CDN。
6、什么是Xray/XTLS?
Xray与V2Ray完全类同,Xray 是 Project X 项目的核心模块。因为Xray和XTLS黑科技的作者rprx曾经是V2fly社区的重要成员,所以Xray直接Fork全部V2Ray的功能,然后进行性能优化,并增加了新功能,使Xray在功能上成为了V2Ray的超集,且完全兼容V2Ray。
简而言之,Xray是V2Ray的项目分支,Xray是V2Ray的超集,就跟Trojan-Go和Trojan-GFW的关系类似,而且Xray性能更好、速度更快,更新迭代也更频繁。由于自V2ray-core 4.33.0 版本起,删除了XTLS黑科技,但仍然支持VLESS,所以是否原生支持XTLS是Xray和V2Ray最大的区别之一。
7、什么是Brook/NaiveProxy/Snell协议?
Brook是一款跨平台的强加密且难以被检测的科学上网代理工具,功能非常强大,它的目标是保持简单易用、傻瓜化操作,且不被检测。Brook 比 Shadowsocks/SS 部署更简单,而且实现了零配置。txthinking大神一直在维护更新,Brook虽然诞生比较早,但一直比较低调小众,也拥有全平台的客户端,类似于我们经常使用的Shadowsocks/ShadowsocksR等代理工具。另外,Brook转发功能也很强大,也是一款出色的转发中继工具,现在被较多地应用于流量转发。
NaiveProxy,挪威语叫NaïveProxy,翻译成中文:“天真的代理”,是2019年底由klzgrad大神开发的一种突破GFW网络审查的新型科学上网代理技术,它使用Chrome的网络堆栈来伪装流量,具有较强的抗审查能力和较低的可检测性,重用Chrome网络堆栈是确保性能和安全性的最佳实践。
Snell是由 Yachen Liu 大佬带领的 Surge Network 团队于2019年初开发的全新科学上网代理协议,但现在Snell协议并没有开源,官方只提供了编译过的独立二进制文件,不依赖其它组件。Snell 2.0 协议已经更新到正式版,可以部署在Linux/FreeBSD/MacOS系统上,而且目前 Surge for Mac、Surge for iOS 均已支持 Snell v2.0 协议。
8、VPN、SS/SSR、V2Ray/Xray 和 Trojan/Trojan-Go 之间有什么区别及优缺点
(1)原理不同
VPN强调对公网传输过程中数据的加解密,SS/SSR/V2Ray/Xray/Trojan都是专注于在客户端和服务器端加解密,公网传输数据过程中特征没有VPN明显。
(2)目的不同
VPN是走在公网中自建的虚拟专用通道,使用强大的加解密算法,为数据传输安全性、私密性而生,被广泛应用于企业、高校、科研部门等远程数据传输的领域;SS/SSR/V2Ray/Xray/Trojan/Trojan-Go是为了数据能够安全通过GFW而生,更强调的是对数据的混淆和伪装,加解密只是为了更好的隐藏数据特征而顺利绕过GFW的检测,数据内容加密可以有效绕过关键词的检测。
在天朝,如果你想用VPN翻墙几乎是不可能的,在平时不怎么限制还好,特殊时期VPN是断流最惨的。如果要需要匿名安全上网,VPN+TOR或SS/SSR+TOR也是不错的选择。当然,现在已经有了新的对抗技术,比如V2Ray/Xray、Trojan/Trojan-Go、WireGuard等。另外,有一些比较著名的工具,如红杏出墙、蓝灯(Lantern)、Tor Browser、赛风3(Psiphon3)等,都相继被墙,现在已经很少人使用了。
9、项目诞生的大致时间顺序
VPN > SS > SSR/V2Ray/WireGuard > Trojan/Trojan-Go > Xray
10、对梯子软件/科学上网工具的总结
- VPN虽然天生不是为了做梯子,但却是最出名的梯子软件、众人皆知的科学上网工具,但是由于VPN特征太明显,现在非大陆正规公司的VPN基本被禁的差不多了;
- SS/SSR为科学上网而生,但是加密和混淆较弱,而且已经被GFW精准识别,在科学上网方面的前景堪忧,但是仍然适用于专线,网络速度比V2Ray/Trojan/Trojan-Go更快;
- V2Ray/Xray为科学上网而生,天生不凡,已经成长为一个平台框架,拥有自研协议VMess和VLESS,功能非常强大;
- WireGuard被誉为新一代VPN,技术强大,而且已经被写入Linux内核,前景光明,但是在科学上网方面并不够隐蔽,所以不是未来主流的科学上网工具;
- Trojan/Trojan-Go为科学上网而生,天生只为了模仿互联网最流行的HTTPS协议而存在,是目前最成功的伪装工具之一,功能与V2Ray的“Vmess+WS+TLS”模式相当,但是更轻量,伪装更逼真,目前GFW几乎无法识别其特征,而且目前Trojan-Go在性能和速度方面的表现均优于V2Ray的VMess和VLESS协议;
- Xray是V2Ray的超集,新一代科学上网协议,使用XTLS黑科技,速度表现更出色。
所以,一灯不是和尚认为Trojan/Trojan-Go/Xray会跟V2Ray一样成为将来科学上网的主流工具之一,SSR由于长期得不到维护而逐渐退出历史舞台,Shadowsocks/SS依然是最轻量的科学上网代理协议,没有之一,将逐渐成为IPLC/IEPL专线必备协议之一,是跨境国际网络游戏加速器的不二之选。
本文由一灯不是和尚于2022年5月5日更新;如果您有什么意见或建议,请在文章下面评论区留言反馈。
文采不错,技术原理的部分讲的非常到位,感谢大佬!终于明白了这些工具之间的区别。
谢谢你!在此又看到了“BCSX”的身影!!!
不,不,我不是。我虽有梦想,但更现实,不会做域外势力抹黑祖国的工具。爱国守礼是我一直遵守并坚持的准则,有国才有家,绝不做一个单纯的理想主义者。
大佬我想问一下,如果用来加速外服游戏,追求低延迟的话用ss吗
用商用专线就行了,推荐使用Socks5/SS/SSR协议的代理。
一灯大佬,就是普通人我追求速度,用ss协议就可以吗?还是xray更快?嘿嘿
SS协议相对更快一些,因为SS协议比较轻量,但是个人搭建不推荐SS协议,太容易被封锁了。
感谢,学习了很多知识。
文章写得全面而且详细,很有深度!
感谢您的认可!文章所说也是目前科学上网技术的现状,虽然一直有新技术被大神研发出来,但是主流的还是SS/V2Ray/Trojan。
不错