Trojan是什么意思?
Trojan 是一种把代理流量封装进 TLS 的代理协议,用密码认证,外观上接近普通 HTTPS 连接。
Trojan 要求服务端有域名和证书,客户端靠密码识别用户。你会在机场的协议说明、节点详情的“类型”字段中看到它;Clash 系与 V2Ray 系的主流客户端通常都有支持,具体以当前版本为准。
它想解决的问题
Trojan 的思路很朴素:既然网络上最常见的加密连接就是 HTTPS,那就让代理流量看上去像 HTTPS。它把代理数据放进标准的 TLS 连接里,用密码来识别是不是合法用户。对于不符合要求的访问,服务端可以把请求转交给一个正常的网站来应答,这样外部探测看到的就是一个普通站点。
这套设计在项目文档里有说明,想看原始描述可以读 Trojan 项目文档。
它需要什么才能跑起来
- 一个域名,解析到服务器。
- 一张有效的证书,让 TLS 握手能被正常验证。
- 一个服务端密码,写在节点参数里。
所以,Trojan 节点的参数常见字段是服务器地址、端口、密码,以及是否跳过证书验证、SNI 之类的 TLS 选项。字段名随客户端略有不同,但含义一致。
在哪里会看到,怎么和别的协议对比
套餐页的协议列表、客户端节点详情的类型下拉里都会出现。和同类协议比较,可以这么概括:
| 对比项 | Trojan | Shadowsocks | VLESS |
|---|---|---|---|
| 加密方式 | TLS | 协议自带 | 取决于搭配的传输层 |
| 是否需要域名与证书 | 通常需要 | 不需要 | 视搭配而定 |
| 外观 | 接近 HTTPS | 与 HTTPS 不同 | 视搭配而定 |
更完整的横向对照请看机场协议怎么选,这里只给定位。
容易误解的地方
第一,“外观像 HTTPS 就一定不会被识别”。能否被识别还取决于证书、域名、流量模式等许多因素,协议名没有这种承诺。
第二,“跳过证书验证只是小事”。在客户端里勾选跳过证书验证,会削弱 TLS 防止中间人的作用,除非机场明确要求并说明原因,否则不建议随意打开。
第三,“Trojan 一定比别的协议更适合你”。协议只是一部分,节点线路和服务端的运维质量同样重要。
怎么自己判断
先看你的客户端是否支持 Trojan,Clash 系和 V2Ray 系客户端的支持情况可以参照V2Ray 机场怎么选里的对照思路;再看导入后的节点参数里证书与 SNI 是否完整;最后在你的网络环境里分时段试连。导入失败时,先检查订阅格式,再看是不是客户端版本偏旧。