2022年更新:已经全面转移到Trojan-go,新一代轻量级工具,很好用,支持多路复用让科学上网更稳定。

Trojan已经存在了一年多了,作为新一代的翻墙工具,因为速度快,备受瞩目。本来我的V2ray用得很好,并不想搞个新东西,但是忍不住看了Youtube的速度对比,发现两者速度确实差了不少,于是亲手试验一下,看看是不是真的。

V2ray本质上跟SS区别不是很大,无非是握手的方式看起来更加隐蔽,但这对于墙来说,不算高级货。V2ray之所以能够在墙升高的时候活下来,主要是支持websocket+tls。

websocket+tls对流量进行伪装之后,会让网站看起来是正常的https服务。而且,搭建的过程需要申请域名,申请证书,技术门槛还是比ss的一键安装脚本高一些。

但是搭建好之后,再去搞trojan就很简单。trojan可以理解为tls加密的数据服务,它与V2ray的websocket+tls相比,少了websocket的嵌套,效率更高,流量特征上也与https很相似,配合nginx的网站服务之后,看起来就是一台支持https的网页服务器。

在原来的v2ray服务器上搭建Trojan,非常简单,只需将配置好的证书文件写入到trojan的config.json里面,开启server模式,选择一个空闲端口即可。
因为V2ray服务器本身的443端口,已经被nginx接管。trojan换一个其他的端口,后端指向nginx侦听的80端口,一样看起来是正常的网页服务。没必要非得443。

trojan最差的地方,在于客户端。macos上没有像样的客户端,用起来很原始。就冲这一点,也不适合小白上手。

实际打开的速度测试结果,同样是搬瓦工CN2GIA的顶级线路,trojan提供的转发服务,能够做到8K视频秒开,很流畅。比Rixcloud在国内做中转的速度还要快!

v2ray的websocket+tls,相比之下,速度要差很多,卡顿非常明显。

如此这般的速度,放着不用就可惜了。但是trojan的客户端很烂,平台也少,远不如v2ray丰富,文档也多。这反倒让trojan更适合在路由器上跑。

trojan已经有人编译了openwrt的版本,可以直接刷机。但是此固件还需要自己再做策略路由,才能做国内外流量分流。我想,原作者的思路应该是,既然trojan已经这么快了,就没必要分流,索性全从国外走。

但是这样的弊端也很明显,淘宝,京东都变成了海外站,速度还是不如国内快,而且内容也不太一样。

openwrt的固件,在我的ubnt er4上用不了,需要重新编译。

er4最新的2.0.8固件,使用的自研版的debian stretch核心,mips 64 cpu。最直接的办法,是在macos上安装qemu,虚拟机的方式编译trojan。

trojan的开发者显然没有考虑广泛推广的必要。trojan的开发平台,在debian burst上最合适,stretch已经落伍,必须增加backports的源,才能安装符合编译要求的高版本库。

这套开发环境在qemu上一通安装才实现,很麻烦。而且stretch上只有openssl 1.1.0,不支持tls 1.3加密。最后费劲编译出来的trojan,不支持tls 1.3,连接不上服务器。

不仅如此,编译好的trojan,还需要在er4上安装400多M的依赖库才能运行。。。

那么,换成debian burst来编译呢?提供原生的openssl 1.1.1,支持tls 1.3。

第一次编译成功之后,er4的环境里,还是缺少库,因为sqlclient,又变成了mariadb。

新版本还在编译中,去掉mysql的支持,看看能否正常运行。

总之,经过这一番折腾,基本对trojan做路由器透明代理的念头,暂时放弃。等trojan有编译好的mips版本再说吧。其实8K和4K youtube视频,在平时使用的时候,速度足够了。

翻墙服务器本身一般都不支持bt下载,速度快了意义也没那么大。反倒是需要经常从国外下载软件包的人才会考虑。这批用户,在自己机器上搭建trojan客户端,很轻松,花时间去搞路由器的固件,意义不大。

trojan目前看来,算是小众中的奇葩。如果对比v2ray的h2,也不见得速度高出很多。

结论:暂时弃用。还是v2ray的websocket+tls更加隐蔽,牺牲一些速度,不影响99.9%的使用体验。