Skip to content

Trojan

iPhone 版 Potatso 支持的 Trojan 传输方式、TLS 选项、链接和功能,包括 WebSocket、gRPC、REALITY 和 ECH。

Updated 以 Markdown 查看

Trojan 服务器由密码和 TLS 设置描述,还可以搭配用来承载连接的传输方式,如 WebSocket 或 gRPC。Trojan 始终运行在 TLS(或 REALITY)之中,所以在旁观者看来,这条连接就像一次普通的 HTTPS 访问。只要 Potatso 支持服务器的传输方式和 TLS 设置,就能连接到它。你可以对照下面的表格,检查服务商提供的服务器设置,或其 trojan:// 链接中的设置。

你可以手动添加 Trojan 服务器、通过 trojan:// 链接添加,或通过导入添加:

  • Clash 或 Mihomo 订阅,
  • Xray 或 V2Ray 配置,
  • Surge 配置。

Potatso 暂不从 sing-box 配置中导入 Trojan 服务器。请改用服务器的 trojan:// 链接。

传输方式

传输方式 链接 type 支持情况 测试环境
仅 TLS(无传输方式) tcp,或不填 ✅ Xray、sing-box、trojan-go
WebSocket ws ✅ 支持或不支持 early data 均可 Xray、sing-box、trojan-go
gRPC grpc ✅ Xray、sing-box
HTTP/2 http 或 h2 ✅ sing-box
HTTP Upgrade httpupgrade ✅ Xray、sing-box
XHTTP xhttp ❌
mKCP、QUIC kcp, quic ❌

所有传输方式都支持 UDP。如果服务器使用的传输方式 Potatso 不支持,Potatso 不会导入它。

Xray 已不再提供 HTTP/2:原本使用它的 Xray 服务器现在改用 XHTTP,而 Potatso 暂不支持 XHTTP。

TLS

设置 Clash 键 链接参数 支持情况
服务器名称(SNI) sni sni, peer ✅ 未设置时,Potatso 使用服务器地址。
ALPN alpn alpn ✅ 未设置时,Potatso 发送 h2, http/1.1;WebSocket 和 HTTP Upgrade 发送 http/1.1;gRPC 和 HTTP/2 发送 h2。
跳过证书验证 skip-cert-verify allowInsecure, insecure ✅
证书固定(SHA-256) fingerprint ✅
浏览器指纹 client-fingerprint fp ✅ chrome、firefox、safari、ios、android、edge 和 random。其他名称使用默认握手连接。
REALITY reality-opts security=reality, pbk, sid ✅ 无传输方式或搭配 gRPC
Encrypted Client Hello(ECH) ech-opts ech ✅ 需要链接或订阅中带有 ECH 配置
自定义 CA 证书 ❌
TLS 客户端证书 certificate, private-key ❌

关闭证书验证,会让你与服务器之间的任何人都能读取你的流量。如果服务器使用自签名证书,请改为固定该证书:把证书的 SHA-256 设为证书固定值。

浏览器指纹会让连接的 TLS 握手看起来像该浏览器的握手,但不会改变服务器必须支持的内容。

REALITY

REALITY 服务器借用另一个网站的 TLS 证书,所以不需要自己的证书。请按服务商提供的内容设置服务器的公钥和短 ID,并把服务器名称设为服务器所借用的网站。REALITY 需要浏览器指纹:当你的链接或设置中没有指纹时,Potatso 使用 chrome。

REALITY 适用于无传输方式和 gRPC。如果 REALITY 服务器使用其他传输方式,Potatso 不会导入它。

多路复用

Potatso 可以借助 sing-box 的多路复用(smux、yamux 或 h2mux),让多条连接共用一条 Trojan 连接;在 Clash 订阅中用 smux 设置。服务器必须开启多路复用。TCP 和 UDP 均可使用。

trojan-go 自己的多路复用(trojan-go 服务器中的 mux)是另一种协议,Potatso 不支持。不使用它时,trojan-go 服务器仍会接受 Potatso 的连接。

UDP

Trojan 通过与 TCP 相同的 TLS 连接承载 UDP。与 Clash 一样,UDP 默认关闭。如果你的服务器转发 UDP,请在服务器设置中开启 UDP 转发:Xray、sing-box 和 trojan-go 都支持。Clash 订阅用 udp: true 开启它。

功能支持

