OVEROUTESOVEROUTES
首页
阅读须知
  • 总览
  • 选购要点
  • 推荐机场
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
首页
阅读须知
  • 总览
  • 选购要点
  • 推荐机场
  • 客户端使用
  • 概述
  • IP 与线路
  • 选型指南
  • 选购参考
  • 基础部署
  • 安全加固
  • 概述
  • 3X-UI
  • Xboard
  • 协议总览
  • Shadowsocks
  • Shadowsocks 2022
  • VMess
  • Trojan
  • VLESS
  • Hysteria 2
  • TUIC
  • AnyTLS
  • NaiveProxy
  • Mieru
  • ShadowTLS
  • VLESS-XHTTP
  • WireGuard
  • 传统协议
  • 孤家寡人协议
  • 软件总览
  • Mihomo
  • sing-box
  • Xray
  • V2Fly
  • dae (Linux)
  • Shadowrocket (iOS)
  • QuantumultX (iOS)
  • Stash (iOS/macOS)
  • Loon (iOS)
  • Surge (macOS/iOS)
  • NekoBox (Android)
  • Husi (Android)
  • Exclave (Android)
配置
  • 全平台

    • 代理软件总览
    • Mihomo
    • sing-box
    • Xray
    • V2Fly
  • Linux

    • dae
  • iOS / macOS

    • Shadowrocket
    • Quantumult X
    • Stash
    • Loon
    • Surge
  • Android

    • NekoBox
    • Husi
    • Exclave

Surge

Surge 是由 Yachen Liu 开发的 Apple 生态网络工具,支持 macOS 与 iOS。它在代理客户端里属于高定价路线:iOS 一次性买断,macOS 按年订阅并按设备数计费。其核心吸引力并不只在代理本身,而是“一站式”附加能力(如 DHCP 托管、基础流量统计、Ponte 内网互联、HTTP 抓包调试等),适合预算充裕、希望低门槛尝鲜“轻·软路由”体验的用户。

同时需要提前认知:Surge 的协议路线相对保守,部分主流新协议/新特性支持不完整;macOS 版受 Network Extension 架构约束,性能上限通常不及 Linux/OpenWrt 侧的通用代理核心方案。若你追求的是“协议覆盖最全 + 极限吞吐 + 深度可定制”,应优先评估其他路线。

一句话圈粉:Surge 是“高集成、低折腾”的 Apple 向网络工具,把代理、基础抓包、基础内网互联和基础网络管理打包到一个应用里。

一句话祛魅:它并不是“全协议、全性能、全可定制”的终极解;协议覆盖偏保守、性能受 macOS NE 限制、Ponte 稳定性与中继能力也难与专业组网方案等量齐观。

基本信息

项目信息
平台iOS 15.0 及以上 / macOS 13.0 及以上
价格iOS:$49.99(永久授权) / macOS:年付 $50(1 台)/$70(3 台)/$100(5 台)
开发者Yachen Liu(nssurge.com)
官网nssurge.com
App Store(iOS)下载地址
内核自有内核
更新频率活跃,功能持续扩展

关于价格

Surge 的定价在同类客户端中属于高位。iOS 版约 $49.99;macOS 版通常采用年付分档($50/1 台、$70/3 台、$100/5 台)。购买前请以官网最新价格与授权条款为准。Surge 提供 14 天试用期,建议先试用再决定是否购买。

与 Shadowrocket($2.99)或 Quantumult X($7.99)相比,Surge 的价格差异极大,选购前请认真评估自己的实际需求。

核心特性

  • 一站式网络工具集合:除代理外,还提供 DHCP 托管、基础流量统计、基础内网互联与抓包调试等功能
  • HTTP/HTTPS 调试能力:内置请求查看、过滤、重放、改写等能力,满足中轻度开发调试场景
  • 脚本与模块生态:支持 JavaScript 脚本、Module 模块与 Panel 面板,便于把规则与自动化逻辑打包复用
  • macOS 系统级接管:可在 macOS 上接管系统流量,并支持进程名规则、Egress 等平台特性
  • Ponte(内网互联):提供“开箱即用”的简易内网穿透体验,降低远程互联的上手门槛
  • 定位偏“甜点需求”:附加能力多、学习曲线相对低,适合不想自建 OpenWrt/旁路由体系的用户

协议支持

