Surge

义项:iOS平台网络代理调试工具
Surge

Surge 是运行于 iOS、iPadOS 与 macOS 平台的网络工具集软件,由独立开发者刘亚晨开发,2015 年 10 月首次上架。它以接管设备网络流量、按规则分流、转发至代理服务器为核心,并提供 HTTPS 解密、请求改写、脚本扩展与抓包分析等调试能力。其 iOS 版本基于 iOS 9 引入的网络扩展接口实现,可在未越狱设备上接管任意应用的 HTTP、HTTPS、TCP 与 UDP 流量,因此被开发者用于移动端网络排查;软件本身不提供代理或 VPN 服务,需用户自行配置服务器。

目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

Surge 是面向专业技术人员的一款网络工具集软件,官方将其定位为开发者与高级用户使用的网络工具箱,而非单纯的代理客户端[1][2]。它在 Apple 移动端的形态是作为网络扩展运行的 VPN 应用,通过系统接口接管设备的网络流量[1]。

官方文档把它的核心工作概括为 4 项:接管、处理、转发与截获——接管设备发出的连接,修改被接管的请求与响应,把请求转发给代理服务器,并记录、解密与保存请求数据[3]。这 4 项能力构成其基本工作流,调试功能与代理功能都建立在这一流程之上[4]。

需要说明的是,Surge 本身不经营任何代理或 VPN 服务,用户需自行准备并配置服务器,软件只承担工具层面的接管、判定与转发[2][4]。

原理

Surge 的流量接管有 3 条途径:一是依靠系统 HTTP 与 SOCKS 代理设置,由遵循该设置的应用把请求送至 Surge 的代理端口;二是应用或局域网内其他设备直接指向 Surge 监听的本地代理端口;三是建立虚拟网卡,在 IP 层截取原始 TCP、UDP 与 ICMP 报文,从而覆盖不理会系统代理设置的应用[5]。iOS 版本把虚拟网卡并入基于 VPN 的接管方式,默认启用,因此 Wi-Fi 与蜂窝网络下的流量都可被处理[6][1]。

虚拟网卡启用时,Surge 自行充当 DNS 应答者:对普通 A 与 AAAA 查询不进行真实解析,而是立即返回 198.18.0.0/15 保留地址段中的虚拟地址,并持久记录虚拟地址与域名的对应关系;当连接该虚拟地址的报文到达时,再把地址还原成原域名,交由规则匹配与出站处理[7]。这样既省去了连接前的解析时延,也使规则始终能看到原始域名,即便客户端自行解析过地址[7]。Surge 使用自有 DNS 客户端而非系统解析器,支持并发查询、加密 DNS 与按域名指定服务器[5]。

请求进入后依次经过规则匹配与策略执行。规则自配置文件中的规则列表自上而下逐条匹配,首个命中者生效,可依据域名、网段、GeoIP、进程、协议等条件判断流量归属,列表须以 FINAL 规则收尾;命中的规则返回一个策略,可能是 DIRECT、REJECT 等内置策略,也可能是某个代理策略或策略组[5]。策略组允许规则引用一个固定名称,再手动或自动切换实际出口,切换方式包括按延迟测试、故障回退、负载均衡与自适应选择[3][4]。

HTTPS 的可见性依赖中间人解密:只有目标主机名被列入解密名单的连接才会被解开,从而让改写与脚本作用于请求内容;未被解密的 HTTPS 连接与普通 TCP 连接只做数据流转发[5][3]。请求被解密或本身即为明文 HTTP 后,可以进行 URL 与请求头改写、本地文件映射,或借助 JavaScript 脚本修改请求、响应、DNS 应答乃至定时任务[3][4]。

整个工具的行为由一份纯文本配置文件描述,iOS 与 Mac 两个版本共用同一核心引擎与配置格式,因而大部分配置项在两端含义一致[1]。配置文件可存放于本地或远程,也可通过 iCloud Drive、Dropbox 在设备间同步[4]。

发展历程

Surge 由刘亚晨(网名 Blankwonder)开发,2015 年 10 月上线 App Store,初始定价 9.99 美元,利用 iOS 9 新增的 Network Extension 接口,使未越狱设备也能实现虚拟网卡接管与规则分流[8][9]。上线后不久在开发者群体中迅速传播,据当时报道,其在中国区工具类应用下载与收入榜中长时间位居前列[8]。

2015 年 11 月,开发者宣布将在 1.1.1 版发布 3 天后把 Surge 从 App Store 全区移除,已购用户仍可下载并使用,随后另行发布一个更侧重调试的版本给已购用户[8]。中文维基百科记载,2017 年 7 月底苹果公司在中国区 App Store 下架了 Surge[9]。官方知识库对此的解释是中国区禁止与 VPN 有关的应用上架,其他区域不受影响[2]。

