Skip to content

AnyTLS

iPhone 版 Potatso 支持的 AnyTLS TLS 设置、链接和功能,包括 REALITY、ECH、连接复用和填充。

Updated 以 Markdown 查看

AnyTLS 服务器由密码和 TLS 设置描述。AnyTLS 运行在 TLS 之中并对流量做填充,所以连接看起来就像一次普通的 HTTPS 访问,不会露出 TLS 内部代理的常见特征。只要 Potatso 支持服务器的 TLS 设置,就能连接到它。你可以对照下面的表格,检查服务商提供的服务器设置,或其 anytls:// 链接中的设置。

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

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

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

TLS

设置 Clash 键 链接参数 支持情况
服务器名称(SNI) sni sni ✅ 未设置时,Potatso 使用服务器地址。
ALPN alpn alpn ✅ 未设置时,Potatso 与 Clash 一样不发送 ALPN。
跳过证书验证 skip-cert-verify insecure ✅
证书固定(SHA-256) fingerprint hpkp ✅
浏览器指纹 client-fingerprint fp ✅ chrome、firefox、safari、ios、android、edge 和 random。其他名称使用默认握手连接。
REALITY reality-opts ✅
Encrypted Client Hello(ECH) ech-opts ✅ 需要订阅中带有 ECH 配置,或能从 DNS 中查到
自定义 CA 证书 ❌
TLS 客户端证书 certificate, private-key ❌

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

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

如果服务器需要 TLS 客户端证书,Potatso 不会导入它,因为服务器会拒绝连接。

REALITY

REALITY 服务器借用另一个网站的 TLS 证书,所以不需要自己的证书。sing-box 服务器可以让 AnyTLS 搭配 REALITY 使用。请按服务商提供的内容设置服务器的 Reality 公钥和 Reality Short ID,并把服务器名称设为服务器所借用的网站。REALITY 需要浏览器指纹,如 chrome。

连接

AnyTLS 会复用它的 TLS 连接:与某个网站的连接结束后,下一条连接会使用同一条 TLS 连接,而不是新开一条。每条 TLS 连接同一时间只承载一条连接,所以同时有多条连接时会打开多条 TLS 连接,它们之后都会被复用。

设置 Clash 键 支持情况
检查空闲连接的频率 idle-session-check-interval ✅ 单位为秒,默认 30
空闲连接保持打开的时长 idle-session-timeout ✅ 单位为秒,默认 60
保持打开的空闲连接数量 min-idle-session ✅ 默认 1

小于或等于 5 秒的值按 30 秒处理,与 Clash 一致。这些设置来自 Clash 订阅。对于手动添加或通过链接添加的服务器,Potatso 使用默认值。

Surge 配置中的 reuse=false 不会生效:与 AnyTLS 规范一样,Potatso 始终复用连接。Potatso 会导入该服务器并显示警告。

填充

AnyTLS 会对每条连接的开头做填充,以隐藏会暴露代理的数据大小。服务器可以发送自己的填充方案,Potatso 按 AnyTLS 的定义,从下一条 TLS 连接起使用它。你的设备上无需设置任何内容。

UDP

AnyTLS 在它的 TLS 连接内承载 UDP(UDP over TCP)。与 Clash 一样,UDP 默认关闭。如果你的服务器转发 UDP,请在服务器设置中开启 UDP 转发。Clash 订阅用 udp: true 开启它,Surge 配置则总是开启。

功能支持

功能 支持情况
AnyTLS 协议 v2:密码、填充、连接复用 ✅
服务器发送的填充方案 ✅
UDP over TCP ✅
空闲连接设置 ✅
REALITY、ECH ✅
证书固定、浏览器指纹 ✅
自定义 CA、TLS 客户端证书 ❌
anytls:// 链接 ✅

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

密码错误时,服务器会关闭连接。如果 AnyTLS 服务器始终连不上,请先检查密码。

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

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

参数沿用 anytls-go 格式,外加一些 App 额外添加的参数:

参数 说明
sni TLS 服务器名称。
insecure 1 表示关闭证书验证。
alpn ALPN 列表,用逗号分隔并经百分号编码。
fp 浏览器指纹。
hpkp 服务器证书的 SHA-256。

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

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

基本服务器:

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

自签名证书,不做验证:

anytls://secret@203.0.113.7/?insecure=1#Self-signed

Chrome 指纹、ALPN 列表和固定的证书:

anytls://secret@anytls.example.com:443/?sni=anytls.example.com&alpn=h2%2Chttp%2F1.1&fp=chrome&hpkp=abababababababababababababababababababababababababababababababab#Shaped
导航

Type to search…

↑↓ navigate↵ selectEsc close