Trojan 协议是什么?TLS 伪装代理原理详解
Trojan 是一种以 TLS 伪装为核心设计的代理协议,其流量在传输层特征上与正常 HTTPS 网页访问高度接近,目的是降低被基于协议特征识别的深度包检测(DPI)手段区分的概率。相比 Shadowsocks 直接对流量进行对称加密封装,Trojan 更强调让流量看起来像正常网站访问,因此近年被不少机场服务作为主推协议之一,但两者都不能保证绝对不被识别。
Trojan 协议的定义
Trojan 是一种以 TLS 伪装为核心设计理念的代理协议,通过借用标准 TLS 协议的握手流程和证书体系,使代理流量在传输层特征上尽可能接近正常的 HTTPS 网站访问。这一设计目标是为了应对深度包检测(DPI)等基于流量特征识别代理协议的技术手段。相比早期以自定义封包格式为主的代理协议,Trojan 的思路是尽量减少“看起来像代理”的特征,转而借用互联网上最常见的加密网页访问形式作为掩护。
SNI 与证书校验
Trojan 连接建立过程中,客户端会携带 SNI(Server Name Indication,服务器名称指示)信息完成 TLS 握手,服务端根据该信息返回对应的证书。若证书验证失败或握手信息不符合服务端预期,请求会被当作普通网页访问处理,而不会暴露 Trojan 服务本身的存在。这种“先验证再放行”的机制是 Trojan 抗探测能力的核心来源之一。
工作原理
Trojan 客户端与服务端之间会先建立标准的 TLS 连接,握手过程与访问普通 HTTPS 网站基本一致;在 TLS 层建立完成后,Trojan 协议数据被封装在 TLS 加密通道内部传输。对于不知晓正确验证信息的第三方观察者而言,这类流量在网络层面上与正常网站访问难以直接区分。服务端通常还会配置一个“伪装网站”,当收到非法或未通过验证的连接请求时,会将其当作普通网页请求处理,进一步降低被针对性探测识别的概率。
与 Shadowsocks 的核心差异
Shadowsocks 采用对称加密直接封装流量,实现简单、性能开销低,但协议本身不主动伪装成常见应用层协议,流量特征在深度包检测环境下相对容易归类。Trojan 则借助真实的 TLS 握手和证书机制,将流量伪装为标准 HTTPS 访问,理论上更不容易被基于协议特征的手段区分。两者在设计理念上的取舍——伪装能力与实现复杂度——是理解协议选择的关键,详细对比可参考《Shadowsocks 与 Trojan 对比》。
部署要求与技术特点
- 通常需要配合真实域名和有效 TLS 证书完成标准握手,部署门槛略高于 Shadowsocks。
- 依赖完整 TLS 握手流程,理论上会带来轻微的连接开销,但通常不构成明显的速度差异。
- 衍生实现如 Trojan-Go 在原协议基础上扩展了 WebSocket、多路复用等功能,具体支持范围因客户端而异。
- 主流代理客户端(Clash 系列、Shadowrocket、v2rayN、sing-box 等)均已原生支持 Trojan 协议节点。
- 服务端通常配置伪装网站作为兜底响应,未通过身份验证的连接会被当作访问该网站处理,而不会直接暴露代理服务特征。
常见部署形式
Trojan 节点配置通常包含服务器地址、端口、密码以及对应的 SNI(服务器名称指示)信息,机场服务商同样会将 Trojan 节点整理进订阅链接,用户通过客户端导入订阅即可自动获取节点列表,无需单独手动录入每个参数。
实际应用中的定位
近年来不少机场服务将 Trojan 作为主推协议之一,宣传其抗封锁能力优于传统协议。需要注意的是,协议层面的伪装能力只是影响可用性的因素之一,节点是否被针对性封锁、实际可用性如何,还受具体网络环境、监管策略变化、以及服务商运维水平等多重因素影响,不存在任何协议能保证长期不被识别或永久稳定可用。用户在选择协议时,可结合自身网络环境和客户端支持情况灵活切换,而非固守单一协议类型。
套餐、价格与节点覆盖请以官网最新页面为准。
查看龙猫云官方最新套餐常见问题
Trojan 协议为什么要伪装成 HTTPS?
Trojan 需要真实域名和证书吗?
Trojan 和 Shadowsocks 哪个更安全?
使用 Trojan 协议速度会更快吗?
Trojan-Go 和原版 Trojan 是什么关系?
哪些客户端支持 Trojan 协议?
本文内容基于公开资料、产品页面和网络技术原理整理,仅供参考。产品套餐及服务状态可能发生变化,请以龙猫云官方最新信息为准。