要在 iPhone 上使用 SOCKS5 代理,你需要一个代理客户端 App:iOS 根本没有 SOCKS5 设置。它的“设置” App 只提供 HTTP 代理,而且只对你设置的那个无线局域网生效。本文介绍如何用免费代理客户端 Potatso,让 SOCKS5 代理或 HTTP 代理在无线局域网和蜂窝数据下对整台 iPhone 或 iPad 生效。

文中会讲到住宅和数据中心代理服务商常用的 host:port:user:pass 格式,以及 UDP 会怎样处理。不确定该用哪种代理?请阅读 SOCKS5 和 HTTP 代理的区别。

iPhone 不装 App 能用 SOCKS5 代理吗?

不能。下面是 iOS 自身在设置 → 无线局域网 → ⓘ → 配置代理中提供的功能:

iOS“设置” 代理客户端 App
HTTP 代理 是 是
HTTPS 代理(与代理之间使用 TLS) 否 是
SOCKS5 否 是
蜂窝数据 否 是
所有无线局域网 否,需逐个设置 是
UDP 否 使用 SOCKS5 时支持

iOS 的设置也是按网络生效的,一旦切换到蜂窝数据或其他无线局域网就会失效。Potatso 这样的客户端 App 会添加一个 VPN 配置,接管你的所有流量并发往代理,无论你在哪个网络下。

准备工作

  • 一台运行 iOS 17 或更高版本的 iPhone 或 iPad。
  • 你的代理信息。服务商通常以下列形式之一提供:
    • 一行文本,例如 proxy.example.com:1080:alice:s3cret;
    • 一条链接,例如 socks5://alice:s3cret@proxy.example.com:1080;
    • 或分开的字段:主机、端口、用户名和密码。
  • 弄清该端口是 SOCKS5 还是 HTTP。很多服务商为两者使用不同端口,请查看服务商的控制面板。

第 1 步:安装 Potatso

从 App Store 下载 Potatso 并打开。轻点开始使用,为配置输入一个名称(例如“住宅”),然后轻点继续。

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

第 2 步:添加代理

通过 host:port:user:pass 格式添加

住宅和数据中心代理服务商通常每个代理给一行,由冒号分隔成四部分:

proxy.example.com:1080:alice:s3cret
部分 值 在 Potatso 中填到哪里
Host(主机) proxy.example.com 地址
Port(端口) 1080 端口
User(用户名) alice 用户名
Pass(密码) s3cret 密码

Potatso 不能直接读取这种四段格式。你可以按下文手动填写,也可以把它改写成链接再粘贴:

socks5://alice:s3cret@proxy.example.com:1080#Residential

在链接中,密码里的特殊字符需要百分号编码:p:ss 写作 p%3Ass,@ 写作 %40。有些服务商会把国家或粘性会话等选项放进用户名,例如 alice-country-us。请原样复制用户名,连字符也不能少。

IP 白名单。 有些服务商不用密码,只接受来自你登记过的 IP 地址的连接。iPhone 在无线局域网和蜂窝数据之间切换时 IP 地址会变,所以如果服务商支持,请使用用户名和密码认证。

手动添加

  1. 轻点手动输入服务器。
  2. 输入名称,并将协议选为 SOCKS5。如果是 HTTP 代理,请选择 HTTP。
  3. 填写地址和端口。
  4. 打开认证,然后输入用户名和密码。没有登录信息的代理请保持关闭。
  5. 只有当服务商说明代理使用 TLS(SOCKS5 over TLS 或 HTTPS 代理)时,才打开 TLS。在 TLS 设置中,你可以为自签名证书设置证书固定(SHA-256)。
  6. 对于 SOCKS5,如果服务商转发 UDP,请保持 UDP 转发开启,否则将其关闭。见 UDP 转发。
  7. 轻点存储(对勾)。

通过链接或二维码添加

如果你有链接,复制它,然后轻点粘贴链接,再轻点粘贴。Potatso 能读取 socks5://、socks5h://、socks:// 和 socks5+tls:// 链接,以及 http:// 和 https:// 代理链接。如果是二维码,请轻点扫描二维码。包含 SOCKS5 或 HTTP 代理的 Clash、Surge 和 Xray 配置也能导入。

代理添加好后,轻点继续。

