iOS 本身没有 Trojan 设置,所以要在 iPhone 上使用 Trojan,你需要一个支持该协议的客户端 App。本文介绍如何把 Trojan 服务器添加到免费的 iPhone 和 iPad 代理客户端 Potatso 中:通过 trojan:// 链接、二维码、订阅或手动添加,包括 WebSocket、gRPC 和 REALITY 服务器。

还不了解这个协议?建议先读 Trojan 协议是什么?

准备工作

  • 一台运行 iOS 17 或更高版本的 iPhone 或 iPad。
  • 一台 Trojan 服务器。服务商通常会给你以下其中一种:
    • 一条 trojan:// 链接,例如 trojan://secret@trojan.example.com:443?sni=trojan.example.com#Tokyo;
    • 这条链接的二维码;
    • 一个包含多台服务器的订阅 URL;
    • 或原始参数:地址、端口(通常是 443)、密码,以及传输方式或 REALITY 设置(如果有)。

先确认传输方式。 如果服务商提到了 WebSocket(ws)、gRPC、路径、服务名称或 REALITY,你还需要这些参数。用链接或订阅导入时,这些参数会一并带上。

第 1 步:安装 Potatso

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

Potatso 欢迎页面,带有“开始使用”按钮

第 2 步:添加 Trojan 服务器

添加你的服务器这一步提供四种添加方式。按服务商给你的内容选择对应的一种。

通过 trojan:// 链接或订阅 URL 添加

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

Potatso 会从链接中读取传输方式、服务器名称、REALITY 密钥等设置。它还能导入 trojan-go:// 链接、Clash 和 Mihomo 订阅,以及 Xray、V2Ray 和 Surge 配置。如果某台服务器用到了 Potatso 不支持的功能,导入时会说明原因,而不是添加一台连不上的服务器。

通过二维码添加

轻点扫描二维码,把摄像头对准二维码。如果二维码是相册里的截图,请轻点扫描器角落的照片按钮,然后选取那张图片。

手动添加

  1. 轻点手动输入服务器。
  2. 输入名称,并将协议选为 Trojan。
  3. 填写地址和端口。
  4. 按服务商提供的内容原样输入密码。
  5. 按下文说明设置传输、TLS 设置和 UDP。
  6. 轻点存储(对勾)。

Trojan 始终启用 TLS,所以不需要另外打开。

传输方式:WebSocket 和 gRPC

纯 Trojan 服务器的传输保持 TCP 即可。否则请选择服务器使用的那一种:

传输方式 需要填写的字段 示例
WebSocket 主机、路径 cdn.example.com、/ws
gRPC 服务名称 TrojanGun
HTTP/2 主机、路径 cdn.example.com、/h2
HTTPUpgrade 主机、路径 cdn.example.com、/up

路径和服务名称必须与服务器完全一致,包括大小写。像 /ws?ed=2048 这样的 WebSocket 路径还会开启 early data,连接时可以省去一次往返。

服务器名称(SNI)和 TLS 设置

轻点 TLS 设置查看 TLS 选项:

  • 服务器名称:在 TLS 握手中发送的名称,也叫 SNI。留空则使用地址。当证书的域名与地址不同时需要设置,例如连接的是 IP 地址或经过 CDN 时。
  • 客户端指纹:让握手看起来像浏览器发出的,例如 chrome 或 safari。服务商列出了指纹时填写。
  • ALPN:除非服务商给出了值,否则留空。
  • 证书固定(SHA-256):用于使用自签名证书的服务器。固定后只接受这一张证书。
  • 跳过证书验证:接受任何证书。请避免使用,因为你和服务器之间的任何人都可能因此读取你的流量。请改用证书固定。

REALITY

REALITY 服务器借用另一个网站的 TLS 握手。请填写:

  1. Reality 公钥和 Reality Short ID,按服务商提供的内容填写。
  2. 服务器名称(在 TLS 设置中):服务器借用的网站,例如 www.example.com。
  3. Reality 指纹(如果服务商列出了)。不填时,Potatso 使用 chrome。

REALITY 可以不使用传输方式(TCP),也可以搭配 gRPC。

UDP 转发默认关闭

语音和视频通话、很多游戏以及 QUIC 都使用 UDP。和 Clash 一样,Trojan 服务器的 UDP 转发默认关闭。如果你的服务器转发 UDP,请把它打开。Xray、sing-box 和 trojan-go 服务器都会转发 UDP。Clash 订阅中用 udp: true 来开启它。

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

第 3 步:选择路由

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

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

选好服务器后,轻点底部的按钮,例如使用 Tokyo。

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

第 4 步:允许 VPN 并连接

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

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

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

Potatso 首页,以规则模式通过 Trojan 服务器连接

连不上怎么办

Trojan 的问题通常是某一项设置与服务器不一致造成的:

  • 密码错误。 Trojan 服务器不会报告密码错误,而是像普通网站一样回应,所以连接就是一直不通。请先检查密码。
  • 证书错误。 证书必须对服务器名称有效;服务器名称留空时,则须对地址有效。如果通过 IP 地址连接,请把服务器名称设为证书的域名。对于自签名证书,请设置证书固定(SHA-256)。
  • 传输参数不对。 WebSocket 服务器的路径或主机不一致,或 gRPC 服务器的服务名称不一致,都会被拒绝连接。请与服务商提供的设置核对,或重新导入链接。
  • REALITY 不匹配。 公钥、短 ID 和服务器名称都必须与服务器一致。不支持 REALITY 搭配 WebSocket 或 HTTP/2。
  • 服务器不受支持。 Potatso 不支持 XHTTP、mKCP 和 QUIC 传输,不支持 trojan-go 的 Shadowsocks 加密,也不支持套在 Trojan 外层的 ShadowTLS、Restls 和 JLS。
  • 只有通话或游戏不通。 开启 UDP 转发,并确认服务器转发 UDP。

支持的传输方式、TLS 选项和链接参数的完整列表见 Trojan 参考。遇到其他问题,可以使用 Potatso 中设置 > 故障排除下的引导式检查,详见故障排除。

下一步

常见问题

iPhone 不装 App 能用 Trojan 吗?
不能。iOS 只内置了按无线局域网设置的 HTTP 代理,以及 IKEv2 等 VPN 类型。要使用 Trojan 服务器,你需要 Potatso 这样支持 Trojan 协议的客户端 App。
为什么我的 Trojan 服务器 UDP 不通?
和 Clash 一样,Trojan 服务器的 UDP 转发默认关闭。如果你的服务器转发 UDP(Xray、sing-box 和 trojan-go 服务器都会),请在 Potatso 中打开该服务器的设置,开启 UDP 转发。
服务器名称(SNI)该填什么?
通常不用填:Potatso 会使用服务器地址。只有当证书的域名与地址不同时才需要设置服务器名称,例如通过 IP 地址连接时;使用 REALITY 时,它是服务器借用的那个网站。
Potatso 支持 trojan-go 链接吗?
支持。Potatso 可以导入不带传输方式或使用 WebSocket 的 trojan-go:// 链接。需要 trojan-go 的 Shadowsocks 加密的链接无法导入,也不支持 trojan-go 自己的多路复用。
Potatso 免费吗?
免费。Potatso 可在 App Store 免费下载,支持 iOS 17 或更高版本的 iPhone 和 iPad。部分可选的 Pro 功能(如使用多个配置)需要订阅。

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