开启 3 天免费试用
注册即可免费体验全部高级功能。
*仅限新用户;每位用户只能获得一次试用。


Trojan 协议是一种代理协议,在真实 TLS 连接内传送经过认证的转发请求。它借用 HTTPS 同样使用的受保护连接,但应用消息要求远程服务器联系指定目标;它与恶意软件分类中的“木马”不是同一个概念。[1]
关键要点:
- 客户端先建立受保护的 TLS 通道,再进行代理认证。
- 证书可信和代理凭据被接受,回答的是不同问题。
- 回落处理 TLS 建立后的未识别输入,不能修复握手失败。
- 一次成功代理请求只证明一条路径,不能证明全设备覆盖或无法识别。
可以把连接拆成三段:应用向本地代理客户端发请求,客户端联系远程 Trojan 服务器,服务器再联系指定目标。客户端与服务器之间先完成 TLS,成功后才发送凭据、目标请求和应用负载。[1]
图中的分支判断位于 TLS 端点内部。上方路径把识别并获准的代理流量发往请求目标,下方路径把未识别输入转交配置的回落服务。请求目标与回落服务职责不同,即使两者碰巧都是网站服务器,也不能混为一谈。
协议告诉服务器应该转发什么,本地客户端的集成方式则决定哪些应用流量会进入代理。浏览器设置了代理,不能证明另一个应用的连接、DNS 查询或 UDP 流量也走相同路径。使用 TUN 的客户端可以收集更广泛的流量,但那是额外的集成层,不是 Trojan 的定义。
VPN 的整体连接模型帮助你分开理解流量接入与远程转发。查看客户端界面时,要区分进程正在运行、配置已被选择、应用确实使用该配置这三种观察,不能用其中一种替代另外两种。
Trojan TLS 保护客户端与服务器之间交换的数据。实现和身份认证正确时,TLS 提供通道机密性与完整性,但不会替端点制定隐私政策,也不会把所有应用协议变成 HTTPS。现行 TLS 1.3 标准是 RFC 9846,已取代 RFC 8446。[3]
应用的 HTTPS 网站连接可以穿过代理保护的通道。此时浏览器仍与网站建立自己的加密会话,代理负责转发这些字节。如果应用向目标发送明文,Trojan 的 TLS 连接不会自动把加密保护延伸到服务器之后。
网络观察者即使读不到加密的应用负载,仍可能看到时间、数据包尺寸、地址与连接模式。因此,真实 TLS 握手能支持的结论,比“绝对无法识别”更窄。协议的伪装设计不能证明它能抵抗所有被动分类、主动探测、端点封锁或未来网络政策。
协议与伪装的分层解释有助于判断这些主张。区分哪些性质来自标准,哪些属于特定实现,哪些必须用实际网络上注明日期的测试证明,才能避免把设计意图当成效果保证。
Trojan 证书校验让客户端在发送代理凭据前确认远程 TLS 身份。证书链必须符合客户端的信任策略,服务器出示的服务身份也必须匹配预期名称。另一个正规网站的证书,不能认证你原本打算连接的端点。[2][4]
证书回答客户端是否到达预期 TLS 对端,代理凭据回答该对端是否允许转发。两者都不能证明服务器的日志政策合适、所有目标都可达,或接收凭据的软件得到安全维护。
为了消除警告而关闭验证,会丢失第一个问题的重要证据。证书过期、名称异常、缺少信任锚或设备时钟错误都需要解释;关闭检查后能连接,并不能证明原检查没有必要。无法确定端点身份时,不应向它发送凭据。
选择 AethoVPN 这样的托管服务时,应评估其已公开的客户端和服务信任边界,而不是把协议名称当成证书保证;协议选型总览提供了比较各种连接方法实际证据的思路。即使客户端把底层细节藏在连接按钮后面,这个区分仍然成立。
Trojan 协议在类似 SOCKS 的请求之前放置由密码计算的 SHA-224 十六进制值,请求包含命令和目标地址。服务器检查输入,接受后按请求操作转发流量。这些消息位于 TLS 内部,密码衍生值不能代替通道保护。[1]
Trojan 回落把未识别或无效的握手后输入发往预设端点。普通网页请求因此可以收到正常网页响应,而不是专属于代理的拒绝提示。回落目标由服务器配置决定,不是未经认证的访问者任意指定的代理目标。[1]
TLS 握手失败发生得更早。有回落网站,并不能让失败的 TLS 连接变成成功的认证代理请求。同样,服务器返回网页,可能只是回落分支能够响应,并不表示代理凭据已被接受。
排查时,“地址有响应”“TLS 校验通过”“认证成功”“目标返回内容”代表依次增强的证据。只记录观察实际能证明的最强阶段,在得到相应证据前,把后一个阶段视为未证实,而不是把所有失败都归结为“Trojan 被封了”。
官方协议包含 TCP CONNECT 与 UDP ASSOCIATE。UDP 负载在受保护连接中有自己的目标地址和长度封装。命令名称看起来像 SOCKS,但远程 Trojan 交换有独立规则,并不是把本地裸 SOCKS 连接直接暴露到互联网。[1]
规范支持某个操作,不能证明每一个客户端版本或本地应用接口都支持它。程序可能只使用 TCP 代理,可能在代理之外查询 DNS,也可能根本没有把 UDP 流量交给客户端。反过来,目标端故障也不一定意味着客户端与服务器的保护通道损坏。
不能从浏览器成功访问网页,就推断语音通话或游戏的行为。它们可能使用不同流量类型、目标和路由规则。判断性能排名也需要可比较的设备、网络、服务器、传输方向与工作负载,不能把条件不同的结果混在一起。
另一种加密应用代理的例子是Shadowsocks 的定义与覆盖边界。这篇解释哪些问题仍属于集成层;它是术语参考,不是更换协议一定能解决某次故障的证据。
把下表当成证据地图,而不是诊断命令清单。每一种观察都有边界,不同原因也可能产生相同现象。表中判断来自前文对 TLS、代理认证、转发和流量接入的区分。
| 观察 | 能支持的结论 | 不能证明的结论 |
|---|---|---|
| 服务器地址接受连接 | 测试路径上有可达监听端点 | 预期 TLS 身份正确或代理凭据被接受 |
| 开启身份校验时 TLS 成功 | 在该策略下身份校验与保护通道成立 | 日志行为、代理权限或所有目标可达 |
| 返回普通网页 | 网页或回落路径能够响应 | 经过认证的 Trojan 请求成功 |
| 认证请求到达一个目标 | 该应用请求经过测试的转发路径 | 其他应用、DNS、UDP 或全设备覆盖 |
| 一条连接缓慢或失败 | 特定路径或负载有问题 | 通用性能排名或故意过滤的证明 |
客户端可能运行同时实现多种协议的核心。Xray 与 V2Ray 的组件职责解释了为什么核心名称不能告诉你选中配置实际使用的线上协议。应以当前配置的文档与身份为准,而不是靠应用名称猜测。
如果你的实际任务是选择不同受保护连接模型,Trojan 与 VLESS/REALITY 的比较讨论的是另一个决策问题。这里的定义提供比较所需词汇,不认可某种部署,不承诺地区可用性,也不提供绕过参数。
Trojan 协议是网络代理协议,恶意软件领域中的木马则是假装正常软件的恶意程序。同名不能说明两者有安全上的联系。安装任何客户端软件时,你仍需判断其来源与实际行为是否可信。
Trojan 使用真实 TLS 连接,HTTPS 也使用 TLS,但 Trojan 的认证应用消息请求代理转发,HTTPS 承载的是 HTTP 语义。共用受保护传输不等于上层协议相同,也不保证可观察行为完全一致。
基于证书的部署需要客户端能按信任策略验证预期服务身份的证书。随便持有一张证书并不够。关闭检查、接受意外身份,会在发送代理凭据前削弱保护。
回落网站响应,只证明对应网页路径能够返回内容,不能证明认证代理请求已被接受或请求目标可达。TLS 失败发生在正常握手后回落判断之前,不能靠网页回落来修复。
官方协议包含 UDP ASSOCIATE 与 UDP 负载封装。实际流量是否使用它,取决于实现和本地应用集成。TCP 网页请求成功,不能证明同一个客户端正确转发了 UDP。
Trojan 定义代理交换,不会自动接管设备上的每个数据包。客户端可以增加 TUN 接口和系统路由,但这些组件才决定覆盖范围。需要分别检查应用流量、名称解析与策略,不能仅凭协议标签判断。
协议定义不能证明对识别和阻断绝对免疫。TLS 保护负载,但地址、时间、连接模式、端点与实现行为仍可能影响结果。可用性主张需要特定网络、日期、客户端和服务器的证据。
免责声明: 本文解释概念,不是部署教程或经过测试的可用性承诺。请遵守适用法律及网络政策,并查阅实际实现的官方文档。
Sources checked 2026 年 10 月 5 日。
注册即可免费体验全部高级功能。
*仅限新用户;每位用户只能获得一次试用。