🗂 | 查看 Surge 专题可浏览更多内容
RULE-SET
RULE-SET
分为内置规则集和外部规则集,内部规则集目前是两种:SYSTEM
及 LAN
。
内置规则集:SYSTEM
可匹配来自 macOS 和 iOS 自身的大多数系统请求,App Store 和 iTunes 等其他内容服务的请求不会被匹配。
它的内容是:
USER-AGENT,*com.apple.mobileme.fmip1
USER-AGENT,*WeatherFoundation*
USER-AGENT,%E5%9C%B0%E5%9B%BE*
USER-AGENT,%E8%AE%BE%E7%BD%AE*
USER-AGENT,com.apple.geod*
USER-AGENT,com.apple.Maps
USER-AGENT,FindMyFriends*
USER-AGENT,FindMyiPhone*
USER-AGENT,FMDClient*
USER-AGENT,FMFD*
USER-AGENT,fmflocatord*
USER-AGENT,geod*
USER-AGENT,locationd*
USER-AGENT,Maps*
DOMAIN,api.smoot.apple.com
DOMAIN,captive.apple.com
DOMAIN,configuration.apple.com
DOMAIN,guzzoni.apple.com
DOMAIN,smp-device-content.apple.com
DOMAIN,xp.apple.com
DOMAIN-SUFFIX,ess.apple.com
DOMAIN-SUFFIX,push-apple.com.akadns.net
DOMAIN-SUFFIX,push.apple.com
DOMAIN,aod.itunes.apple.com
DOMAIN,mesu.apple.com
DOMAIN,api.smoot.apple.cn
DOMAIN,gs-loc.apple.com
DOMAIN,mvod.itunes.apple.com
DOMAIN,streamingaudio.itunes.apple.com
DOMAIN-SUFFIX,lcdn-locator.apple.com
DOMAIN-SUFFIX,lcdn-registration.apple.com
DOMAIN-SUFFIX,ls.apple.com
PROCESS-NAME,trustd
使用方法:
RULE-SET,SYSTEM,DIRECT
内置规则集:LAN
可匹配局域网 IP 地址和 .local 后缀,请注意该规则集会触发 DNS 请求。
它的内容为:
DOMAIN-SUFFIX,local
IP-CIDR,192.168.0.0/16
IP-CIDR,10.0.0.0/8
IP-CIDR,172.16.0.0/12
IP-CIDR,127.0.0.0/8
IP-CIDR,100.64.0.0/10
IP-CIDR,224.0.0.0/4
IP-CIDR6,fe80::/10
注意这里的「请注意该规则集会触发 DNS 请求」,如果看过之前的文章应该就会明白这是和 no-resolve
选项有关,但有关局域网的部分不单是匹配 IP 本身,一些 IP 为本地网络的域名也应该包含在内,所以不应该使用 no-resolve
选项。
故而一般的配置都会将此放置于配置末尾(在 DOMAIN 相关类型规则之后就不会触发)。
使用方法:
RULE-SET,LAN,DIRECT
外部规则集
外部规则集就是从另一个文件或者 URL 引用规则集。
其实从上述两个内置规则集例子可以看出,所谓的规则集就是将多个子规则放在一个单独的文件中,便于分享和复用。但是规则集中的规则不可以指定策略,而是将整个规则集指向一个同一个策略。
可以将制作好的规则集文本文件放置在服务器上进行引用,如:
RULE-SET,https://www.example.com/direct.list,DIRECT
在配置里使用 RULE-SET
类型规则,内容就是规则集地址,然后加上策略即可。
DOMAIN-SET
DOMAIN-SET
实际属于「标准规则」,但是其功能类似 Ruleset 所以放在一篇文章里说了。
RULE-SET
可包含所有类型的子规则,执行效率和在主配置中的规则没有区别,而 DOMAIN-SET
仅可使用 DOMAIN
和 DOMAIN-SUFFIX
两种形式的内容,使用了特别的逻辑进行优化,在内容非常多时性能有极大的提升。(千条以上,否则两者没有太大的区别)
DOMAIN-SET
文件内容示例如下:
.doubleclick.net
static.googleadsserving.cn
1.1.1.1
文件中每行为一个域名或一个 IP 地址,如果某行以 .
开头则表示匹配所有子域名和该域名本身。
⚠️ 注意:IP 仅支持一个 IP 地址,不支持类似 IP-CIDR 类型规则的子网掩码号的写法
它的使用方法也类似 Ruleset:
DOMAIN-SET,https://www.example.com/reject.list,REJECT