根据官方手册(Proxy Policy)可确认:Surge 支持 SS/VMess/Trojan/WireGuard/SSH/Snell,以及 Hysteria 2、TUIC、AnyTLS 等协议;但未见 VLESS/Reality 的官方代理类型声明。选购前建议始终以官方手册与当前版本变更日志为准。

协议支持状态备注
Shadowsocks(AEAD)支持—
Shadowsocks 2022支持—
VMess支持常见传输形态可用(以版本为准)
VLESS不支持 / 未声明官方手册未列为代理类型(请先核对)
Trojan支持—
Hysteria 2支持iOS 5.8.0+ / macOS 5.4.0+
TUIC v5支持以官方版本说明为准
AnyTLS支持iOS 5.17.0+ / macOS 6.4.3+
ShadowTLS v3支持(作为混淆层)需附着于 TCP 代理配置
WireGuard支持(内置)—
SSH支持—
SOCKS5支持—
HTTP支持—
Snell支持Surge 自研协议

关于 Snell 协议

Snell 是 Surge 团队自行设计的专有代理协议,专为 Surge 生态优化。它需要服务端运行 Snell Server(官方提供),并且只在 Surge 客户端中有完整支持。如果你希望节点能被多种客户端使用,不建议选择 Snell。

安装与购买

iOS

  1. 切换到非中国区 Apple ID(Surge 仅在部分地区上架,推荐美国区)
  2. 在 App Store 搜索"Surge 4"
  3. 支付 $49.99 完成购买
  4. 安装后系统会请求 VPN 权限,点击"允许"并完成认证

Surge 提供试用模式,部分功能在购买前可以免费体验,但实际代理功能需要购买授权后才能正常使用。

macOS

macOS 版 Surge 从官网直接下载:

  1. 访问 nssurge.com 下载 Surge for Mac
  2. 安装后按照向导完成授权激活(需要购买许可证)
  3. 首次运行需要在"系统设置"→"网络"中允许 Surge 添加 VPN 配置

macOS 版提供 14 天免费试用,试用期内功能完整,试用结束后需购买许可证继续使用。

界面说明

iOS 界面

Surge iOS 的界面分为以下几个主要部分:

区域功能
主界面代理开关、当前出站策略显示、流量统计
Proxies(代理)策略组和节点列表,查看和切换节点
Requests(请求)实时显示所有网络请求的详细信息
Profiles(配置)管理配置文件,支持多个配置文件切换
More(更多)工具、诊断、模块管理、MitM 设置等

macOS 界面

macOS 版 Surge 提供了功能更为丰富的界面:

  • 菜单栏图标:快速开关代理、查看当前节点状态
  • 主窗口:配置编辑器、策略组管理、请求记录
  • Dashboard:实时流量图表、连接统计
  • HTTP Traffic 面板:类似 Charles 的 HTTP 抓包界面,可查看和分析所有 HTTP/HTTPS 请求

配置文件格式

Surge 使用 INI 风格的纯文本配置文件,结构清晰,具备良好的可读性。

基础配置文件结构

[General]
# 全局设置

[Proxy]
# 手动添加的代理节点

[Proxy Group]
# 策略组

[Rule]
# 分流规则

[Host]
# DNS 主机映射(覆盖 DNS 解析)

[URL Rewrite]
# URL 重写规则

[Header Rewrite]
# 请求/响应头修改

[Script]
# 脚本配置

[MITM]
# HTTPS 解密配置

[SSID Setting]
# 基于 SSID 的配置切换

[WireGuard 节点名]
# WireGuard 配置块(每个 WireGuard 节点一个块)

添加代理节点

方法一:添加订阅(机场用户)

Surge 支持从远程 URL 加载配置文件,将整个配置(包括节点、策略组、规则)导入为一个完整的配置文件。

如果机场提供了 Surge 格式的订阅链接:

  1. 在 iOS 的"Profiles"标签页点击"+"
  2. 填入 Surge 格式的订阅 URL
  3. 下载完成后激活该配置文件

如果机场只提供 Clash 格式订阅,Surge 本身不能直接解析 Clash 格式,需要通过以下方式处理:

  • 使用 Sub-Converter 等订阅转换服务将 Clash 格式转换为 Surge 格式
  • 或者只使用节点 URI(vmess://、trojan://、ss:// 等)手动导入单个节点

关于 Surge 的订阅兼容性

Surge 使用自己的配置格式,与 Clash Meta、Loon、Shadowrocket 的订阅格式均不直接兼容。大型机场通常会专门提供 Surge 格式的订阅,中小型机场可能只提供 Clash 或通用格式,需要手动转换。在选购机场时,可以先确认该机场是否提供 Surge 格式订阅。

方法二:手动添加节点(配置文件)

直接在配置文件的 [Proxy] 块中添加节点,Surge 的节点语法简洁明了:

Shadowsocks(AEAD):

SS-Node = ss, your.server.ip, 8388, encrypt-method=aes-256-gcm, password=your-password

Shadowsocks 2022:

SS2022-Node = ss, your.server.ip, 8388, encrypt-method=2022-blake3-aes-256-gcm, password=base64-key

VMess + WebSocket + TLS:

VMess-Node = vmess, your.domain.com, 443, username=your-uuid, ws=true, ws-path=/your-path, tls=true

Trojan:

Trojan-Node = trojan, your.domain.com, 443, password=your-password

WireGuard(使用独立配置块):

WireGuard-Node = wireguard, section-name=MyWireGuard

然后在配置文件末尾添加对应的 WireGuard 配置块:

[WireGuard MyWireGuard]
private-key = your-private-key
public-key = server-public-key
endpoint = server.ip:51820
allowed-ips = 0.0.0.0/0

SSH 隧道(Surge 独有):

SSH-Node = ssh, your.server.ip, 22, username=user, private-key-path=/path/to/key

方法三:扫码或链接导入单节点

将节点 URI 复制到剪贴板,在 Surge 主界面选择"从剪贴板导入节点",或扫描包含节点 URI 的二维码,可以快速导入单个节点。

策略组(Proxy Group)

Surge 的策略组功能与其他客户端类似,但语法和选项有所不同。

策略组类型

类型说明
select手动选择,从列表中点选一个出站
url-test自动测速,选延迟最低的节点
fallback可用性检测,使用第一个可用节点
load-balance负载均衡,将请求分散到多个节点
external引用外部策略组(高级用法)
ssid基于 Wi-Fi SSID 自动切换

策略组配置示例

[Proxy Group]
# 手动选择总代理出站
Proxy = select, Auto, HK, JP, US, DIRECT

# 自动测速选最低延迟节点
Auto = url-test, HK-1, HK-2, JP-1, JP-2, url=http://www.gstatic.com/generate_204, interval=300, tolerance=50

# 香港节点组(手动选择,可搭配 Proxy Group 引用)
HK = select, HK-1, HK-2, HK-3

# 流媒体专用组(手动选择)
Streaming = select, US-Netflix, JP-Streaming, DIRECT

# 广告过滤
AdBlock = select, REJECT, DIRECT

# 基于 SSID 的策略(公司网络直连,其他网络走代理)
Office-Policy = ssid, default=Proxy, cellular=Proxy, "Office-WiFi"=DIRECT

使用正则表达式筛选节点

Surge 支持在策略组中通过正则表达式自动筛选节点名称,这在节点较多时非常实用:

[Proxy Group]
# 使用 include-all-proxies 和 use-sub-filter 动态筛选
HK = url-test, include-all-proxies=1, use-sub-filter=1, sub-filter-regex=香港|HK|Hong Kong, url=http://www.gstatic.com/generate_204, interval=300

include-all-proxies=1 表示从所有已添加的节点中筛选;sub-filter-regex 通过正则表达式匹配节点名称。

分流规则

Surge 的规则系统功能极为完整,支持多种匹配类型:

[Rule]
# 进程名匹配(macOS 独有)
PROCESS-NAME,Xcode,DIRECT

# 域名精确匹配
DOMAIN,www.example.com,DIRECT

# 域名后缀匹配
DOMAIN-SUFFIX,example.com,Proxy

# 域名关键词匹配
DOMAIN-KEYWORD,youtube,Proxy

# IP CIDR
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
IP-CIDR,10.0.0.0/8,DIRECT,no-resolve

# GeoIP 匹配
GEOIP,CN,DIRECT

# ASN 匹配(按自治系统号匹配,Surge 特有)
IP-ASN,13335,Proxy

# 用户代理匹配(仅 HTTP 流量)
USER-AGENT,Surge*,DIRECT

# 协议匹配
PROTOCOL,QUIC,REJECT

# 子网匹配
SUBNET,192.168.1.0/24,DIRECT

# 最终默认规则
FINAL,Proxy

引用外部规则集

[Rule]
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/surge-rules@release/ruleset/reject.txt,REJECT
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/surge-rules@release/ruleset/proxy.txt,Proxy
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/surge-rules@release/ruleset/direct.txt,DIRECT
GEOIP,CN,DIRECT
FINAL,Proxy

Loyalsoldier/surge-rules 提供了专门针对 Surge 格式的规则集,是社区最常用的规则来源之一。

General 块常用配置

[General]
# 代理端口
mixed-port = 6152

# 本地 HTTP 代理端口
http-listen = 0.0.0.0:6152

# 本地 SOCKS5 代理端口
socks5-listen = 0.0.0.0:6153

# 是否允许局域网其他设备使用
allow-wifi-access = false

# Wi-Fi 代理端口(当 allow-wifi-access 开启时)
wifi-access-http-port = 6152
wifi-access-socks5-port = 6153

# 测速 URL
proxy-test-url = http://www.gstatic.com/generate_204

# 连接测速超时
test-timeout = 5

# 覆写系统 DNS
dns-server = system, 119.29.29.29, 223.5.5.5

# DNS over HTTPS
doh-server = https://doh.pub/dns-query, https://dns.alidns.com/dns-query

# 跳过代理的地址范围
skip-proxy = 192.168.0.0/24, 10.0.0.0/8, 172.16.0.0/12, localhost, *.local, 100.64.0.0/10

# TUN 排除地址(不通过 TUN 接管)
tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12

# GeoIP 数据库 URL(自定义数据源)
geoip-maxmind-url = https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb

# 启用 IPv6
ipv6 = false

# 崩溃时自动重启(macOS)
# restart-on-crash = true

# 不允许 UDP 的节点处理 UDP 流量时的行为(reject / direct)
udp-policy-not-supported-behaviour = reject

DNS 配置

Surge 提供了精细的 DNS 控制能力:

[General]
# 主要 DNS 服务器
dns-server = system, 119.29.29.29, 223.5.5.5

# DNS over HTTPS(按顺序尝试)
doh-server = https://doh.pub/dns-query, https://dns.alidns.com/dns-query

# 为特定域名指定 DNS 服务器
[Host]
# 覆盖特定域名的 DNS 解析结果
mtalk.google.com = 108.177.125.188
*.google.cn = server:119.29.29.29
*.apple.com = server:system

DNS over HTTPS 进阶配置

Surge 支持为不同域名路由到不同的 DoH 服务器:

[General]
# 默认 DoH
doh-server = https://1.1.1.1/dns-query

# 国内域名的专用 DoH(在某些配置版本中支持 per-domain DoH)
# 注意:具体配置语法以当前版本的官方文档为准

Surge 的 DNS 请求本身也遵循分流规则,发往境外 DoH 的查询可以自动走代理,确保 DNS 不泄露。

URL 重写

[URL Rewrite]
# 格式:匹配模式 替换目标 类型

# 拒绝广告请求
^https?://ad\.example\.com - REJECT

# 302 重定向
^https://old\.example\.com/(.*)  https://new.example.com/$1 302

# 修改请求 URL
^https://api\.example\.com/v1/(.*) https://api.example.com/v2/$1 302

Header 重写

Surge 支持修改 HTTP 请求和响应的头部字段:

[Header Rewrite]
# 请求头修改
^https://api\.example\.com request-add X-Custom-Header: custom-value
^https://api\.example\.com request-del Cookie
^https://api\.example\.com request-replace User-Agent Surge/1.0

# 响应头修改
^https://api\.example\.com response-add Access-Control-Allow-Origin: *
^https://api\.example\.com response-del X-Frame-Options

脚本功能

Surge 的脚本能力是目前 iOS 平台中最为完整的,提供了丰富的 JavaScript API。

脚本类型

类型触发方式说明
http-requestURL 匹配时,请求发出前修改请求头、请求体
http-responseURL 匹配时,响应到达后修改响应头、响应体
cron定时任务按 Cron 表达式定时执行
event系统事件如网络切换、应用打开等
dnsDNS 查询时自定义 DNS 解析逻辑
rule规则匹配时动态决定流量出站

脚本配置语法

[Script]
# HTTP 响应脚本
modify-api = type=http-response, pattern=^https://api\.example\.com/user, requires-body=1, timeout=30, script-path=scripts/modify_api.js

# HTTP 请求脚本
add-header = type=http-request, pattern=^https://api\.example\.com, requires-body=0, script-path=scripts/add_header.js

# 定时任务(每天早上 9 点)
daily-check = type=cron, cronexp="0 9 * * *", wake-up=0, script-path=scripts/daily.js

# DNS 自定义解析
custom-dns = type=dns, script-path=scripts/dns_resolver.js

# 规则脚本(动态决定出站)
traffic-classifier = type=rule, script-path=scripts/classifier.js

脚本 API 概览

Surge 的脚本 API 功能极为丰富,以下是常用的 API:

访问请求/响应数据:

// 在 http-request 脚本中访问请求
const url = $request.url;
const method = $request.method;
const headers = $request.headers;
const body = $request.body;  // 需要 requires-body=1

// 在 http-response 脚本中访问响应
const status = $response.status;
const respHeaders = $response.headers;
const respBody = $response.body;  // 需要 requires-body=1

修改并返回:

// 修改响应体
let json = JSON.parse($response.body);
json.data.vip = true;
$done({ body: JSON.stringify(json) });

// 修改请求头
$done({
    headers: {
        ...$request.headers,
        'X-Custom-Header': 'value'
    }
});

// 拒绝请求
$done({ response: { status: 200, headers: {}, body: '' } });

持久化存储:

// 写入持久化存储
$persistentStore.write('key', 'value');

// 读取持久化存储
const value = $persistentStore.read('key');

发出网络请求(在脚本中):

// GET 请求
$httpClient.get({
    url: 'https://api.example.com/data',
    headers: { 'Content-Type': 'application/json' }
}, (error, response, data) => {
    const json = JSON.parse(data);
    $done({ body: JSON.stringify(json) });
});

// POST 请求
$httpClient.post({
    url: 'https://api.example.com/submit',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ key: 'value' })
}, (error, response, data) => {
    $done({});
});

通知推送:

// 发送系统通知
$notification.post('标题', '副标题', '通知内容');

日志:

// 输出日志(在 Surge 的日志面板中可见)
console.log('日志内容');

MitM 配置

MitM(中间人解密)是 Surge 最具价值的进阶功能之一,结合 HTTP 抓包工具使用时效果尤为突出。

生成和安装根证书

iOS:

  1. 进入"More"→"HTTPS Decryption"
  2. 点击"Generate CA Certificate"生成根证书
  3. 点击"Install CA Certificate",引导安装证书
  4. 在 iOS "设置"→"通用"→"VPN 与设备管理"中完成安装
  5. 在 iOS "设置"→"通用"→"关于本机"→"证书信任设置"中开启完全信任
  6. 回到 Surge 开启 MitM 总开关

macOS:

  1. 在 Surge 主菜单或设置中找到"HTTPS Decryption"
  2. 点击生成和安装证书,macOS 会将证书添加到系统钥匙串
  3. 在"钥匙串访问"中找到 Surge 生成的证书,将其标记为"始终信任"

MitM 配置块

[MITM]
ca-p12 = 证书的Base64编码数据
ca-passphrase = 证书密码

# 开启 HTTPS 解密的域名
hostname = api.example.com, *.example.net

# 跳过特定域名(即使被通配符覆盖也不解密)
# hostname = *.example.com, -secure.example.com

