规则系统¶
Surge 的规则系统用于决定网络流量的出站策略。规则按顺序逐条匹配,命中的第一条规则生效。
规则语法¶
基于域名的规则¶
DOMAIN¶
精确匹配域名:
DOMAIN-SUFFIX¶
匹配域名后缀(包括完整域名):
google.com、www.google.com、mail.google.com。
DOMAIN-KEYWORD¶
匹配域名中包含的关键字:
google.com、www.google.com.hk。
DOMAIN-SET¶
专为大量域名设计,支持数千条记录的快速搜索。文件中的每一行都是一个域名,以 . 开头则匹配所有子域名及该域名本身:
支持 extended-matching 参数,同时匹配 SNI 和 HTTP Host 请求头(iOS 5.8.0+ / Mac 5.4.0+):
基于 IP 的规则¶
IP-CIDR¶
匹配 IPv4 地址范围:
从 Surge Mac 6.0.0 开始,支持不带 / 掩码的单一 IPv4 地址(视为 /32)。
IP-CIDR6¶
匹配 IPv6 地址范围:
GEOIP¶
根据 GeoIP 数据库匹配国家/地区:
IP-ASN¶
匹配自治系统编号:
no-resolve 参数¶
当遇到 GEOIP 或 IP-CIDR 规则时,Surge 会发送 DNS 查询以检查请求的主机名是否为域名。使用 no-resolve 选项跳过 DNS 解析:
HTTP 规则¶
USER-AGENT¶
匹配 User-Agent,支持通配符 * 和 ?:
URL-REGEX¶
匹配 URL 正则表达式:
追加 extended-matching 参数同时测试 HTTP Host 请求头和 SNI:
进程规则(仅限 Mac)¶
PROCESS-NAME¶
匹配请求的进程名称,支持通配符 * 和 ?:
逻辑规则¶
AND¶
所有子规则都匹配时触发:
OR¶
任意子规则匹配时触发:
NOT¶
反转原始规则的评估结果:
逻辑规则支持嵌套:
子网规则¶
SUBNET¶
根据当前网络环境选择策略:
子网表达式支持:
| 表达式 | 说明 |
|---|---|
SSID:value |
匹配 Wi-Fi SSID,支持通配符 |
BSSID:value |
匹配 Wi-Fi BSSID,支持通配符 |
ROUTER:value |
匹配路由器 IP 地址 |
TYPE:WIFI |
匹配所有 Wi-Fi 网络 |
TYPE:WIRED |
匹配所有有线网络 |
TYPE:CELLULAR |
匹配所有蜂窝网络 |
杂项规则¶
端口规则¶
SRC-IP¶
匹配客户端 IP 地址(仅适用于远程机器):
PROTOCOL¶
匹配请求协议:
支持的值:HTTP、HTTPS、TCP、UDP、DOH、DOH3、DOQ、QUIC、STUN。
协议匹配说明
PROTOCOL,TCP涵盖 HTTP 和 HTTPS 连接PROTOCOL,UDP也可匹配 QUIC 流量DOH/DOH3/DOQ仅用于匹配 Surge 自身的加密 DNS 请求,需配合encrypted-dns-follow-outbound-mode=true使用STUN检测用于过滤 P2P 流量
SCRIPT¶
使用 JavaScript 脚本作为规则:
CELLULAR-RADIO(仅限 iOS)¶
匹配当前蜂窝网络无线电技术:
可能的值:GPRS、Edge、WCDMA、HSDPA、HSUPA、CDMA1x、CDMAEVDORev0、CDMAEVDORevA、CDMAEVDORevB、eHRPD、HRPD、LTE、NRNSA、NR。
HOSTNAME-TYPE¶
匹配主机名的形式(Mac 5.7.3+):
支持的关键字:IPv4、IPv6、DOMAIN、SIMPLE(不含点的主机名,如 localhost)。
DEVICE-NAME / MAC-ADDRESS¶
匹配客户端设备名称或 MAC 地址(Mac 6.1.0+):
规则集 (Ruleset)¶
内部规则集¶
Surge 提供两个内置规则集:
SYSTEM — 包含 macOS 和 iOS 系统请求的规则:
LAN — 包含局域网 IP 和 .local 后缀的规则:
外部规则集¶
引用远程或本地文件中的规则列表。规则集文件每行包含一个不带策略的规则声明:
使用方式:
支持可选参数:
no-resolve:跳过 DNS 解析extended-matching:域名规则同时匹配 SNI 和 HTTP Host
内联规则集(Mac 5.3.1+)¶
直接在配置文件中嵌入规则。内联规则集与独立文件共享相同的语法,并受益于相同的预处理/索引优化。
最终规则 (FINAL)¶
FINAL 规则必须写在所有其他规则之后,作为默认策略:
选项: dns-failed¶
当 DNS 查询失败时使用 FINAL 规则: