🗂 | 查看 Surge 专题可浏览更多内容
先从一个最简单的空白配置开始慢慢了解 Surge 配置文件的构成:
[General]
[Rule]
FINAL,DIRECT
第一个块 [General]
对应 Surge 图形界面中的「更多设置」。当然现在这里是空的,也就是没有配置任何功能。
以及下面第二个区块的 [Rule]
对应图形界面中「出站模式」下的「代理规则」,现在只有一条规则:
FINAL,DIRECT
规则的组成
规则由四个部分组成:
规则类型,内容条件,策略,参数
Surge 使用规则系统来对选择每个连接的出口策略。规则的匹配方式为自上而下,逐一测试。最末尾规则一定是一个 FINAL
规则,当所有规则都不匹配时使用。
此处的设置含义为最终都走 DIRECT
也就是直连。现在你可能还没理解 FINAL
,接着往下看就会明白了。
策略
关于策略,默认有几种内置策略:
- DIRECT:将该请求直接发往目标服务器
- REJECT:拒绝该请求,当连接类型为 HTTP 时,会返回一个错误页面。(该行为可被 show-error-page-for-reject 参数控制)
- REJECT-TINYGIF:拒绝该请求,当连接类型为 HTTP 时,返回一个 1px 的 GIF 图片响应。若为其他类型连接则直接断开。该策略主要用于 Web 广告屏蔽。
- REJECT-DROP:拒绝该请求,与 REJECT 不同的是,该策略将静默抛弃请求。因为部分程序有着十分暴力的重试逻辑,连接失败后会立刻进行重试,导致请求风暴。如果发往某主机名的请求短时间内大量触发 REJECT/REJECT-TINYGIF 策略(当前版本的阈值为 30 秒内 10 次),为了避免产生大量资源浪费,Surge 将自动升级策略为 REJECT-DROP 策略。
- REJECT-NO-DROP:表示不使用默认的自动丢包逻辑,这样 Surge 每次都会返回 ICMP Port Unreachable,应用会立刻回退而不是等超时。
- CELLLULAR – 优先使用数据网络;
- CELLLULAR-ONLY – 仅使用数据网络;
除了上述的内置策略,策略可以是代理服务器,也可以是策略组。
一开始只记住 DIRECT
及 REJECT
即可,等之后熟悉了就会知道怎么搭配各种玩法。
规则类型
了解了「策略」,实际应用就需要结合「规则类型」及「内容」。
规则类型分为 3 种:标准规则、逻辑规则和规则集
注释
可以使用 #
或 //
对规则进行注释说明:
[General]
[Rule]
# GeoIP China 使用直连
# GEOIP,CN,DIRECT
FINAL,DIRECT // FINAL 使用直连
- 当说明为独立一行时,使用
#
,可表示对下列一条或多条内容的说明; - 当一条规则前加上
#
时,表示禁用该条规则; - 当仅对某一条规则进行说明时可在其后加上
//
来单独说明这条规则;
通知
使用 notification-text
参数可以在触发规则时让 Surge 弹出一条通知:
[General]
[Rule]
DOMAIN-SUFFIX,bilibili.com,DIRECT,notification-text="( ゜- ゜)つロ 乾杯~"
FINAL,DIRECT
如上示例,使用双引号把你要通知的文字包起来,在访问哔哩哔哩时就会得到一条通知,通知内容为「( ゜- ゜)つロ 乾杯~」。