硬核翻墙系列5:协议分析
Shadowsocks协议
Shadowsocks是继VPN这种曾经的主流的翻墙的手段被确认能够被GFW精确识别和封锁之后,后面的一切代理服务器中转的翻墙方式SSR、V2ray、Trojan这些的始祖。早期的shadowsocks协议确实存在着技术漏洞,涉及到采用非AD的加密的流量的会被主动探测,并且在GFW那里会得到一个百分之百流特征的一个服务服务器反馈。这是个漏洞已经被修正了。
Shadowsocks协议目前拥有着最快的RTT,也就是通讯延迟,因为数据包在握手的时候用时最短。后面讲到的V2ray和Trojan在机制的限制下,RTT次数一定比Shadowsocks要多,这一点是无解的。Shadowsocks协议因为机制问题,目前还是体验最好,最简单、最快速,极度体现暴力美学的中转代理方式。Shadowsocks的安全性存在一定风险,但是目前依然是翻墙的主流方式。
ShadowsocksR这个协议是Shadowsocks的优化版,但是并非是同一个作者开发的。
V2ray【VPS用户优先选择】
从开发者的角度看,V2ray是个极具弹性的平台,支持的协议和算法多,机制和花样也多。从写代码的角度看,相比shadowsocks的简单粗暴,V2ray是通过一种不断的在这里加一笔在那里添一划的这种方式来解决各种各样的潜在的可能出现的安全性问题。这个特点同样也是优点也是缺点。
V2ray的安全性综合来看更高,但是从部署和推广的角度来说,因为更加复杂也的确劝退了很多自建VPS的用户。从通讯延迟的角度来说,因为机制的问题导致握手次数相比 Shadowsocks更多。加解密的性能方面由于V2ray原创的Vmess协议+TLS两次加密,CPU占用对比Shadowsocks更高,不太适合部署在路由器和一些老旧的CPU型号的手机上。
因为v2ray的花样比较多,这里着重的说的是Vmess+Websocket+TLS的这种情况,目前来说确实是最稳定的方式之一。即便是在一年一度的6月大扫除,其他协议陆续出现问题的时候也是屹立不倒。由于机制问题WebSocket+TLS的HTTPS流量在GFW看来和不计其数的其他的正常的HTTPS流量基本上没有任何区别。尽管流量没有明显的特征,但是如果GFW主动探测,就会发现流量的目的是没有任何一个网站的,这不就是个明显的特征吗?不过这里就是体现V2ray平台弹性的地方了。很多人在V2ray服外面加一层真的网站作为掩护而伪装流量,这就是V2ray+Websocket+TLS+Web的原理。在配置了真实网站之后只有你知道自己是个代理,对GFW来说就是在浏览网站。但是从GFW的角度来看,可能前几天觉得行为没有特征,但是再过一段时间GFW又发现看到天天无时不刻的访问同一个网站,然后来主动探测,发现确实是个正常网站。好吧那让继续访问,但是重点盯着你了。再过一两个月谁上网天天照着一个网站看?这种特征还不算特征不知道什么是特征了。技术角度的完美和现实角度的完美完全不是一个概念,GFW理论上已经具备了探测这种特征的能力。当然没有人能去准确的分析出GFW的算法和探测行为具体是什么样的,但是心里要有个底,人工方式优化GFW已经不是主流,一旦有了成熟利用AI和大数据分析特征的方式,一切所谓的协议和加密都只是暂时的。所以从事技术方面的人大概会有两种思路,一种是陷在技术的角度的陷阱里出不来,只会从技术的角度来判断怎么做到完美,怎么做到安全。但是跳出来宏观的看特征是一定有的,只是时间样本够不够的问题。这就是另一种能够从更高的宏观的角度来看待封锁和反封锁的人,能够明白这个博弈过程一定是永恒的,除非GFW不存在。
总结一下,V2ray的协议和加密算法相比Shadowsocks在安全性和潜在的对抗GFW的封锁的能力上要强一些,但是依然不是绝对的安全。V2ray的优点在于弹性大,功能多,支持的协议和算法多,缺点在于部署起来难度比较大,多次加密解密延迟相对比较高,对设备的算力要求也更高一些。
Trojan
Trojan解决的是V2ray的一些缺点,但是翻墙的核心原理还是借鉴Websocket+TLS。第一解决了复杂部署难度大的这个问题。Trojan走的是轻量化的解决方案,定死了通信协议只有一种就是Websocket+TLS,不像V2ray支持和兼容那么多协议。第二Trojan在V2ray的Vmess+TLS的两层加密的结构里面剥离了一层Vmess的加密协议,只用到了TLS。TLS的加密方式非常成熟,哪怕政府和银行用的都是TLS,随着TLS的1.3版本的出现,加密的角度来看安全性几乎不会被强行解密。由于Trojan只用了高效率的加密,所以对比V2ray执行效率还有加解密的耗时耗力的问题也有了进步。
同时带来的缺点,首先定死了唯一的通讯协议就意味着对其他协议不支持,弹性比较差。由于比较新所以多平台兼容性较V2ray差。
总结一下,Shadowsocks协议依然适合绝大多数机场用户使用,但是VPS用户建议优先选择相对比较安全的V2ray,对速度有严格要求的就选Trojan。
我个人还是建议各位尽量选择使用Trojan协议的机场,理由有两点:
目前与GFW的博弈状态愈发紧张,用户数据信息安全十分重要,2023年以来跑路关停、面板数据库被攻破的事情络绎不绝,Trojan作为相对新的协议安全性更有保证;
Trojan对于速度的稳定更加友好,花钱购买了机场服务当然不希望卡顿~
推荐一个我近期在使用的专线机场,番石榴。机场采用Trojan协议,有自己独立的客户端,性价比不错。链接我放下面了,2天免费体验,感兴趣的可以去看看。
https://balecc.com
总的来说,无论你选择哪种服务,都请记住,网络的世界水很深,一定要多一个心眼,谨慎选择。
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!