协议知识
Trojan 协议速读:为什么它看起来像普通 HTTPS
Trojan 的思路很直接:把代理流量放进一条看起来像普通 HTTPS 的 TLS 连接里。
先看结论
Trojan 协议的特点:密码认证,运行在 TLS 之上,需要服务端有有效证书、客户端的 sni 与之匹配。客户端支持很广,配置字段也比较少。
关键字段
- password
- 认证密码,和服务端一致。
- sni
- 握手时声明的域名,要和服务端证书相符。
- skip-cert-verify
- 是否跳过证书校验。开启会降低安全性,除非服务商明确要求,否则不要开。
常见配置错误
- sni 填错:TLS 握手失败。
- 证书过期:服务端问题,客户端表现为全部超时。
- 密码里有特殊字符被粘贴丢失。
适合什么场景
Trojan 配置简单、兼容性好,是许多服务商会同时提供的协议之一。是否选择它,取决于服务商提供什么,以及你的客户端支持什么。
Trojan 的"像 HTTPS"是什么意思
Trojan 把代理流量放在一条普通的 TLS 连接里传输,从外部看,它和访问一个 HTTPS 网站的连接非常相似。这依赖于服务端有一个真实的域名和有效证书,并且客户端握手时声明的 SNI 与之匹配。理解这一点,就能明白为什么 sni 字段错误会直接导致握手失败,也能明白为什么服务端证书过期会让整批节点同时超时。
配置时最常见的三个字段
| 字段 | 常见错误 | 后果 |
|---|---|---|
| password | 粘贴时丢了特殊字符或多了空格 | 认证失败 |
| sni | 与服务端证书的域名不一致 | TLS 握手失败 |
| skip-cert-verify | 无必要地开启 | 降低安全性,可能被中间人利用 |
怎么判断是证书问题还是密码问题
如果连接在握手阶段就失败,多半是 sni 或证书问题;如果握手通过、后续没有数据,则更可能是密码或传输层的选项不匹配。区分这两类,可以避免在错误的方向上浪费时间。日志里出现与证书、TLS 有关的字眼,优先检查 sni 和服务端证书的有效期;出现认证相关的字眼,则优先检查密码。
关于「Trojan协议」的常见问题
Trojan 一定要有域名吗?
一般需要一个域名和对应证书,这是服务端的事,用户只需要使用订阅里给出的参数。
Trojan 节点全部超时,是服务端证书到期了吗?
有可能。服务端证书过期会让所有 Trojan 节点同时握手失败。可以对比其他协议的节点是否仍可用,再联系服务商确认。
Trojan是什么?Trojan伪装是怎么回事?
Trojan 是一种基于 TLS 的代理协议,用密码认证。Trojan伪装指它的流量看起来像普通的 HTTPS 访问,通常配合真实的域名和证书使用。