Trojan 工作原理浅析
Trojan 是一个比较新的翻墙软件,在设计时采用了更适应国情的思路。在穿透 GFW 时,人们认为强加密和随机混淆可能会欺骗 GFW 的过滤机制。然而,Trojan 实现了这个思路的反面:它模仿了互联网上最常见的 HTTPS 协议,以诱骗 GFW 认为它就是 HTTPS,从而不被识别。
如图所示,Trojan 工作在 443 端口,并且处理来自外界的 HTTPS 请求,如果是合法的 Trojan 请求,那么为该请求提供服务,否则将该流量转交给 web 服务器 Nginx,由 Nginx 为其提供服务。基于这个工作过程可以知道,Trojan 的一切表现均与 Nginx 一致,不会引入额外特征,从而达到无法识别的效果。当然,为了防止恶意探测,我们需要将 80 端口的流量全部重定向到 443 端口,并且服务器只暴露 80 和 443 端口,这样可以使得服务器与常见的 Web 服务器表现一致。