Skip to content
文章 / 1 分钟阅读

iOS 代理设置:为什么 iPhone 和 iPad 的 Wi-Fi 代理仅支持 HTTP,以及如何使用 SOCKS5

iOS Wi-Fi 代理设置没有 SOCKS5 选项,只有服务器和端口。下面说明这个 HTTP 代理能做什么、不能做什么,支持 SOCKS5 的应用在 iOS 上如何工作,以及如何验证你没有发生泄漏。

iOS 代理设置看起来很简单:一个服务器、一个端口和一个密码。它们没有提供的是 SOCKS5 选项。这让想要通过 SOCKS5 代理路由 iPhone 或 iPad 流量的用户感到意外。本指南解释内置 Wi-Fi 代理能做什么、为什么 SOCKS5 在 iOS 上需要不同的方法,以及如何验证你的流量确实走了代理。

iOS Wi-Fi 代理设置实际支持什么

在 iPhone 或 iPad 上,前往“设置”>“Wi-Fi”,轻点已连接网络旁边的信息按钮,然后选择“配置代理”。你可以选择“关闭”、“手动”或“自动”。“手动”会要求填写:

  • 服务器
  • 端口
  • 认证信息(如需要)

没有用于选择 HTTP、HTTPS、SOCKS4 或 SOCKS5 的协议下拉菜单。内置设置是 HTTP 代理。它可以处理 HTTP 请求,并且通常通过 HTTP CONNECT 方法处理 HTTPS 流量,但它不是 SOCKS5 代理。

用内置 HTTP 代理可以做什么

当你有一个支持 HTTPS 隧道的 HTTP 代理时,内置代理很有用。它可用于尊重 iOS 系统代理的浏览器和应用。然而:

  • 它不接受 SOCKS5 凭据或 SOCKS5 特有选项。
  • 它可能无法覆盖所有应用。有些应用使用自己的网络栈,并忽略系统代理设置。
  • 与桌面操作系统相比,它的绕过控制有限。
  • 当你需要远程 DNS 和更广泛的流量路由时,它不能替代 VPN 或支持 SOCKS5 的应用。

为什么 SOCKS5 在 iOS 上需要不同的方法

iOS 应用处于沙盒环境中。普通应用无法轻松创建一个其他所有应用都能使用的本地 SOCKS5 监听器。要通过 SOCKS5 路由系统范围的流量,你通常需要一个能创建 Network Extension 或 Personal VPN 配置描述文件的应用。这些应用可以接受 SOCKS5 服务器,并根据规则路由流量。

常见示例包括 Shadowrocket、Quantumult 和 Potatso,但它们的功能、可用性以及在 App Store 的上架情况因地区而异,并且会随时间变化。在依赖某一款应用之前,请查看当前的应用列表和文档。本指南不背书任何特定的付费应用,也不声称任何应用适合所有用例。

在 VPN 配置描述文件应用中设置 SOCKS5 代理

具体步骤取决于应用,但总体流程相似:

  1. 安装一款明确支持 SOCKS5 的信誉良好的应用。
  2. 添加新的代理或服务器配置。
  3. 输入主机、端口和认证信息。
  4. 如果应用询问,选择 SOCKS5 作为协议。
  5. 在全局路由和基于规则的路由之间做出选择。
  6. 当 iOS 提示你时,允许 VPN 配置。
  7. 启用配置描述文件并进行测试。

请记住,该应用可以看到连接元数据。使用可信的提供商,保持应用更新,并避免通过你无法控制的代理发送敏感数据。

你能在 iPhone 上使用 SSH 动态转发吗?

iOS 上的 SSH 客户端可以创建本地端口转发,但这些端口通常只能在同一应用内使用。由于沙盒机制,你通常无法从另一个 SSH 应用将 Safari 或其他应用指向 127.0.0.1:1080。一些代理应用直接集成 SSH 隧道;如果你需要该功能,请查看应用的文档,而不是想当然地认为它可以工作。

如何在 iPhone 和 iPad 上验证代理

  1. 打开 Safari,在启用代理的情况下检查你的公网 IP。
  2. 关闭 Wi-Fi,再通过移动数据检查 IP。
  3. 运行 DNS 泄漏测试,查看 DNS 查询是否在你预期的位置解析。
  4. 测试你关心的特定应用,而不仅仅是 Safari。
  5. 检查 WebRTC 或其他浏览器功能是否会暴露绕过代理的 IP 地址。
  6. 禁用代理或 VPN 配置描述文件,并确认流量恢复正常。

常见的 iOS 代理错误

  • 期望 Wi-Fi 代理对话框接受 SOCKS5。
  • 为只支持 SOCKS5 的应用使用 HTTP 代理。
  • 测试后忘记禁用代理。
  • 尝试在一个应用中使用另一个应用的本地端口。
  • 将登录凭据交给免费代理应用并信任它。
  • 假设所有应用都遵循系统代理或 VPN 配置描述文件。

要点

iOS 内置代理设置仅支持 HTTP。要在 iPhone 或 iPad 上使用 SOCKS5,请使用能创建 Network Extension 或 VPN 配置描述文件并支持 SOCKS5 的应用,然后验证出口 IP 和 DNS 行为。如果你只需要为浏览器进行 HTTP 代理,内置设置可能就足够了;如果你需要跨应用使用 SOCKS5,则要预期使用专用工具。