要在 iPhone 或 iPad 上使用 AnyTLS,你需要一款支持该协议的客户端 App、一个 anytls:// 链接或服务器的密码和 TLS 设置,再花上几分钟。本文以免费的 iOS 代理客户端 Potatso 为例,完整讲解配置过程,包括 AnyTLS 特有的设置:服务器名称、证书固定、指纹和 UDP。

刚接触这个协议?请先阅读 AnyTLS 是什么?

准备工作

  • 一台运行 iOS 17 或更高版本的 iPhone 或 iPad。
  • 一台 AnyTLS 服务器,来自服务商,或者是你自己的 anytls-go、sing-box 或 mihomo 服务器。你会拿到以下其中一种:
    • 一个 anytls:// 链接,如 anytls://secret@anytls.example.com:443/?sni=anytls.example.com#Tokyo;
    • 该链接的二维码;
    • 一个包含 AnyTLS 服务器的 Clash / Mihomo 订阅 URL 或 Surge 配置;
    • 原始设置:地址、端口、密码和 TLS 服务器名称。

sing-box 配置? Potatso 暂时还不能从 sing-box 配置导入 AnyTLS 服务器。请向服务商索取,或者自己生成服务器的 anytls:// 链接。

第 1 步:安装 Potatso

从 App Store 下载 Potatso 并打开。轻点开始使用,为你的配置输入一个名称,比如“个人”,然后轻点继续。配置包含你的服务器、规则和 DNS 设置。

第 2 步:添加 AnyTLS 服务器

添加你的服务器这一步提供四种方式,选择与你手头内容相符的那一种。

通过 anytls:// 链接或订阅 URL 导入

  1. 复制 anytls:// 链接或订阅 URL。
  2. 在 Potatso 中轻点粘贴链接,然后轻点粘贴。

Potatso 会读取密码、地址和端口,以及链接中的以下参数:

参数 设置的内容
sni TLS 服务器名称。没有时,Potatso 使用服务器地址。
insecure=1 关闭证书验证。
hpkp 用 SHA-256 固定服务器证书。
fp 浏览器指纹,如 chrome。
alpn ALPN 列表,如 h2,http/1.1。

订阅导入后会持续更新。完整流程见 Clash 订阅怎么导入 iPhone。

通过二维码导入

轻点扫描二维码,将相机对准二维码。如果二维码是相册里的一张截图,请轻点扫描器角落的照片按钮并选取这张图片。

手动输入

  1. 轻点手动输入服务器。
  2. 输入名称,并将协议选为 AnyTLS。
  3. 填写地址和端口(通常是 443)。
  4. 输入密码,与服务器上的完全一致。
  5. 轻点 TLS 设置,填写服务器需要的内容:
    • 服务器名称:服务器证书上的域名。如果你本来就用这个域名连接,可以留空。
    • 证书固定(SHA-256):证书的 SHA-256,用于自签名证书。
    • 客户端指纹:要模仿的浏览器,如 chrome。
    • ALPN:只有服务器要求时才填写。
    • 跳过证书验证:除非是在测试,否则保持关闭。
  6. 如果是使用 REALITY 的 sing-box 服务器,请填写 Reality 公钥和 Reality Short ID,把服务器名称设为服务器借用的网站,并选择一个指纹。
  7. 如果你的服务器会转发 UDP,请打开 UDP 转发。
  8. 轻点存储(对勾)。

服务器添加完成后,这一步会变为已添加服务器。轻点继续。

固定证书,不要跳过验证。 许多自建 AnyTLS 服务器使用自签名证书。跳过验证会让中间的任何人都能读取你的流量,而证书固定只信任那一张证书。

第 3 步:选取路由

你选择的同时,Potatso 会测试每台服务器的延迟:

  • 全局:所有流量都经过你选的服务器。只有一台服务器时,这是最简单的选择。
  • 规则:由配置中的规则决定哪些流量走代理、哪些直连。导入内容带有规则时才会提供,大多数 Clash 订阅都带有规则。

选择你的 AnyTLS 服务器,然后轻点底部的按钮,如使用 Tokyo。如果某台服务器在这里没有显示延迟,最好先检查一下再继续:见连不上怎么办。