关于 MitM 的安全考量

Surge 的 MitM 功能主要面向开发者调试场景。安装 MitM 证书后,Surge 可以解密所有配置的 HTTPS 域名的流量。请谨慎配置:

  • 只对需要调试或脚本处理的域名启用 MitM
  • 不要将生成的 CA 证书文件分享给他人
  • 在不需要 MitM 时,可以在配置中关闭或清空 hostname 列表
  • 务必确认你充分了解 MitM 的原理和潜在的安全风险

模块系统(Module)

模块是 Surge 的"插件"机制,可以一键安装包含规则、脚本、重写、MitM 配置的综合功能包。

安装模块

iOS:

  1. 进入"More"→"Module"
  2. 点击"+"安装新模块
  3. 填入模块的 URL(.sgmodule 文件)
  4. 安装后在模块列表中可以单独启用/禁用

macOS:

  1. 在菜单中进入模块管理界面
  2. 操作方式与 iOS 相同

模块文件格式

#!name=示例模块
#!desc=这是一个示例模块的描述
#!system=ios

[Rule]
DOMAIN-SUFFIX,example-ad.com,REJECT

[URL Rewrite]
^https?://tracking\.example\.com - REJECT

[Script]
example = type=http-response, pattern=^https://api\.example\.com/data, requires-body=1, script-path=https://raw.githubusercontent.com/example/scripts/main/process.js