此后版本持续迭代:2.0 时期加入 Proxy Group 与 URL Rewrite 等功能,并可在 iOS 上使用 HTTPS 解密,配置与 Mac 版通用[10]。应用商店资料显示,当前版本号已推进至 5.x,2025 年 10 月的版本为 5.16.2[11]。

在商业形态上,iOS 授权一次购买后终身有效,购买时附带 1 年期的功能更新订阅,用于解锁期间新增的能力;官方并说明今后新增的代理协议兼容不再受订阅限制,订阅更新更多面向高级功能[2][4]。iOS 与 Mac 授权分开销售,同一授权可用于本人最多 3 台设备,两端都提供 7 天全功能试用[2]。

应用

在移动开发场景中,Surge 常被用于观察应用发出的请求:可记录并展示 HTTP 请求与响应的头部和正文,为 JSON、文本、图片与视频提供对应的查看方式,并支持抓取前的预筛选与请求列表的相册式浏览[4]。配合本地 DNS 映射功能,可以在不修改代码的前提下把某个域名指向测试环境,在正式环境与开发环境之间切换[12]。

桌面端的 Dashboard 可通过 Wi-Fi 或 USB 连接 iOS 设备,实时查看并分析请求,经 USB 连接时连蜂窝网络下的请求也能检查,这使移动端抓包不必依赖电脑热点共享[4]。iOS 版本的 Dashboard、Logbook、连通性测试等工具与 Mac 版共享同一套核心引擎,多数配置在两端表现一致[1]。

除调试外,Surge 的规则与策略体系也用于日常流量管理,例如按域名规则拦截请求、统计 Wi-Fi、蜂窝与代理连接上的流量与速率,以及通过策略组在多个代理服务器之间自动择优[12]。它还支持把 WireGuard、Tailscale 之类的三层 VPN 当作一种代理策略使用,并提供设备间的私有网络互联。

局限

虚拟网卡只能处理 TCP、UDP 与 ICMP 3 类流量,其他协议无法通过,ICMP 报文也不能被代理,只能由 Surge 直接转发或自行应答,官方因此建议仅在需要时启用该方式,以免引入兼容性问题[6][9]。此外,其增强模式曾被指出可能导致 Xcode 向 App Store Connect 上传二进制文件失败[9]。

修改类功能均针对 HTTP 设计,未经解密的 HTTPS 连接与普通 TCP 连接会跳过改写步骤;对 TCP 连接强制使用 HTTP 引擎处理时,若该连接实际并非 HTTP 协议,会造成连接中断[3]。HTTPS 解密本身也要求客户端信任相应证书,且只对列入解密名单的主机名生效[5]。

软件不提供任何服务器资源,用户需自备代理服务器,因此它无法独立完成跨境访问等需要服务端配合的功能[2]。iOS 与 Mac 版本需分别购买,功能更新另有订阅机制,且部分老旧代理协议会被列入维护冻结或逐步停止支持,用户在协议选择上需留意版本说明[2][4]。

参见

  • 网络扩展 —— Surge iOS 版本赖以接管设备流量的系统框架接口。

  • 中间人攻击 —— Surge 解密 HTTPS 流量时采用的原理基础。

  • Shadowsocks —— Surge 支持转发的一种代理协议。

  • WireGuard —— 可被 Surge 转换为代理策略的三层 VPN 协议。

  • DNS over HTTPS —— Surge 内置加密 DNS 能力所采用的标准之一。

参考资料

  1. Introduction [引用日期2026-10-29]
  2. Surge 购买前常见问题 | 中文 | Surge Knowledge Base [引用日期2026-10-29]
  3. understanding-surge-cn(PDF) [引用日期2026-10-29]
  4. App Surge 5 [引用日期2026-10-29]
  5. How Surge Works [引用日期2026-10-29]
  6. Enhanced Mode (VIF) [引用日期2026-10-29]
  7. Advanced DNS Topics [引用日期2026-10-29]
  8. technode.com 上的网页 [引用日期2026-10-29]
  9. Surge (应用程式) [引用日期2026-10-29]
  10. 跨平台网络优化:Surge [引用日期2026-10-29]
  11. sensortower.com 上的网页 [引用日期2026-10-29]
  12. Surge 5 App [引用日期2026-10-29]
词条评价
词条统计

浏览次数:2 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-28T18:34:56Z

历史版本

本条目引用的词条
网络扩展 中间人攻击 Shadowsocks WireGuard DNS over HTTPS