功能 支持情况
Trojan 协议:密码哈希、CONNECT ✅
Trojan UDP ASSOCIATE ✅
不带 TLS 的 Trojan(security=none) ❌
一台服务器多个用户 ✅ 各自使用自己的密码
WebSocket、gRPC、HTTP/2 和 HTTP Upgrade 传输 ✅ 见传输方式
XHTTP、mKCP 和 QUIC 传输 ❌
REALITY ✅ 无传输方式或搭配 gRPC
ECH ✅
sing-box 多路复用(smux、yamux、h2mux) ✅
trojan-go 多路复用 ❌
trojan-go 的 Shadowsocks 加密(ss-opts、encryption=ss;…) ❌
Trojan 外层的 ShadowTLS、Restls 或 JLS ❌
trojan:// 和 trojan-go:// 链接 ✅

每一项受支持的功能,都至少用一台真实的 Trojan 服务器测试过:Xray、sing-box 或 trojan-go。

密码错误时,Trojan 服务器会像普通网站一样应答(即回落)。此时 Potatso 无法连接,也不会提示密码错误:如果 Trojan 服务器始终连不上,请先检查密码。

如果服务器使用 trojan-go 的 Shadowsocks 加密,或在 Trojan 外层使用 ShadowTLS、Restls 或 JLS,Potatso 不会导入它,因为不带这些内容连接,服务器不会应答。

trojan-go 的某些功能是它自带客户端程序的设置,Potatso 用自己的方式完成同样的工作:

  • 路由:请使用配置中的规则。
  • 本地 SOCKS5 和 HTTP 服务器,以及转发:Potatso 自行捕获设备的流量。

trojan:// 链接用一行文字包含完整的服务器信息:

trojan://password@host:port?parameters#name
部分 说明
password 密码,经百分号编码。@ 之前的全部内容都是密码,包括其中的 :。
host 服务器地址。IPv6 地址要放在方括号里,如 [2001:db8::1]。
port 服务器端口。缺省时,Potatso 使用 443。
name 可选。服务器在 Potatso 中的名称。

参数沿用 Xray 和 v2rayN 使用的格式:

参数 说明
security tls(默认)或 reality。
type 传输方式:tcp、ws、grpc、http(HTTP/2)或 httpupgrade。
sni, peer TLS 服务器名称。
alpn ALPN 列表,用逗号分隔并经百分号编码。
fp 浏览器指纹。
allowInsecure 1 表示关闭证书验证。
host WebSocket、HTTP/2 和 HTTP Upgrade 的 HTTP Host。
path WebSocket、HTTP/2 和 HTTP Upgrade 的路径。像 /ws?ed=2048 这样的 WebSocket 路径会开启 early data。
serviceName gRPC 服务名称。
pbk, sid REALITY 的公钥和短 ID。
ech ECH 配置,经 Base64 编码和百分号编码。

Potatso 也能导入 trojan-go:// 链接,只要其中是 type=original(无传输方式)或 type=ws。带有 encryption 参数的链接不会被导入,因为它需要 trojan-go 的 Shadowsocks 加密。

分享 Trojan 服务器时,Potatso 提供带有相同参数的 trojan:// 链接。

每个示例都是要导入的链接。密码是 secret。

基本服务器:

trojan://secret@trojan.example.com:443?sni=trojan.example.com#Basic

通过 cdn.example.com 的 WebSocket:

trojan://secret@trojan.example.com:443?security=tls&type=ws&host=cdn.example.com&path=%2Fws#WebSocket

服务名称为 TrojanGun 的 gRPC:

trojan://secret@trojan.example.com:443?security=tls&type=grpc&serviceName=TrojanGun#gRPC

HTTP/2:

trojan://secret@trojan.example.com:443?security=tls&type=http&host=cdn.example.com&path=%2Fh2#HTTP2

HTTP Upgrade:

trojan://secret@trojan.example.com:443?security=tls&type=httpupgrade&host=cdn.example.com&path=%2Fup#Upgrade

借用 www.example.com 的 REALITY:

trojan://secret@trojan.example.com:443?security=reality&sni=www.example.com&pbk=Z84J2IelR9ch3k8VtlVhhs5ycBUlXA7wHBWcBrjqnAw&sid=0123abcd&fp=chrome#REALITY
导航

Type to search…

↑↓ navigate↵ selectEsc close