[MITM]
hostname = api.example.com

模块安装后,其内容会被合并到当前配置中,且在订阅更新时不会被覆盖。

Panel 面板

Panel 是 Surge 特有的功能,允许通过脚本创建自定义的信息展示组件,可以在 Surge 的主界面显示动态信息。

[Script]
# Panel 脚本
node-status = type=generic, script-path=scripts/node_panel.js, timeout=10

[Panel]
# 声明 Panel 并关联脚本
NodeInfo = script=node-status, title=节点信息, content=加载中, style=info

Panel 脚本通过 $done({ title: '面板标题', content: '显示内容', style: 'info' }) 返回要展示的信息,可以显示节点延迟、流量统计、当前 IP 等动态数据。

macOS 版独有功能

增强模式(Enhanced Mode)

macOS 版 Surge 的增强模式通过创建虚拟网络接口,在系统层面接管所有流量,实现真正的全系统透明代理。普通的系统代理设置只能影响支持代理配置的应用,而增强模式可以接管所有网络流量,包括不支持代理的应用。

启用增强模式:在 Surge 的菜单栏图标菜单中,勾选"Enhanced Mode"。

请求查看与 HTTP 调试

macOS 版提供了媲美 Charles 和 Proxyman 的 HTTP/HTTPS 流量调试界面:

  • 实时查看所有通过 Surge 的 HTTP/HTTPS 请求
  • 查看完整的请求头、响应头、请求体和响应体
  • 支持搜索、过滤和导出请求记录
  • 可以重放(Replay)已捕获的请求
  • 与 MitM 结合,可以查看加密的 HTTPS 流量明文内容

这使得 Surge for Mac 不仅是代理工具,更是一个完整的网络调试平台,对于 iOS/macOS 开发者极具价值。

Egress 策略

macOS 版支持为不同的流量指定不同的网络出口(Egress),适合多网卡环境:

[General]
# 通常不需要手动配置,Surge 会自动处理

在有多个网络接口(如同时连接 Wi-Fi 和以太网,或使用多个 ISP)时,Egress 策略可以控制哪类流量从哪个接口出去。

Ponte(内网穿透)

Ponte 是 Surge 5.x 引入的内网穿透功能,允许两台运行 Surge 的设备(一台在公网,一台在内网)建立安全的私有网络连接:

  • 无需公网 IP,通过中继服务器建立连接
  • 流量端到端加密
  • 可以访问内网设备上的服务,就像两台设备在同一局域网内

Ponte 是 Surge 相比其他代理工具的差异化特色功能,适合需要远程访问家庭或公司内网设备的用户。

完整配置文件示例

以下是一个适合日常使用的 Surge 配置文件示例(优先使用兼容性更稳的协议组合):

[General]
mixed-port = 6152
allow-wifi-access = false
proxy-test-url = http://www.gstatic.com/generate_204
test-timeout = 5
dns-server = system, 119.29.29.29, 223.5.5.5
doh-server = https://doh.pub/dns-query
skip-proxy = 192.168.0.0/24, 10.0.0.0/8, 172.16.0.0/12, 127.0.0.1, localhost, *.local
ipv6 = false
udp-policy-not-supported-behaviour = reject

[Proxy]
SS-Node = ss, your.server.ip, 8388, encrypt-method=aes-256-gcm, password=your-password
Trojan-Node = trojan, your.domain.com, 443, password=your-password

[Proxy Group]
Proxy = select, Auto, SS-Node, Trojan-Node, DIRECT
Auto = url-test, SS-Node, Trojan-Node, url=http://www.gstatic.com/generate_204, interval=300, tolerance=50

[Rule]
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/surge-rules@release/ruleset/reject.txt,REJECT
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/surge-rules@release/ruleset/proxy.txt,Proxy
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/surge-rules@release/ruleset/direct.txt,DIRECT
GEOIP,CN,DIRECT,no-resolve
FINAL,Proxy

[Host]

[URL Rewrite]

[Script]

[MITM]

与其他 iOS / macOS 客户端的对比

