Surge 自定义配置教程
采用精简主配置加功能模块的架构设计,实现 Surge 代理分流、广告拦截与自定义规则。
一、整体架构:主配置 + 模块
本配置采用 "精简主配置 + 功能模块" 的架构设计。核心思路:
Custom_Surge.conf ← 主配置:路由分流逻辑(哪些流量走哪个策略)
├── module/ad-block.sgmodule ← 广告拦截(完整版)
├── module/ad-block-lite.sgmodule ← 广告拦截(macOS 精简版)
├── module/custom-rules.sgmodule ← 自定义域名规则
├── module/private.sgmodule ← MITM 域名
├── module/tailscale.sgmodule ← Tailscale DNS 映射
├── module/jpark.sgmodule ← 停车/生活 App 广告拦截
├── module/lg.sgmodule ← VIF 排除路由(投屏/局域网发现)
└── module/hide-qbittorrent.sgmodule ← 隐藏 BT 客户端流量
为什么广告拦截不在主配置里? 因为完整版和精简版的拦截规则数量差异大,模块化可以按设备性能选择性启用,而主配置保持通用。
二、[General] 基础设置
日志级别
loglevel = warning
仅记录警告及以上级别日志,减少性能开销。调试时可改为 verbose。
DNS 配置
dns-server = system,119.29.29.29,223.5.5.5
使用系统 DNS + 腾讯 DNSPod + 阿里 DNS 作为解析服务器,均为国内公共 DNS,解析国内域名速度最佳。
hijack-dns = 8.8.8.8:53,8.8.4.4:53,1.1.1.1:53,1.0.0.1:53
劫持发往 Google DNS 和 Cloudflare DNS 的请求,由 Surge 统一处理,避免 DNS 泄露。
always-real-ip = dns.msftncsi.com, *.msftconnecttest.com, *.srv.nintendo.net, *.stun.playstation.net, stun.*, ...
对于游戏、视频通话、网络连通性检测等需要真实 IP 的场景,跳过 Surge 的 Fake IP 机制,直接返回真实解析结果。覆盖 Microsoft NCSI、Nintendo、PlayStation、Twilio STUN、Syncthing、Battle.net、NTP 等。
GeoIP 数据库
geoip-maxmind-url = https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-only-cn-private.mmdb
使用 Loyalsoldier 维护的精简版 GeoIP 数据库(仅中国 + 内网),体积小、更新频繁。配合末尾的 GEOIP,CN,DIRECT 规则,实现兜底的国内直连判断。
跳过代理
skip-proxy = 127.0.0.0/8, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, 162.14.0.0/16, fc00::/7, fe80::/10, localhost, *.local, *.ts.net, captive.apple.com, passenger.t3go.cn, *.ccb.com, wxh.wo.cn, *.abcchina.com, *.abcchina.com.cn
exclude-simple-hostnames = true
read-etc-hosts = true
- 内网地址(
127.0.0.0/8、192.168.0.0/16、10.0.0.0/8、172.16.0.0/12) - Tailscale 网段(
100.64.0.0/10)、腾讯内网(162.14.0.0/16) - IPv6 本地地址(
fc00::/7、fe80::/10) - Tailscale 域名(
*.ts.net)、Apple 强制门户(captive.apple.com) - 银行/运营商:建行(
*.ccb.com)、联通(wxh.wo.cn)、农行(*.abcchina.com) exclude-simple-hostnames:不含点号的主机名(如localhost)自动绕过read-etc-hosts:读取系统/etc/hosts文件中的映射
连通性测试
internet-test-url = http://wifi.vivo.com.cn/generate_204
proxy-test-url = http://cp.cloudflare.com/generate_204
proxy-test-udp = cp.cloudflare.com@1.1.1.1
test-timeout = 3
internet-test-url:检测本机是否有网络连接(国内网站,响应快)proxy-test-url:检测代理节点 TCP 是否通畅(Cloudflare,全球 CDN)proxy-test-udp:检测代理节点 UDP 是否通畅(向 1.1.1.1 发起 DNS 查询)- 3 秒超时,快速淘汰慢节点
网络共享
http-listen = 0.0.0.0:8888
socks5-listen = 0.0.0.0:8889
wifi-access-http-port = 8888
wifi-access-socks5-port = 8889
allow-wifi-access = true
proxy-restricted-to-lan = true
开放 HTTP/SOCKS5 代理端口,允许同一局域网下的其他设备通过本机代理上网。proxy-restricted-to-lan 确保只有局域网设备可以连接,防止外部访问。
外部控制 API
external-controller-access = dler@0.0.0.0:6170
http-api = dler@0.0.0.0:6171
http-api-web-dashboard = true
启用 Surge 的外部控制接口和 Web Dashboard,可通过浏览器或第三方工具远程管理 Surge。密码为 dler。
杂项
show-error-page-for-reject = false
block-quic = all-proxy
udp-policy-not-supported-behaviour = DIRECT
udp-priority = true
wifi-assist = false
show-error-page-for-reject:被 REJECT 的请求不显示错误页面,静默处理block-quic:阻断所有需要走代理的 QUIC 流量,强制回落到 TCP。QUIC 基于 UDP,多数代理协议对 UDP 支持不佳,阻断后确保流量被正确路由udp-policy-not-supported-behaviour:当代理不支持 UDP 时直连(而非丢弃)udp-priority:优先使用 UDP 传输(提升实时性)wifi-assist:关闭 Wi-Fi 辅助(不在 Wi-Fi 不佳时自动切蜂窝)
[Replica] 请求隐藏
[Replica]
hide-apple-request = true
hide-crash-reporter-request = true
hide-udp = false
keyword-filter-type = blacklist
控制 Surge 的请求查看器(Dashboard)中哪些流量被隐藏:
- 隐藏 Apple 系统级请求和崩溃报告,减少噪音
- UDP 流量不隐藏(方便调试代理 UDP 支持)
keyword-filter-type = blacklist:关键词过滤采用黑名单模式
三、[Proxy Group] 策略组设计
主策略
Proxy = select,🇭🇰 HK,🇼🇸 TW,🇸🇬 SG,🇺🇲 US,🇯🇵 JP
手动选择出口地区的总入口。所有需要代理的流量如果没有特定策略,最终走这里。
服务策略(可独立控制出口)
AI / Media / TikTok / Apple / GitHub / Telegram / Tunnel
每个服务都可以独立选择 Proxy(跟随主策略)、DIRECT(直连)或指定地区。例如:
AI→ 选🇺🇲 US,因为 Claude/OpenAI 通常需要美国节点TikTok→ 选不同地区可以看不同地区内容Telegram→ 可选就近节点降低延迟
金融策略
Crypto / PayPal / Stripe
金融服务单独隔离,避免频繁切换节点触发风控。
工具策略
Speed = select,DIRECT,Proxy
Speedtest 测速默认直连(测的是本地 ISP 速度),也可切换为代理(测代理线路速度)。
地区节点组
🇭🇰 HK = smart, include-all-proxies=1, policy-regex-filter=(?!.*(Game))(港|Hong|HK), interval=600, timeout=2, evaluate-before-use=true
smart:自动选择延迟最低的节点include-all-proxies=1:包含所有订阅中的节点policy-regex-filter:用正则匹配节点名中的地区关键词,同时排除 Game 专用节点((?!.*(Game)))evaluate-before-use=true:使用前先测速,避免选中已失效节点
四、[Rule] 规则分层——优先级是核心
Surge 规则采用 "先匹配先生效" 原则,顺序至关重要。本配置分为 10 个逻辑层:
优先级高 ↑
┌──────────────────────────────────────────┐
│ (Module pre-matching: 广告拦截) │ ← 模块注入,最先执行
├──────────────────────────────────────────┤
│ 1. 国内直连 (Apple/MS CDN, 国内媒体, │ ← 国内服务快速放行
│ SteamCN) │
│ 2. AI (Claude, OpenAI 等) │
│ 3. 流媒体 (Netflix, TikTok, YouTube, │
│ GlobalMedia) │
│ 4. 服务 (Apple, GitHub, Mail, │
│ Telegram) │
│ 5. 金融 (Crypto, PayPal, Stripe) │
│ 6. 工具 (Speedtest) │
│ 7. CDN & 下载 │
│ 8. 国内域名 (China 全量列表) │
│ 9. IP 规则 (广告 IP 拦截) │
│10. 兜底 (海外代理, LAN, GEOIP, │
│ FINAL) │
├──────────────────────────────────────────┤
│ (Module: custom-rules 自定义规则) │ ← 模块注入的普通规则
└──────────────────────────────────────────┘
优先级低 ↓
设计逻辑
- 国内直连最先:Apple/Microsoft CDN、国内媒体、Steam 国区等高频流量立即放行,减少不必要的规则匹配
- 服务分流在中间:AI、流媒体、金融等需要指定出口的服务精确匹配
- CDN 和下载统一走代理:海外 CDN 和软件下载通常需要代理加速
- 国内域名兜底:使用 blackmatrix7 的
China_All_No_Resolve大规则集,覆盖绝大多数国内域名 - 多层兜底:
Proxy_All_No_Resolve捕获已知海外域名 →LAN直连局域网 →GEOIP,CN,DIRECT确保国内 IP 直连 →FINAL兜底所有剩余
extended-matching 标记
所有 RULE-SET 和 DOMAIN-SET 规则均带有 extended-matching 标记:
RULE-SET,https://...,DIRECT,extended-matching
此标记启用扩展匹配模式,允许规则集内使用更多规则类型(如 URL-REGEX、USER-AGENT 等),确保与 Sukka 等规则集的完整兼容。
关键规则说明
RULE-SET,https://cdn.jsdelivr.net/.../Mail/Mail.list,Tunnel,extended-matching
邮件服务走 Tunnel 策略,与 SSH 共用通道,确保邮件协议(IMAP/SMTP)通过稳定的代理连接。
RULE-SET,https://cdn.jsdelivr.net/.../Proxy/Proxy_All_No_Resolve.list,Proxy,extended-matching
在 GEOIP 兜底之前,先用 blackmatrix7 的海外域名列表精确匹配已知需要代理的域名,减少对 GeoIP 数据库的依赖。
FINAL,Proxy,dns-failed
终极兜底:所有未被任何规则匹配的流量走代理。dns-failed 参数表示 DNS 解析失败时也交给代理处理(由远端 DNS 解析),这对于被 DNS 污染的域名至关重要。
五、广告拦截模块——与主配置的配合
广告拦截完全剥离到模块中,按使用场景选择启用。
两个广告模块对比
| 模块 | 适用场景 | 规则数量 | 拦截策略 |
|---|---|---|---|
ad-block.sgmodule |
iOS / 需要完整拦截 | 完整(6 条规则集) | 按类型区分 REJECT/REJECT-DROP |
ad-block-lite.sgmodule |
macOS / 追求精简 | 精简(4 条规则集) | 统一 REJECT |
ad-block.sgmodule(完整版)
DOMAIN-SET,...AWAvenue-Ads-Rule...,REJECT,extended-matching,pre-matching # 秋风广告规则
RULE-SET,.../sogouinput.conf,REJECT-DROP,extended-matching,pre-matching # 搜狗输入法遥测
DOMAIN-SET,.../reject.conf,REJECT,extended-matching,pre-matching # 广告域名集
RULE-SET,.../reject.conf,REJECT,extended-matching,pre-matching # 广告规则集
RULE-SET,.../reject-no-drop.conf,REJECT-NO-DROP,extended-matching,pre-matching # 需返回空响应的拦截
RULE-SET,.../reject-drop.conf,REJECT-DROP,extended-matching,pre-matching # 可静默丢弃的拦截
拦截策略遵循 Sukka 的分类设计,而非一刀切:
| 策略 | 含义 | 适用场景 |
|---|---|---|
REJECT |
返回空响应 | 通用广告域名(默认策略) |
REJECT-DROP |
静默丢弃,不返回响应 | 搜狗输入法遥测、可安全丢弃的追踪请求 |
REJECT-NO-DROP |
必须返回空响应,不能丢弃 | 某些 API 调用,App 期望收到响应才能继续 |
ad-block-lite.sgmodule(macOS 精简版)
DOMAIN-SET,...AWAvenue-Ads-Rule...,REJECT,extended-matching,pre-matching # 秋风广告规则
DOMAIN-SET,.../reject.conf,REJECT,extended-matching,pre-matching # 广告域名集
RULE-SET,.../reject.conf,REJECT,extended-matching # 广告规则集
RULE-SET,.../reject.conf,REJECT,extended-matching,pre-matching # 广告规则集(pre-matching)
精简版去掉了搜狗输入法、reject-no-drop、reject-drop 等细分规则集,仅保留核心广告域名拦截,适合对规则数量敏感的 macOS 环境。
pre-matching 的关键作用
带有 pre-matching 标记的规则会在 所有主配置规则之前 被评估。这意味着:
请求进入 Surge
↓
① pre-matching 规则(模块中的广告拦截) ← 广告在这里就被杀死
↓ (未命中)
② 主配置 [Rule] 按顺序匹配 ← 正常流量在这里分流
↓ (未命中)
③ 模块中的非 pre-matching 规则
↓ (未命中)
④ FINAL 兜底
为什么广告拦截要 pre-matching?
- 广告请求不需要进入路由分流逻辑,越早拦截越省资源
- 避免广告域名意外命中其他规则(如某广告 CDN 域名被 CDN 规则集匹配走了代理)
- 性能优化:Surge 对
pre-matching规则使用优化的数据结构,匹配速度更快
规则源
| 来源 | 内容 | 规模 |
|---|---|---|
ruleset.skk.moe (Sukka) |
广告域名、隐私追踪、恶意软件、钓鱼 | 数万条,高质量维护 |
AWAvenue-Ads-Rule (秋风) |
中国区特色广告规则 | 国内 App 广告覆盖好 |
两者互补:Sukka 的规则偏国际化和全面,秋风的规则专注国内 App 和网站广告。
六、custom-rules.sgmodule 自定义规则模块
自定义规则以模块形式加载,引用 private/ 目录下的规则列表:
RULE-SET,.../private/direct.list,DIRECT,extended-matching # 自定义直连
RULE-SET,.../private/proxy.list,Proxy,extended-matching # 自定义代理
RULE-SET,.../private/ssh.list,Tunnel,extended-matching # SSH 端口走 Tunnel 策略
模块引用的列表
| 文件 | 策略 | 典型内容 |
|---|---|---|
direct.list |
DIRECT | Plex 本地、NAS、微信/飞书/QQ 音乐进程、ToDesk、cloudflared、国内 SSH |
proxy.list |
Proxy | Plex 远程、Google 广告平台、Apple 广告 API、PostHog、morelogin |
ssh.list |
Tunnel | DEST-PORT,22 — 所有 SSH 流量走 Tunnel 策略 |
private/ 目录下其他列表
以下列表存在于 private/ 目录但未被模块直接引用,作为规则储备或被其他配置使用:
| 文件 | 内容 |
|---|---|
reject.list |
Parallels 许可证验证域名、luckydogsoft |
ai.list |
Claude 域名和进程 |
tail.list |
Tailscale 网段(100.64.0.0/10)、WireGuard 内网 |
apple.list |
iTunes、Apple 广告归因 API |
direct.list 特殊规则
AND,((DEST-PORT,22), (GEOIP, CN))
复合规则:目标端口为 22(SSH)且目标 IP 属于中国的流量直连。这样国内服务器的 SSH 不走代理,海外服务器的 SSH 走 Tunnel 策略(由 ssh.list 中的 DEST-PORT,22 兜底)。
七、功能模块详解
tailscale.sgmodule — Tailscale DNS 映射
[Host]
*.ts.net = server:100.100.100.100 # MagicDNS 通配解析
# 设备静态映射
mbp.ts.net = 100.66.162.49
rog.ts.net = 100.112.83.96
xlxds.ts.net = 100.75.210.125
minis.ts.net = 100.65.162.49
将 Tailscale 域名解析交给 MagicDNS(100.100.100.100),并为常用设备配置静态 IP 映射,省去每次查询 DNS 的开销。
jpark.sgmodule — 停车/生活 App 拦截
[Rule]
DOMAIN,csg.jparking.cn,REJECT # 停车场广告
DOMAIN,psbg.jparking.cn,REJECT
DOMAIN,e.jparking.cn,REJECT
DOMAIN,cw.jparking.cn,REJECT
URL-REGEX,"^https://sytgate\.jslife\.com\.cn/...",REJECT-TINYGIF # JSLife 广告 API
URL-REGEX,^https://etgw\.jparking\.cn/data-report-gateway/...,REJECT-DROP # 数据上报
[MITM]
hostname = %APPEND% sytgate.jslife.com.cn, etgw.jparking.cn
拦截 JParking(捷停车)和 JSLife(江苏一号通)的广告域名和数据上报接口。由于需要匹配 URL 路径,必须配合 MITM 解密 HTTPS 流量。
lg.sgmodule — VIF 排除路由
[General]
tun-excluded-routes = %INSERT% 239.255.255.250/32, 224.0.0.167/32
将 SSDP(239.255.255.250)和 MDNS 相关(224.0.0.167)的组播地址排除在 Surge 的 TUN 接口之外。这些地址用于局域网设备发现(如 LG ThinQ 智能家电、AirPlay 投屏、LocalSend 文件传输),必须绕过 VPN 隧道才能正常工作。
hide-qbittorrent.sgmodule — 隐藏 BT 流量
通过注入 [Replica] 配置,在 Surge Dashboard 中隐藏 BT 客户端相关的所有请求:
- 隐藏 BT 客户端 User-Agent(qBittorrent、Transmission、aria2 等)
- 隐藏 BT 客户端进程名
- 隐藏 BT 常用端口(6881-6889、9091、51413 等)
- 隐藏 Tracker 和种子相关域名
- 隐藏 BT 关键词(torrent、magnet、announce 等)
- 隐藏种子文件 Content-Type
private.sgmodule — MITM 域名
[MITM]
hostname = %APPEND% *.local, *.socloud.ltd, *.zcode.ltd, *.imagedelivery.net, appevent.cc, *.artbest.pro, *.xet.tech, *.nevercode.net, *.webscraping.ai, *.instagram.com, *.swiftaikit.com
追加需要 HTTPS 解密的域名列表,用于需要 URL 级别规则匹配或内容修改的场景。
八、[Host] DNS 分流
大厂分流 DNS
RULE-SET:.../sukka_local_dns_mapping/alibaba.conf = server:223.5.5.5 # 阿里 → 阿里 DNS
RULE-SET:.../sukka_local_dns_mapping/tencent.conf = server:119.29.29.29 # 腾讯 → DNSPod
RULE-SET:.../sukka_local_dns_mapping/bilibili.conf = server:119.29.29.29 # B站 → DNSPod
RULE-SET:.../sukka_local_dns_mapping/xiaomi.conf = server:119.29.29.29 # 小米 → DNSPod
RULE-SET:.../sukka_local_dns_mapping/bytedance.conf = server:180.184.2.2 # 字节 → 火山 DNS
RULE-SET:.../sukka_local_dns_mapping/baidu.conf = server:180.76.76.76 # 百度 → 百度 DNS
RULE-SET:.../sukka_local_dns_mapping/qihoo360.conf = server:101.198.198.198 # 360 → 360 DNS
为什么要这样做? 国内大厂通常在自家 DNS 上部署了 CDN 调度逻辑。用阿里 DNS 解析阿里域名,能被调度到最近的 CDN 节点,延迟更低、速度更快。用错 DNS 可能被调度到远端节点。
规则集使用 Sukka 维护的 sukka_local_dns_mapping 系列配置,自动匹配各厂域名。
手动 DNS 映射
# 网易系
*.163.com = server:119.29.29.29
*.126.com = server:119.29.29.29
*.126.net = server:119.29.29.29
*.127.net = server:119.29.29.29
*.netease.com = server:119.29.29.29
# 京东
jd.com = server:119.29.29.29
*.jd.com = server:119.29.29.29
Sukka 规则集未覆盖的大厂域名,手动指定 DNS 服务器。网易和京东统一走 DNSPod。
热点登录与局域网
# 热点登录 → 系统 DNS
RULE-SET:.../hotspot_captive_portal.conf = server:system
# 局域网 → 系统 DNS
RULE-SET:.../lan_with_realip.conf = server:system
RULE-SET:.../lan_without_real_ip.conf = server:system
*.m2m = server:system # M2M 设备
injections.adguard.org = server:system # AdGuard 本地
local.adguard.org = server:system
*.bogon = server:system # 保留域名
*.local = server:system # mDNS 本地域名
*.lan = server:system # 路由器管理域名
*.arpa = server:system # 反向 DNS
- 热点登录页:酒店/机场 Wi-Fi 的强制门户页面必须用系统 DNS 才能正确弹出
- 局域网设备:使用 Sukka 的 LAN 映射规则集,将所有内网域名交给系统 DNS(通常是路由器 DHCP 分配的)
- 特殊域名:
.local(mDNS)、.lan(路由器)、.arpa(反向解析)等均走系统 DNS
九、[MITM] HTTPS 解密
skip-server-cert-verify = true
h2 = true
hostname-disabled = gateway.icloud.com,gateway.icloud.com.cn,weather-data.apple.com,buy.itunes.apple.com
skip-server-cert-verify:跳过服务端证书验证(配合自签 CA 使用)h2 = true:启用 HTTP/2 协议的 MITM,确保现代网站的请求能被正确解密和分析hostname-disabled:列出 不进行 MITM 的域名。iCloud 网关、天气数据、iTunes 购买等敏感服务跳过解密,避免证书绑定(Certificate Pinning)导致连接失败
主配置中还包含 ca-passphrase 和 ca-p12(Base64 编码的自签 CA 证书),首次使用需在 iOS/macOS 上信任该证书。
其他模块(如 private.sgmodule、jpark.sgmodule)通过 %APPEND% 追加需要解密的域名。
十、模块系统工作原理
%APPEND% 与 %INSERT%
模块中的配置通过指令注入主配置的 任意 字段:
# private.sgmodule — 追加 MITM 域名
[MITM]
hostname = %APPEND% *.local, *.instagram.com, ...
# lg.sgmodule — 插入排除路由到最前面
[General]
tun-excluded-routes = %INSERT% 239.255.255.250/32, 224.0.0.167/32
# hide-qbittorrent.sgmodule — 追加 Replica 隐藏配置
[Replica]
hide-user-agent = %APPEND% *qBittorrent*, *BitTorrent*, ...
%APPEND%:追加到主配置对应字段的末尾%INSERT%:插入到主配置对应字段的开头
重要:如果不使用这些指令而直接赋值(hostname = foo.com),会 覆盖 主配置的值,导致其他配置失效。
模块可以注入到 [General]、[Rule]、[Host]、[MITM]、[Replica] 等任意配置段。
模块加载顺序
在 Surge 中,模块的 [Rule] 会按加载顺序插入到主配置规则之后(除非标记了 pre-matching)。因此:
- 广告拦截模块的
pre-matching规则 → 最高优先级 - 主配置
[Rule]中的规则 → 按配置文件中的顺序 - 模块中的非
pre-matching规则 → 在主配置之后
推荐的模块启用组合
iOS 设备:
- ✅
ad-block.sgmodule— 完整广告拦截 - ✅
custom-rules.sgmodule— 自定义分流 - ✅
private.sgmodule— MITM 域名 - ✅
jpark.sgmodule— 停车 App 广告拦截(如使用捷停车)
macOS 设备:
- ✅
ad-block-lite.sgmodule— 精简广告拦截(或ad-block.sgmodule完整版) - ✅
custom-rules.sgmodule— 自定义分流 - ✅
private.sgmodule— MITM 域名 - ✅
hide-qbittorrent.sgmodule— 隐藏 BT 流量(如使用 BT 客户端) - ✅
tailscale.sgmodule— Tailscale 设备映射(如使用 Tailscale) - ✅
lg.sgmodule— 投屏/局域网发现(如使用 LG 智能家电或 LocalSend)
十一、请求的完整生命周期
一个域名请求从进入 Surge 到最终被处理的完整流程:
用户请求 api.anthropic.com
│
├─ skip-proxy 检查 → 不在列表中,继续
│
├─ [Host] DNS 分流 → 无匹配,使用默认 DNS
│
├─ pre-matching 规则(广告模块)→ 不是广告域名,继续
│
├─ [Rule] 主配置规则按顺序匹配:
│ ├─ 1. 国内直连?→ 不匹配
│ ├─ 2. AI?→ skk.moe/ai.conf 命中!→ 策略 = AI
│ └─ (后续规则不再评估)
│
├─ AI 策略组当前选择 → 🇺🇲 US
│
├─ 🇺🇲 US smart 策略 → 自动测速选最快的美国节点
│
└─ 通过选中的代理节点发出请求
十二、维护指南
添加新域名到现有策略
直接编辑 private/ 下对应的 .list 文件,push 到 GitHub 即可。Surge 会在下次更新规则集时自动拉取。
添加全新服务策略
- 在
[Proxy Group]中添加新策略组 - 在
[Rule]的对应编号区域添加RULE-SET(记得带extended-matching) - 如有专用域名列表,创建
private/servicename.list并在custom-rules.sgmodule中引用
添加新的功能模块
- 在
module/目录下创建.sgmodule文件 - 使用
#!name=和#!desc=设置模块名称和描述 - 使用
%APPEND%/%INSERT%注入配置,避免覆盖主配置 - 在 Surge 中手动启用该模块
外部规则集更新
本配置依赖的外部规则集均通过 CDN URL 引用,由上游维护者更新。Surge 会定期自动刷新。主要来源:
- Sukka (skk.moe):广告拦截、CDN、AI、国内域名、DNS 分流映射等
- blackmatrix7:各服务专用规则(Netflix、GitHub、Telegram、Mail 等)
- AWAvenue:国内广告规则补充