选择出站服务器,显示每台服务器的协议和延迟

第 4 步:允许 VPN 并连接

Potatso 通过设备上的 VPN 配置让流量经过代理,iOS 会请你批准一次。

  1. 轻点添加 VPN 配置,iOS 询问时轻点允许。
  2. 在首页,打开状态卡片上的开关。

状态会变为正在连接…,然后变为已连接,状态栏中会出现 VPN 图标。打开一个网站,确认能正常加载。

连接状态下的 Potatso 首页

连不上怎么办

AnyTLS 的问题几乎都出在密码或 TLS 设置上。

密码错误

AnyTLS 不会为错误的密码返回错误信息,服务器只会关闭连接。在 Potatso 中,这表现为服务器没有延迟,或者网站一直加载不出来。请重新复制密码,逐个字符核对。在 anytls:// 链接中,密码里的特殊字符必须经过百分号编码,所以手动改过的链接可能会把密码弄坏。

证书错误

  • 服务器名称不匹配。 如果你用 IP 地址或证书上没有的域名连接,请把服务器名称(sni)设为证书对应的域名。
  • 自签名证书。 除非固定证书,否则验证会失败。请向服务商索取 SHA-256,或在链接中设置 hpkp。
  • 固定值错误。 服务器更换证书后,旧的固定值就不再匹配。请更新固定值。
  • 客户端证书。 Potatso 不支持 AnyTLS 使用 TLS 客户端证书或自定义 CA,因此不会导入需要它们的服务器。

REALITY 连不上

对照服务器核对公钥和 Short ID,并确认服务器名称是所借用的网站,而不是你服务器的地址。REALITY 需要浏览器指纹,如 chrome。

UDP 用不了

语音通话、部分游戏和 QUIC 需要 UDP。和 Clash 一样,AnyTLS 服务器默认关闭 UDP 转发,所以 Potatso 不会经该服务器发送 UDP。如果服务器会转发 UDP,请在该服务器的设置中打开它。Clash 订阅中用 udp: true 开启。

从 Surge 导入时出现警告

Surge 的 reuse=false 设置不起作用。Potatso 与 AnyTLS 规范一致,始终复用连接,并在导入时显示一条警告。服务器仍然可以正常使用。

如果以上都没有帮助,请运行设置 → 故障排除中的引导检查,详见 VPN 连接不上。每一项支持的设置都列在 AnyTLS 参考中。

下一步

  • 想知道什么时候该选 AnyTLS?在代理协议对比中把它与 Trojan、VLESS、Hysteria 2 和 Shadowsocks 比较一下。
  • 也有 Trojan 服务器?请看 iPhone 怎么用 Trojan。
  • 同一个服务商给了很多服务器?把它们分组,让 Potatso 自动选最快的:代理组和测速。

常见问题

iPhone 上能用 AnyTLS 吗?
可以,只要客户端 App 支持这个协议。Potatso 是一款适用于 iPhone 和 iPad 的免费代理客户端,可以通过 anytls:// 链接、Clash 或 Mihomo 订阅、Surge 配置或手动填写的设置连接 AnyTLS 服务器。
为什么我的 AnyTLS 服务器一直连不上?
最常见的原因是密码错误:服务器会直接关闭连接,所以看起来像超时或延迟测试失败。其次请检查服务器名称(SNI)和证书设置,它们必须与服务器的 TLS 证书相符。
自签名证书需要打开 insecure 模式吗?
请避免这样做。跳过证书验证会让你与服务器之间的任何人都能读取你的流量。请改为固定服务器证书:把它的 SHA-256 填为证书固定值,也就是 anytls:// 链接中的 hpkp 参数。
为什么通过 AnyTLS 服务器打不了语音电话?
通话和许多游戏使用 UDP,而和 Clash 一样,Potatso 默认为 AnyTLS 服务器关闭“UDP 转发”。如果你的服务器会转发 UDP,请在该服务器的设置中打开“UDP 转发”。

其他语言版本: English · 繁體中文 · 日本語 · Русский