对比维度SurgeShadowrocketQuantumult XStashLoon
价格iOS $49.99;macOS 年付分档$2.99$7.99免费(内购)$2.99
HTTP 调试能力企业级(类 Charles)无基础无基础
脚本能力极强(API 最丰富)中极强有限强
模块/插件支持(Module)无无无支持(Plugin)
Panel 自定义面板支持无无无无
WireGuard 内置支持支持支持支持支持
SSH 协议支持不支持不支持不支持不支持
macOS 版本支持(功能更强)不支持不支持支持不支持
内网穿透(Ponte)支持(macOS)不支持不支持不支持不支持
增强模式(全局透明代理)支持(macOS)无无支持(TUN)支持(TUN)
进程名规则(macOS)支持————
Clash 订阅兼容有限(通常需转换)有限有限极高较高
协议覆盖新潮程度中低(偏保守)中中高中
适合人群预算充裕的 Apple 用户、轻专业调试场景入门用户脚本爱好者Clash 用户进阶用户

选择 Surge 的核心理由:

  1. 你希望“一个应用解决多件事”:代理 + 基础抓包 + 基础内网互联 + 基础网络管理,减少工具切换成本
  2. 你在 Apple 设备上需要开箱即用体验:不想折腾 OpenWrt/旁路由,也不想维护复杂自建栈
  3. 你主要使用兼容性成熟的协议:需求集中在 SS/VMess/Trojan/WireGuard 等常见方案
  4. 你愿意为产品化体验付费:macOS 年付授权本质上是“省时间、买集成”的选择
  5. 你需要轻量级专业能力:偶尔排查请求、做规则验证、看基础流量指标

不选择 Surge 的情形:

  • 预算有限,需求是基本代理功能(Shadowrocket $2.99 完全够用)
  • 主要使用 Clash Meta 格式订阅(Stash 兼容性最好,且免费)
  • 强依赖 VLESS 全家桶或其他新协议新特性
  • 追求 Linux/OpenWrt 级别的极限性能与深度可定制
  • 需要更稳定、可自建中继体系的内网组网能力(如 DERP/Moon 类能力)
  • 不需要 HTTP 调试和复杂脚本能力
  • 是 Windows 或 Android 用户(Surge 只支持 Apple 生态)

批判性总结

  • 高价不等于全能:Surge 的付费门槛在同类中偏高,但协议覆盖与新特性跟进并不总是匹配“旗舰定价”预期。
  • 产品哲学偏封闭:官方路线强调统一体验,用户可改造空间有限;若你希望“按自己菜单做定制”,会感到束手束脚。
  • 软路由能力是“浅尝辄止”:它能覆盖部分软路由场景,但难以替代 OpenWrt + 通用核心 + 可编排插件体系。
  • Ponte 是加分项,不是决定项:能用、易上手,但稳定性与中继可控性仍弱于 Tailscale/Zerotier 的成熟工程化方案。
  • 性能认知要分场景:在 macOS 客户端里它可能表现不错;但与 Linux/OpenWrt 的高性能代理栈对比时,吞吐上限通常不是一个量级。

常见使用技巧

快速节点切换

在 iOS 版主界面,点击当前策略组显示区域可以快速展开节点列表。长按某个节点可以触发延迟测试。

在 macOS 版,点击菜单栏图标,可以在下拉菜单中直接切换策略组和节点,无需打开主窗口。

使用外部配置文件托管

Surge 支持将配置文件托管在远程 URL,并定期自动同步。这样可以在多台设备间共享配置,修改配置文件后所有设备会在下次同步时自动更新:

在"Profiles"中添加远程配置 URL,设置自动同步间隔。

macOS 版配置自动重载

修改配置文件后,Surge for Mac 可以自动检测到文件变化并重新加载,无需手动操作。在"通用"设置中开启"Auto Reload Config When Modified"。

使用 iCloud 同步配置

Surge 支持将配置文件存储在 iCloud Drive 中,实现 iOS 和 macOS 之间的配置同步。在 Surge 的配置存储位置设置中,选择 iCloud Drive。

诊断工具

Surge 内置了多种诊断工具,在"More"(iOS)或菜单中可以访问:

  • Ping / Traceroute:对节点进行网络连通性检测
  • DNS Lookup:手动触发 DNS 查询,查看解析结果
  • Rule Testing:输入域名或 IP,查看会命中哪条规则

