Surge 去广告教程:规则集、模块与 MITM 怎么选
简答:Surge 去广告最稳妥的起点是:先让 Surge 接管网络,再添加可信的广告规则集并将策略设为 REJECT;只有需要处理 HTTPS 请求内容或 App 内广告时,才考虑为指定主机启用 MITM。若广告仍出现,应先在请求日志中确认规则是否命中,再排查缓存、规则顺序和证书信任。
定义:Surge 去广告,是通过规则集、模块或 HTTP 处理功能,将广告请求匹配后拒绝、改写或过滤的配置过程。
先试这一步:用规则集拦截常见广告请求
如果你的目标只是减少网页或应用发出的广告域名请求,优先使用规则集,不要一开始就启用脚本或全量 MITM。Surge 官方说明中,RULE-SET 可以引用内置、配置文件内或 URL 加载的规则集合,并为命中的请求统一指定策略;将策略设为 REJECT 或其衍生策略后,匹配请求会被拒绝。官方规则集说明 官方 REJECT 策略说明
| 方案 | 适合场景 | 是否通常需要 MITM | 主要风险 |
|---|---|---|---|
| 规则集 | 按域名或 IP 拦截常见广告请求 | 通常不需要 | 规则覆盖不到新域名,或误拦截必要请求 |
| 模块 | 一次性叠加规则、MITM 主机名或其他配置 | 视模块内容而定 | 来源不明的模块可能修改多项配置 |
| URL Rewrite / 脚本 | 需要改写 URL、请求头、响应内容或特定应用接口 | 处理 HTTPS 时通常需要 | 配置复杂,可能造成页面或应用功能异常 |
规则列表按从上到下匹配,第一条命中的规则决定策略。因此,广告规则应放在不会被更早规则绕过的位置;同时保留最后的 FINAL 规则,避免配置不完整。官方规则系统说明
结构示例,不可直接复制: [Rule] RULE-SET,你的规则集地址,REJECT。其中“你的规则集地址”必须替换为你已核验来源的规则集 URL,不能直接把示例地址当作可用资源。
Surge 去广告的完整操作流程
- 确认网络接管已开启。在 Surge 中启动当前配置,并确认系统状态栏或应用状态显示网络已由 Surge 接管。若 Surge 没有运行,规则不会处理经过系统的请求。
- 备份当前配置。在修改前保留原配置文件或建立副本。模块会覆盖主配置的部分设置,官方文档明确指出模块设置的优先级高于主配置,因此排错时需要知道哪些设置来自模块。官方模块说明
- 先添加一组可信规则集。在配置的规则区域添加规则集引用,并将策略设置为 REJECT。不要一次叠加多组功能重复的规则,否则出现误拦截时很难判断是哪一组造成的。
- 更新并重新加载配置。保存后执行配置更新或重新载入,让规则集完成下载和解析。若规则集地址无法访问、格式错误或更新失败,先移除该规则集,恢复到备份配置。
- 用请求日志验证。打开 Surge 的请求记录或捕获界面,重新加载一个广告较明显的页面或重新进入目标应用,查看相关请求是否显示命中规则集和 REJECT。官方文档说明,规则集中的子规则命中时,日志会记录匹配的子规则及其所属集合。官方规则集日志说明
- 只在必要时添加模块。模块适合把一组经过核验的设置作为补丁叠加到现有配置,但它不是“更强的规则集”。导入前应检查模块实际修改了哪些段落,尤其是 MITM、脚本和规则部分。
截至 2026-11-01,本文不固定推荐某个第三方规则链接,因为规则资源的维护状态、兼容性和内容边界需要逐项核验。更安全的做法是:确认来源、查看规则内容、保留备份,再小范围启用。
什么时候需要 MITM:网页广告与 App 广告要分开看
普通域名拦截通常可以先从规则集开始。若广告请求隐藏在 HTTPS 内容中,或需要根据 URL、请求头、响应内容进行处理,Surge 官方文档说明必须让目标主机经过 MITM 解密,相关 HTTP 处理功能才能看到完整请求。官方 HTTP 处理说明
启用 MITM 前,需要生成或导入 CA 证书,并让设备信任该证书;Surge 只会对 [MITM] 中声明的主机名进行解密。不要为了“拦得更多”直接对所有主机启用解密,建议只添加确实需要处理的主机,并在问题解决后关闭不必要的主机名。官方 MITM 说明
部分应用使用证书固定,遇到 MITM 证书后会拒绝连接;官方文档也明确提醒,这类主机启用解密可能导致连接中断。因此,App 无法联网时应先从 MITM 主机名列表中移除该域名,而不是关闭证书校验。
URL Rewrite 适合对请求 URL 做重定向、返回拒绝或进行简单改写;脚本适合需要读取或修改请求、响应内容的场景。两者都只处理经过 Surge HTTP 引擎的流量,HTTPS 请求还需要对应主机启用 MITM。官方 URL Rewrite 说明 官方响应脚本说明
广告仍然出现:按这个顺序排查
- 确认 Surge 正在接管网络。先访问一个普通网页或观察请求记录;如果没有任何请求进入 Surge,规则本身不会生效。
- 确认模式不是 Direct 或 Global。官方规则说明指出,在 Direct 或 Global 模式下,普通规则列表不会按规则模式参与判断;需要切换到基于规则的模式,再验证规则命中。官方规则匹配说明
- 确认规则集已成功加载。检查更新状态、资源地址和解析结果。规则集下载失败、返回网页而非规则文本、或格式不符合要求,都可能导致看似“添加成功”但实际没有规则。
- 确认日志里是否命中。命中 REJECT 说明规则层面正在工作;如果广告仍显示,可能是页面缓存、广告内容已经预加载,或广告由同一请求返回。先关闭并重新打开应用,再清理页面缓存或重新加载页面。
- 检查规则顺序。规则从上到下匹配,第一条命中后后续规则不会继续决定策略。更具体的例外规则应放在适当位置,避免先被通用 DIRECT 或代理规则处理。
- 检查是否需要 MITM。如果请求是 HTTPS 且日志只能看到连接、看不到完整 URL,URL Rewrite、响应脚本等功能可能无法匹配。此时只为必要主机启用 MITM,并确认 CA 证书已被设备信任。
- 发生误伤时立即回滚。先禁用最近添加的模块或规则集,恢复备份配置,再逐项启用。不要同时修改规则集、MITM 和脚本,否则无法定位故障来源。
最小可用配置与安全边界
新手建议采用“一个规则集、一个 REJECT 策略、一次验证”的最小方案。配置只保留必要字段,任何代码或规则片段都应先确认当前 Surge 构建支持的语法;不要把互联网上未经核验的完整配置直接覆盖现有文件。
- 规则集:负责提供一组匹配条件,适合通用域名拦截。
- REJECT:负责处理命中的请求;官方还提供 REJECT-TINYGIF、REJECT-DROP 等不同拒绝策略,具体效果应结合目标应用观察。官方拒绝策略说明
- 模块:负责以补丁方式覆盖或追加配置,导入前必须检查来源和修改范围。
- MITM:负责让 Surge 解密指定 HTTPS 主机,以便使用 HTTP 处理能力;它不是所有去广告问题的必选项。
- 脚本:只在规则集和简单重写无法完成任务时使用,并避免启用来源不明、行为无法审计的脚本。
如果只是想减少常见广告请求,不必为了追求“全部拦截”而扩大 MITM 范围。广告过滤始终存在能力边界:规则可能漏拦截,应用可能把广告与内容共用接口,也可能因拦截而导致登录、播放或页面加载异常。
常见问题
Surge 去广告一定要安装证书吗?
不一定。仅使用域名规则集拦截请求时,通常可以先不启用 MITM;当你需要处理 HTTPS 的完整 URL、请求头或响应内容时,才需要为对应主机启用 MITM,并安装、信任 CA 证书。
为什么规则命中了,App 里还是有广告?
可能是广告内容已经缓存、请求没有经过 Surge、规则只覆盖了部分域名,或者广告与正文使用同一接口。先查看请求日志是否持续命中 REJECT,再重启应用并重新加载内容;不要仅凭页面仍显示广告就判断规则完全失效。
模块和规则集应该先用哪个?
如果目标是通用域名拦截,先用单个规则集更容易验证和回滚;模块适合需要同时叠加多项配置的场景。导入模块前应检查其实际修改的配置段,尤其是 MITM、脚本和规则。
启用 MITM 后某个应用无法联网怎么办?
先关闭该应用对应主机的 MITM,或暂时停用最近导入的模块,再重新测试。部分应用可能使用证书固定,官方文档提示这类连接在 MITM 下可能失败;不要用关闭服务器证书校验的方式强行解决。
如何判断是规则无效还是广告缓存?
打开请求记录,重新进入页面并观察是否出现命中规则集的 REJECT 请求。如果有命中但画面不变,优先清理页面或应用缓存并重新加载;如果完全没有命中,再检查网络接管、规则集更新和规则顺序。
常见问题
Surge 去广告一定要安装证书吗?
不一定。仅使用域名规则集时通常可以先不启用 MITM;需要处理 HTTPS 完整内容时,才考虑为指定主机启用 MITM 并信任 CA 证书。
为什么规则命中了,App 里还是有广告?
可能是缓存、规则覆盖不足、请求未经过 Surge,或广告与内容共用接口。先查看请求日志,再重启应用并重新加载内容。
模块和规则集应该先用哪个?
通用域名拦截优先从单个规则集开始,便于验证和回滚;需要叠加多项设置时再考虑模块。
启用 MITM 后应用无法联网怎么办?
先移除该应用相关主机的 MITM 或停用最近添加的模块,再测试。部分应用可能使用证书固定,强行解密会导致连接失败。
相关阅读
参考资料
- Surge 官方:规则系统概览(manual.nssurge.com)
- Surge 官方:规则集(manual.nssurge.com)
- Surge 官方:REJECT 策略(manual.nssurge.com)
- Surge 官方:模块(manual.nssurge.com)
- Surge 官方:HTTPS 解密与 MITM(manual.nssurge.com)
- Surge 官方:HTTP 处理(manual.nssurge.com)
- Surge 官方:URL Rewrite(manual.nssurge.com)
- Surge 官方:HTTP 响应脚本(manual.nssurge.com)