内容纲要

🗂 | 本文目录: 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 – 仅使用数据网络;

除了上述的内置策略,策略可以是代理服务器,也可以是策略组。

一开始只记住 DIRECTREJECT 即可,等之后熟悉了就会知道怎么搭配各种玩法。

规则类型

了解了「策略」,实际应用还需要知道「规则类型」和「内容」。

规则类型分为 3 种:标准规则、逻辑规则和规则集

标准规则:

  • DOMAIN
  • DOMAIN-SUFFIX
  • DOMAIN-KEYWORD
  • IP-CIDR
  • IP-CIDR6
  • GEOIP
  • USER-AGENT
  • URL-REGEX
  • SCRIPT
  • PROTOCOL
  • DOMAIN-SET
  • SUBNET
  • CELLULAR-CARRIER
  • CELLULAR-RADIO

逻辑规则:

  • AND
  • OR
  • NOT

规则集:

  • RULE-SET

注释

可以使用 #// 对规则进行注释说明

[General]

[Rule]
# GeoIP China 使用直连
# GEOIP,CN,DIRECT

FINAL,DIRECT // FINAL 使用直连
  • 当说明为独立一行时,使用 #,可表示对下列一条或多条内容的说明;
  • 当一条规则前加上 # 时,表示禁用该条规则;
  • 当仅对某一条规则进行说明时可在其后加上 // 来单独说明这条规则;

通知

使用 notification-text 参数可以在触发规则时让 Surge 弹出一条通知:

[General]

[Rule]
DOMAIN-SUFFIX,bilibili.com,DIRECT,notification-text="( ゜- ゜)つロ 乾杯~"

FINAL,DIRECT

如上示例,使用双引号把你要通知的文字包起来,在访问哔哩哔哩时就会得到一条通知,通知内容为「( ゜- ゜)つロ 乾杯~」。

延伸

参考