常见问题

Q:Surge 的价格这么贵,值得吗?

这取决于你的需求:

  • 如果你是 iOS / macOS 开发者,需要网络调试工具,Surge 可以部分替代 Charles(macOS 版约 $50/年),综合性价比是合理的
  • 如果你接受“高集成但并非全协议全性能”的取舍,且重视产品化体验,Surge 可以考虑
  • 如果你只需要基本的代理和分流功能,Shadowrocket($2.99)或 Stash(免费)完全够用,Surge 的溢价对你没有价值

Q:Surge 支持 Clash 格式订阅吗?

Surge 的配置格式与 Clash 不同,不能直接导入 Clash 格式的订阅。解决方案:

  1. 联系机场客服请求 Surge 格式的订阅链接
  2. 使用 Sub-Converter 等工具将 Clash 格式转换为 Surge 格式(转换质量取决于工具的支持程度)
  3. 手动将关键节点从 Clash 格式转录为 Surge 格式

Q:Surge iOS 版和 macOS 版是两个独立的购买吗?

是的,iOS 版和 macOS 版是独立销售的,需要分别购买。购买 iOS 版不赠送 macOS 版,反之亦然。

Q:Surge 的脚本和 Quantumult X 的脚本兼容吗?

不直接兼容。Surge 和 QX 的脚本 API 有所不同(主要体现在对象名称和某些方法的差异上)。大量社区脚本已经针对两者都做了兼容处理(在脚本内部判断运行环境后调用对应 API),但也有部分脚本只支持其中一个平台。使用前请查看脚本的兼容性说明。

Q:Rule 脚本的使用场景是什么?

Rule 类型的脚本用于实现动态的路由决策,可以根据运行时信息(如当前时间、外部 API 响应等)动态决定某条连接走哪个出站。这在静态规则无法满足需求的场景下非常有用,例如:

  • 根据服务器当前负载动态选择节点
  • 在特定时间段使用不同的路由策略
  • 根据目标服务器的 IP 地理位置动态决策

Q:Surge 的 Panel 功能如何使用?

Panel 需要编写对应的脚本来提供数据,然后在配置文件中声明 Panel 并关联脚本。Panel 的内容每次打开 Surge 主界面时会刷新,也可以手动点击刷新。社区有很多现成的 Panel 脚本可以直接使用,只需安装对应的模块即可。

Q:增强模式(macOS)对性能有影响吗?

会有影响。增强模式依赖 macOS Network Extension 接管流量,吞吐与时延表现通常明显受系统框架上限约束。对多数日常使用场景影响可接受,但若目标是极限吞吐或高并发转发,Linux/OpenWrt 侧通用核心方案通常有更高上限。

安全注意事项

  • 只从官方渠道获取 Surge:通过 App Store(iOS)或 nssurge.com 官网(macOS)下载,不要使用破解版或非官方分发的版本
  • MitM 根证书的安全:安装 MitM 证书后,相当于赋予了 Surge 解密特定 HTTPS 流量的能力,请谨慎配置并妥善保管证书文件
  • 脚本和模块的来源审查:Surge 的脚本可以发出网络请求和访问持久化存储,运行不可信来源的脚本存在隐私泄露风险
  • 配置文件中的敏感信息:配置文件中包含节点密码、UUID 等敏感信息,不要将完整的配置文件上传到公开仓库
  • 定期检查安装的模块:定期审查已安装的模块,清理不再使用的模块,避免不必要的 MitM 主机名和脚本在后台运行

相关资源

  • Surge 官网:nssurge.com
  • Surge 官方文档:manual.nssurge.com
  • Surge 官方 Telegram 频道:@SurgeNews
  • Loyalsoldier Surge 规则集:github.com/Loyalsoldier/surge-rules
  • Surge 脚本社区示例:github.com/Peng-YM/QuanX(部分脚本同时支持 Surge)

延伸阅读

  • Shadowrocket — 入门级 iOS 代理客户端,$2.99 性价比高
  • Quantumult X — 同样有强大脚本能力,价格更低的替代选择
  • Stash — 基于 Mihomo 内核,Clash Meta 订阅兼容性最佳,同时支持 macOS
  • Loon — 插件生态丰富,兼顾易用性和可定制性
  • 代理软件总览 — 回到软件总览页面
最近更新: 2026/4/9 14:18
Prev
Loon