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