让 HTTP 代理对 iPhone 整机生效

把协议选为 HTTP,其余步骤相同:Potatso 会让所有 App 在任何网络下都经过这个 HTTP 代理,而不只是某一个无线局域网。如果是 HTTPS 代理,请选择 HTTP 并打开 TLS。

请注意,HTTP 代理只承载 TCP。网站和大多数 App 都能正常使用,但 UDP 流量无法经过它。请使用代理的 CONNECT 端口,而不是只转发普通网页的端口。

第 3 步:选择路由

只有一个代理时,选择全局,让所有流量都经过它,然后轻点底部的按钮,例如使用 Residential。如果你导入的配置带有规则,也可以改选规则。

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

第 4 步:允许 VPN 并连接

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

状态会先变为正在连接…,再变为已连接。要确认是否生效,用 Safari 打开一个“查询我的 IP”网站:它显示的应该是代理的 IP 地址,而不是你自己的。

UDP 转发:通话和游戏会怎样

语音和视频通话、很多游戏以及 QUIC 都使用 UDP。并不是每种代理都能转发它:

代理 规则模式下的 UDP 全局模式下的 UDP
SOCKS5,UDP 转发开启 经过代理 经过代理
SOCKS5,UDP 转发关闭 由下一条匹配的规则决定,否则直连 无法使用
HTTP 或 HTTPS 由下一条匹配的规则决定,否则直连 无法使用

有两点需要了解:

  • 直连发出的 UDP 使用的是你的真实 IP 地址,而不是代理的。如果你用代理是为了隐藏 IP,请使用能转发 UDP 的 SOCKS5 代理。
  • 使用 SOCKS5 over TLS 时,只有 TCP 是加密的。UDP 在 TLS 之外发往服务器。

UDP 不通时,浏览器会退回到 TCP,所以网站仍能打开,但通话和游戏可能无法使用。

连不上怎么办

  • 用户名或密码不对。 如果代理要求登录而认证没有打开,Potatso 不会连接。请检查用户名,包括服务商附加在里面的选项。
  • SOCKS5 和 HTTP 端口弄混了。 在 HTTP 端口上用 SOCKS5(或者反过来),服务器都不会响应。请确认每个端口对应的协议。
  • IP 白名单。 向服务商登记你当前的 IP 地址,或改用密码认证。
  • 通过 HTTP 代理只能打开部分网站。 有些代理只允许 CONNECT 到 443 端口。请咨询服务商。
  • 使用 TLS 时出现证书错误。 请固定代理的证书,或仅在测试时打开跳过证书验证。
  • 选项不受支持。 Potatso 不支持 SOCKS4、GSSAPI 认证和 Digest 认证。
  • 某个 App 就是用不了。 有些 App 会屏蔽数据中心和代理的 IP 地址。见某个 App 或网站打不开。

每一项设置都列在 SOCKS5 参考和 HTTP 和 HTTPS 参考中。遇到其他问题,请参阅故障排除。

下一步

常见问题

iPhone 原生支持 SOCKS5 代理吗?
不支持。iOS 的“设置” App 只能设置 HTTP 代理,而且一次只对一个无线局域网生效。要使用 SOCKS5 代理,你需要 Potatso 这样的客户端 App,由它把流量发往代理。
iPhone 用蜂窝数据时能用代理吗?
用 iOS“设置”不行,它的代理选项只针对无线局域网。Potatso 这类代理客户端 App 使用 VPN 配置,所以代理在无线局域网和蜂窝数据下都能用。
在 iPhone 上怎么填 host:port:user:pass?
按冒号把这一行拆开:第一部分是地址,然后依次是端口、用户名和密码。把它们填进 Potatso 的服务器表单,或改写成 socks5://user:pass@host:port 这样的链接再粘贴。
SOCKS5 代理会加密我的流量吗?
不会。普通 SOCKS5 以明文发送你的密码和访问的网站,不过 HTTPS 网站仍然是端到端加密的。如果服务商提供 SOCKS5 over TLS,请使用它来加密发往代理的 TCP 流量。
Potatso 免费吗?
免费。Potatso 可在 App Store 免费下载,支持 iOS 17 或更高版本的 iPhone 和 iPad。部分可选的 Pro 功能(如使用多个配置)需要订阅。

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