Surge 远程管理
使用 Surge iOS、Surge Dashboard 或 surge-cli 管理另一台 Mac、iPhone、iPad 或 Apple TV 上运行的 Surge。
你可以从另一台设备管理 Surge。例如,在 Mac 上查看 iPhone 的请求,从 iPhone 切换无显示器的 Mac mini 上的策略组,随时随地查看 Apple TV 的运行情况,或通过终端脚本控制远程 Surge 实例。
Surge 提供三种方式:
外部控制器:原生远程管理通道,Surge iOS、Surge Dashboard 和 surge-cli 均通过它进行控制。这是功能最完整的方式,也是本指南的重点。
HTTP API:REST 风格的接口,供你自己的脚本和自动化工具使用。
Web Dashboard:通过 HTTP API 提供的浏览器控制面板。
如果你只是想管理另一台设备上的 Surge,使用外部控制器即可。
控制端与被控实例
远程管理涉及两个角色:
被控实例:你想要管理的 Surge,可以是 Surge Mac、Surge iOS(iPhone 和 iPad)或 Surge tvOS。
控制端:用于管理它的应用,可以是:
Surge iOS:入口位于工具页面的远程控制器区域。
Surge Dashboard:Surge Mac 随附的应用。
surge-cli:Surge Mac 随附的命令行工具。
这三种控制端使用相同的协议,因此任意一种都可以管理任意被控实例。控制端也可以管理本机的 Surge 实例。例如,Surge Dashboard 和 surge-cli 无需配置即可连接本机的 Surge Mac。
Surge Mac
✅
✅
✅
Surge iOS
✅
✅(Wi-Fi 或 USB)
✅
Surge tvOS
✅
✅
✅
选择连接方式
A. Surge Ponte(Mac 和 Apple TV 推荐使用)
如果被控设备上的 Surge Mac 或 Surge tvOS 已作为 Surge Ponte 服务端运行,这是最简单的方式:
无需地址、端口或密码。设备会自动出现在所有登录了相同 iCloud 账号的 Surge iOS 设备上。
可在任何网络下使用,包括蜂窝网络和外出时使用的网络。
连接始终采用端到端加密。
B. 通过局域网连接外部控制器
在被控设备上开启外部控制器,并设置端口和密码。同一网络中的控制端即可通过设备的 IP 地址、端口和密码连接。此方式适用于 Surge Mac、Surge iOS 和 Surge tvOS。
C. USB(仅限 Surge iOS)
将 iPhone 或 iPad 通过数据线连接到 Mac 后,Surge Dashboard 即可通过 USB 连接。这不需要 Wi-Fi,也是查看使用蜂窝数据的 iPhone 流量的唯一方式。
配置被控设备
Surge Mac
通过 Surge Ponte
按照 Surge Ponte 指引 开启 Surge Ponte。
在配置向导中,保持勾选允许其他设备通过 Surge Ponte 进行远程控制。
随后,这台 Mac 就会出现在你其他设备上 Surge iOS 的远程控制器列表中,无需密码。
通过外部控制器
打开设置 › 通用,找到外部控制器区域。
设置 TCP 端口(默认为 6170)和访问密码。
打开允许以接受其他设备的连接。如果未开启,则只有同一台 Mac 上的控制端(例如本机的 surge-cli 或 Dashboard)以及通过 Surge Ponte 建立的连接可以访问。
Surge iOS
Surge iOS 无法作为 Surge Ponte 服务端,因此只能通过外部控制器进行管理:
在首页打开更多设置,然后在远程控制区域找到外部控制器选项。
开启该选项,并设置端口和密码。
默认仅允许 USB 连接。如需允许同一 Wi-Fi 网络中的控制端访问,请开启允许从 Wi-Fi 访问。
外部控制器仅在 Surge 运行时可用。
Surge tvOS
Surge tvOS 没有自己的控制界面,其设计就是通过远程方式进行管理。使用 Surge iOS 完成部署后,Apple TV 会通过 Surge Ponte 自动出现在 Surge iOS 的远程控制器列表中。如果你无需在外出时访问 Apple TV,可以将 Surge Ponte 设置为 LAN-Only。详见 Surge tvOS。
配置文件语法
外部控制器的设置保存在配置文件的 [General] 段中,因此你也可以直接配置:
该值的格式为 password@address:port,三个部分均不可省略。
127.0.0.1:仅接受本机连接。在 Surge iOS 上,这表示仅允许 USB 连接。0.0.0.0:同时接受来自局域网的连接。在 Surge iOS 上,这表示允许 Wi-Fi 连接。
从控制端连接
使用 Surge iOS
打开工具页面,找到远程控制器区域:
可通过 Surge Ponte 访问的 Surge Mac 和 Apple TV 设备会自动列出,并标注「通过 Surge Ponte」。
如需连接局域网中的设备,点击远程控制器,输入其 IP 地址、端口和密码,然后点击连接。
连接后,你可以将设备加入收藏,以便日后一键访问。你也可以为已收藏的设备添加主屏幕快捷方式,直接打开其控制界面。
使用 Surge Dashboard
Surge Dashboard 默认打开本机的 Surge Mac。如需管理其他设备,选择新建连接,然后:
远程:输入主机地址、端口和密码。你可以保存常用设备,之后从已保存的列表或 Dock 菜单中再次打开。
USB:选择已连接的 iPhone 或 iPad,并输入在该设备上配置的端口和密码。
使用 surge-cli
surge-cli 位于 /Applications/Surge.app/Contents/Applications/surge-cli。不添加额外参数时,它控制本机的 Surge Mac。添加 --remote 即可控制其他实例:
为避免密码出现在 shell 历史记录中,请在安全的密码提示中输入密码,设置 SURGE_CLI_PASSWORD 环境变量,或通过 --password-stdin 传入密码。不要将密码写在命令行中。
运行 surge-cli 时不指定命令,即可进入支持自动补全的交互模式。所有命令详见 Surge CLI 文档。
可以远程执行哪些操作
连接后,你可以像在设备本机上一样管理 Surge:
监控:查看最近和活跃的请求、实时流量统计、事件、DNS 缓存和 Logbook 记录。
路由:切换出站模式、更改策略组选择、测试策略,以及查看和编辑规则。
临时规则:添加立即生效、在 Surge 停止时自动丢弃的规则,便于调试。
功能开关:开启或关闭 MitM、重写、脚本、HTTP 抓包等功能。
配置与资源:切换配置、启用或停用模块、更新外部资源,以及更新托管配置。
诊断:执行网络诊断、DNS 查询、规则匹配分析等操作(主要在终端中进行)。
维护:重新加载配置或重启引擎。
当被控设备运行 Surge Mac 时,你还可以:
管理网关模式下的设备,包括分配静态 IP、重命名设备、更改图标和重新连接设备。
编辑 Mac 配置中的规则。
管理插件。
对 Surge Mac 执行无人值守升级,无需有人在 Mac 前操作即可完成更新和重启。
安全
外部控制器拥有 Surge 的完整控制权限,因此请妥善保护:
仅在可信网络中使用。 通过局域网建立的外部控制器连接不加密。不要通过路由器端口转发或 DMZ 等方式将外部控制器端口暴露到互联网。如需从局域网外管理设备,请使用始终采用端到端加密的 Surge Ponte。
使用强密码。
防止密码猜测:如果在 30 秒内出现 10 次密码验证失败,Surge 会临时封禁来源 IP 地址或本机进程,并显示「未经授权的访问」警告。你可以使用
surge-cli security ban查看或清除封禁。在 Surge iOS 上,来自蜂窝网络的连接始终会被拒绝;除非你明确允许,否则 Wi-Fi 连接也会被拒绝。
与 HTTP API 和 Web Dashboard 的比较
Surge 也提供 HTTP API 和 Web Dashboard。它们支持切换策略、切换功能开关和查看请求等常见操作,但功能不如外部控制器完整。
使用方
Surge iOS、Surge Dashboard、surge-cli
你自己的脚本和工具
浏览器
功能范围
最完整:几乎涵盖设备本机上的所有功能
常用操作
常用操作
可通过 Surge Ponte 使用
✅
❌
❌
USB 连接
✅(Surge iOS)
❌
❌
配置项
external-controller-access
http-api
http-api-web-dashboard
与其他工具集成时可使用 HTTP API;从未安装 Surge 的设备快速访问时可使用 Web Dashboard。日常管理自己的设备时,建议使用外部控制器。
使用技巧
通过 Surge Ponte 使用 surge-cli 或 Dashboard。 如果控制端 Mac 和被控 Mac 都运行 Surge 并开启 Surge Ponte,你可以使用
ponte-name.sgponte作为主机地址,例如surge-cli --remote mymacmini.sgponte:6170 status。连接会通过加密的 Ponte 隧道传输。由于.sgponte在远端设备上会被解析为 127.0.0.1,被控 Mac 的外部控制器可以继续仅监听127.0.0.1,无需向局域网开放。无显示器的 Mac mini。 在用作家庭网关的 Mac 上开启 Surge Ponte,并允许远程控制。之后,你就可以随时随地从 iPhone 管理它,包括管理网关模式下的设备和执行无人值守升级。
从 Mac 调试 iPhone。 使用 USB 数据线连接 iPhone,然后在 Surge Dashboard 中打开它。即使 iPhone 正在使用蜂窝数据,你也可以在更大的屏幕上查看每个请求。
故障排除
设备未出现在列表中。 请确认两台设备登录了相同的 iCloud 账号,Mac 或 Apple TV 已开启 Surge Ponte,并在 Ponte 配置过程中允许了远程控制。
无法连接 Surge iOS。 请确认 iPhone 上的 Surge 正在运行,外部控制器已开启;如果通过 Wi-Fi 连接,还需开启允许从 Wi-Fi 访问。同时确认两台设备处于同一个 Wi-Fi 网络中。
密码错误。 请检查密码。如果连续多次输入错误,请稍等片刻,或在被控设备上清除封禁后再重试。
部分功能缺失。 被控设备可能运行较旧版本,或者该功能仅适用于 Surge Mac,例如网关模式设备管理。请更新两台设备上的 Surge。
Last updated