Trojan 流量处理
其他协议(回落)
- Trojan 像普通 HTTPS 服务一样监听 TLS 套接字。
- TLS 完成后,服务器检查第一个应用数据包。
- 如果该数据包不是有效的 Trojan 请求(结构或密码错误),服务器会将其视为“其他协议”,并把解密后的 TLS 流转发到预设端点(默认
127.0.0.1:80)。 - 预设端点随后控制响应,使其行为与真实 HTTPS 站点无异。
主动检测
- 结构或密码不正确的探测会被交给回落端点。
- 因此,主动扫描器看到的是普通 HTTPS 或 HTTP 行为,而非定制的代理标识。
被动检测
- 使用有效证书时,流量受 TLS 保护,看起来像普通 HTTPS。
- 对于 HTTP 目的地,TLS 握手后只有一个 RTT;非 HTTP 流量常表现为 HTTPS 保活或WebSocket。
- 这种相似性有助于绕过针对明显代理特征的 ISP QoS。
参考资料
- https://github.com/trojan-gfw/trojan/issues/14