要在 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 并打开。轻点开始使用,为配置输入一个名称(例如“住宅”),然后轻点继续。

第 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 地址会变,所以如果服务商支持,请使用用户名和密码认证。
手动添加
- 轻点手动输入服务器。
- 输入名称,并将协议选为 SOCKS5。如果是 HTTP 代理,请选择 HTTP。
- 填写地址和端口。
- 打开认证,然后输入用户名和密码。没有登录信息的代理请保持关闭。
- 只有当服务商说明代理使用 TLS(SOCKS5 over TLS 或 HTTPS 代理)时,才打开 TLS。在 TLS 设置中,你可以为自签名证书设置证书固定(SHA-256)。
- 对于 SOCKS5,如果服务商转发 UDP,请保持 UDP 转发开启,否则将其关闭。见 UDP 转发。
- 轻点存储(对勾)。
通过链接或二维码添加
如果你有链接,复制它,然后轻点粘贴链接,再轻点粘贴。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 并连接
- 轻点添加 VPN 配置,iOS 询问时轻点允许。
- 在首页,打开状态卡片上的开关。
状态会先变为正在连接…,再变为已连接。要确认是否生效,用 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 参考中。遇到其他问题,请参阅故障排除。
下一步
- 需要加密,或更难被识别特征的方案?在代理协议对比中把 SOCKS5 与 Shadowsocks 等协议比较一下。
- 有一个包含很多代理的订阅?见 iPhone 如何导入 Clash 订阅。
常见问题
- 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 功能(如使用多个配置)需要订阅。