Shadowsocks 与 Trojan 的区别:老协议与新协议
Shadowsocks 不走 TLS,靠预共享密钥直接加密数据流,现行版本有 AEAD 和 2022 两代;Trojan 把流量放进 TLS,用密码哈希认证,对服务端证书有要求。没有绝对更好的一个,关键看节点来源提供什么、你的客户端支持什么,以及你是否需要插件。
很多人把 Shadowsocks 和 Trojan 当成“一个旧一个新”的前后代关系,其实它们是两种不同思路。Shadowsocks 的思路是:我自己把数据加密好再发;Trojan 的思路是:我把数据装进一条正常的 TLS 连接里发。弄清这一点,Shadowsocks 和 Trojan 的区别基本就抓住了大半,其余都是在这两种思路上长出来的细节。
两种协议各有完整档案:Shadowsocks 协议 与 Trojan 协议。下面只讲放在一起比较时有用的部分。
Shadowsocks 和 Trojan 的区别:自己加密,还是借 TLS 的壳
| 对照项 | Shadowsocks | Trojan |
|---|---|---|
| 基本做法 | 本地端像 SOCKS5 服务器一样接收请求,加密后转给远端,由远端解密再访问目标 | 先完成一次正常的 TLS 握手,再在里面发送密码哈希和类 SOCKS5 请求 |
| 加密来源 | 预共享密钥直接加密数据流 | 外层 TLS |
| 认证 | 靠对密钥解密是否成功 | 首个数据包里带 SHA224 的密码哈希 |
| 对证书的要求 | 不需要 | 需要有效证书,且由使用者负责有效 |
| 对非法连接的处理 | 现行协议要求重放保护 | 转交预设的本地服务,表现得和该服务一致 |
| 传输 | TCP 与 UDP 都支持 | TCP 与 UDP(UDP ASSOCIATE)都能转发 |
把“证书”这一行单独拎出来:Shadowsocks 用户几乎不需要关心证书,Trojan 用户则要留意域名与证书是否对得上。 这是两者在日常排错时最大的区别,也是 Shadowsocks 和 Trojan 的区别里最容易被忽略的一条。
Shadowsocks:现行有两代,旧版本别碰
按 Shadowsocks 官方文档,它是一种松散基于 SOCKS5 的加密分流代理,现行协议有 AEAD 版与 2022 版两代:
- AEAD 版推荐 chacha20-ietf-poly1305 与 aes-gcm 一类的方法;
- 2022 版使用 base64 预共享密钥,以 BLAKE3 派生会话子密钥,要求完整的重放保护,UDP 改为按会话转发;
- 官方同时说明,旧的流式加密已不可用并将被移除,新用户必须使用 AEAD;
- SIP022 也明说 2022 版和前代一样不提供前向保密。
Xray 文档还列出了旧 AEAD 协议的一些问题,例如设计缺陷、TCP 重放过滤器误报率随时间上升、UDP 无重放保护,并称 2022 版已解决。这说明了一件事:同样叫 Shadowsocks,不同代际差别很大。 节点来源给你的是哪一代,比协议名字本身更值得问清楚。
此外 Shadowsocks 有 SIP003 插件机制:插件以子进程方式运行,以本地端口转发的形式工作,设计类似 Tor 的 Pluggable Transport。需不需要插件,由节点来源说了算。
Trojan:把安全交给 TLS,也就把责任交给了配置
Trojan 官方协议说明的要点:
- 首个数据包结构是 hex(SHA224(密码))、CRLF、类 SOCKS5 请求、CRLF 和载荷;
- 认证失败或非 Trojan 流量,会被转交到预设端点,默认是本地 HTTP 服务;
- 首个数据包附带载荷,文档称这样可避免长度模式探测。
Xray 文档补充了使用侧的提醒:Trojan 必须搭配 TLS,仅当对端是私有地址且链路可信时才允许 security 为 none;公网环境下还需要 Mux,否则内层本身是 TLS 时会形成 TLS in TLS,容易被识别。这些是关于怎么用对的提醒,不是关于哪个更好。
另外,协议层只做认证,数据保护依赖外层 TLS。也就是说,Trojan 的安全取决于 TLS 配置得对不对;节点里证书域名、SNI 字段填错,就连不上,这类问题见 Trojan 节点配置教程。
客户端支持:两个都很常见,但要核对
按各内核官方文档,Shadowsocks 与 Trojan 都有对应配置:
| 内核 | Shadowsocks | Trojan |
|---|---|---|
| Xray-core | 支持 | 支持(须配 TLS) |
| sing-box | 支持,含 2022 系方法与插件 | 支持,可用 transport 字段 |
| Mihomo | 支持,含 obfs、v2ray-plugin 等插件 | 支持,network 支持 ws、grpc |
| V2Fly v2ray-core | 支持 | 支持 |
具体到图形客户端能否直接导入,请看 协议 × 客户端支持矩阵。如果你想理解 Mux 是什么,读 多路复用 Mux,TLS 的基础概念见 TLS。
shadowsocks trojan哪个好:用这三个问题来选
别问“哪个好”,改问下面三个问题:
- 节点来源提供什么? 你不是搭建者,能选的是它给你的那些。
- 我的客户端认不认? 查支持矩阵,认才有得选。
- 我有没有特殊需求? 例如需要插件、需要与某个传输方式组合。
对应的判断路径:
- 节点只给了 Shadowsocks → 确认是 AEAD 或 2022 方法,不是旧流式加密;
- 节点只给了 Trojan → 重点核对域名、证书、SNI 三项是否对得上;
- 两种都给 → 先各连一次,看哪个在你的使用场景里更少出问题,对比做法见 Hysteria2 与 VLESS 的对比 的“自己网络里怎么分胜负”一节;
- 想比较其他协议 → 看 代理协议怎么选。
拿到节点后怎么核对字段
- 先用 节点链接解析工具 把链接拆开,数据只在浏览器本地处理;
- Shadowsocks 看三项:地址端口、加密方法、密码或密钥;加密方法若出现已淘汰的流式名称,向来源确认;
- Trojan 看三项:地址端口、密码、域名(SNI);
- 若节点带插件或 Mux 字段,原样照填,别猜;
- 导入后连一次,失败时按 梯子连不上怎么办 的顺序排查。
链接字段的含义可对照 节点链接怎么读。
下一步该做什么
确认你手头节点属于哪一类之后,去 协议 × 客户端支持矩阵 对照自己的客户端;还没有客户端的话,从 下载导航 找官方入口。想看节点来源的资料,到 机场目录 查。
这篇没有覆盖的
- 梯子岛没有两种协议的速度、稳定性或抗封锁数据,下文只能比较官方文档写明的设计。
- 本文不教生成密钥、签发证书或搭建服务端,只讲拿到节点后客户端一侧怎么读、怎么核对。
- 各客户端里加密方法和插件的下拉项会随版本变化,选项以客户端当前文档为准。
本文引用的官方来源
- Shadowsocks 官网(shadowsocks.org)
- 什么是 Shadowsocks(shadowsocks.org)
- Shadowsocks SIP022(AEAD-2022)(shadowsocks.org)
- Trojan 项目文档(trojan-gfw.github.io)
- Trojan 协议说明(trojan-gfw.github.io)
- Xray 文档:Trojan(xtls.github.io)
以上链接均为官方页面,梯子岛在 2026-10-09 核对过;个别网站会拦截自动化访问,用浏览器直接打开即可。平台规则可能随时调整,以官方页面当前内容为准。
Shadowsocks 和 Trojan 的区别常见问题
Shadowsocks 和 Trojan 谁更安全?
这类问题没有脱离环境的答案。两者的保护来源不同:Shadowsocks 依赖加密方法和密钥,Trojan 依赖外层 TLS 和证书的正确配置。官方文档都强调了各自的前提,例如旧的流式加密已不可用、Trojan 必须搭配有效的 TLS。选择时更实际的做法是确认节点用的是文档推荐的配置。
节点里写着 aes-256-cfb 这类加密方法,还能用吗?
官方文档称旧的流式加密已不可用并将被移除,新用户必须使用 AEAD 加密。看到这类旧加密方法,说明节点来源的配置很可能已经过时。你可以先向对方确认是否有更新的节点,而不是自己去改客户端里的选项。
Trojan 一定要域名和证书吗?
官方说明里,Trojan 基于 TLS,证书需要有效。作为使用者你不需要自己申请证书,但节点里通常会有域名字段,用来做 TLS 的名称校验。这个字段填错或证书过期,是最常见的连不上原因之一,处理方式见站内的 Trojan 配置教程。
为什么有的 Trojan 节点要求开 Mux?
Xray 文档提到,在公网环境下需要 Mux,否则当内层载荷本身也是 TLS 时,会形成 TLS in TLS,容易被识别。这是部署层面的建议,开关是否启用以节点来源的说明为准,客户端自行乱开可能反而不兼容。
Shadowsocks 的“插件”是什么?一定要装吗?
插件是 SIP003 约定的扩展机制,以子进程方式运行,用本地端口转发的形式工作。不是所有节点都需要,只有节点来源明确要求时才配置。多数图形客户端会内置常见的几种,选项在节点编辑页,具体名称以客户端为准。
SS 和 Trojan 在手机和路由器上都能用吗?
资料显示 Xray、sing-box、Mihomo 等主流内核两种协议都有对应配置,手机、电脑、路由器客户端多数基于这些内核。至于某个具体客户端是否暴露全部选项,需要看它的官方文档,梯子岛没有逐一核对,就写资料待核实。
接着读
- 协议 · Shadowsocks 是什么?Shadowsocks 协议与客户端
- 协议 · Trojan 协议是什么?Trojan 节点的原理与客户端支持
- 协议 · 代理协议怎么选?按场景与客户端倒推,不按名气选
- 教程 · Trojan 节点配置教程:客户端怎么填、哪里容易错
- 术语 · TLS是什么意思
- 术语 · 多路复用 Mux是什么意思