Surge 使用手册:策略组

本文来自 Surge 使用手册|如何定制自己的规则配置 专题

接上一篇Surge 使用手册:规则,谈谈和规则有关的策略组

策略组

先来看看策略组在图形化界面的什么位置,在「首页 > 出站模式 > 代理服务器」

可以看到目前有「PROXY」和「AUTO」连个策略组,选中「新的策略组」

选中「组类型」看看都有哪些类型

手动选择

好了开始讲配置,先看个小例子

[General]
loglevel = notify
skip-proxy = 192.168.0.0/16, 193.168.0.0/24, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, 17.0.0.0/8, 127.0.0.1, localhost, *.local
dns-server = system,119.29.29.29,223.5.5.5
allow-wifi-access = false
ipv6 = false

[Proxy]
# 节点名称 = 协议,服务器地址,服务器端口,encrypt-method=加密协议,password=密码,obfs=混淆类型(http/tls),obfs-host=混淆地址
1 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
2 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
3 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=tls, obfs-host=yunjiasu-cdn.net
4 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=http, obfs-host=bing.com

[Proxy Group]
# 策略组名称 = 策略组类型,策略组名称或者节点名称
# 节点选项
PROXY = select,AUTO,1,2,3,4
# 节点延迟自动测试
AUTO = url-test,1,2,3,4,url = http://www.gstatic.com/generate_204

[Rule]
USER-AGENT,YouTube*,2
DOMAIN-SUFFIX,youtube.com,2
DOMAIN-KEYWORD,google,PROXY

FINAL,DIRECT

经过上一篇相信你可以看懂上述例子中我对于 Youtube 应用和网址使用了一个名为「2」的策略,而这个策略可以看到是「[Proxy]」中的节点。为什么要这么做?因为有些人拥有高速的节点或者专门用来看视频的大流量节点,这时候可以指定应用或网站走指定的节点。

然后看第三条 DOMAIN-KEYWORD,google,PROXY 实际上其中的「PROXY」并不是内置策略而是策略组名称,这一点在「增加规则」的图形化「策略」界面中也看到了。

为什么要专门说这个?大家使用网上流传的规则时有时候会遇到「规则 #777 使用了一个未知的策略:Proxy。」一般来说有关「PROXY」这个关键字的都是因为规则所使用的策略组名称和「[Proxy Group]」下的名称不符合(即节点使用策略名 Proxy 而策略组名称却是 PROXY),这时候一个省事的办法不是去改规则(规则少则成十多则上千哪改得过来?)仅将策略组下(一般约定俗成)选择节点的策略组改成 Proxy 即可。

接着再延伸一点,现在已经明确规则不但可以使用内置策略还可以使用节点名称或者自定义策略组,那么再结合刚才说的如果有多个用于视频服务的节点那每次修改都需要修改规则,这样很麻烦所以可以新建一个专门用于专用节点的视频服务策略

[General]
loglevel = notify
skip-proxy = 192.168.0.0/16, 193.168.0.0/24, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, 17.0.0.0/8, 127.0.0.1, localhost, *.local
dns-server = system,119.29.29.29,223.5.5.5
allow-wifi-access = false
ipv6 = false

[Proxy]
# 节点名称 = 协议,服务器地址,服务器端口,encrypt-method=加密协议,password=密码,obfs=混淆类型(http/tls),obfs-host=混淆地址
1 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
2 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
3 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=tls, obfs-host=yunjiasu-cdn.net
4 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=http, obfs-host=bing.com

[Proxy Group]
# 策略组名称 = 策略组类型,策略组名称或者节点名称
# 节点选项
PROXY = select,AUTO,1,2,3,4
# 视频服务
VIDEO = select,2,3
# 节点延迟自动测试
AUTO = url-test,1,2,3,4,url = http://www.gstatic.com/generate_204

[Rule]
# 使用名为「VIDEO」的策略组
# Youtube
USER-AGENT,YouTube*,VIDEO
DOMAIN-SUFFIX,youtube.com,VIDEO
# > Hulu
USER-AGENT,Hulu*,VIDEO
DOMAIN-SUFFIX,hulu.com,VIDEO
DOMAIN-SUFFIX,huluim.com,VIDEO

FINAL,DIRECT

如上示例,新建一个专门用于视频服务名为「VIDEO」的策略组,此处假设 2 和 3节点用于看视频,那么将相关规则使用名为「VIDEO」的策略组,之后加入 2 节点不可用时选择 3 节点是不是比手动改节点要方便多了?

如果还不是很清楚将上面那个示例完整复制到「文本模式」中覆盖粘贴,然后看看界面上多了什么新变化吧。

刚才新建的 VIDEO = select,2,3中的 select 就是「组类型」中的「手动选择」,现在大致明白一条策略组的组成形式了。

URL 延迟自动测试和 URL 可用性自动测试

接着往下说「AUTO」策略组,先看示例

[Proxy]
# 节点名称 = 协议,服务器地址,服务器端口,encrypt-method=加密协议,password=密码,obfs=混淆类型(http/tls),obfs-host=混淆地址
1 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
2 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
3 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=tls, obfs-host=yunjiasu-cdn.net
4 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=http, obfs-host=bing.com

[Proxy Group]
# 策略组名称 = 策略组类型,策略组名称或者节点名称
# 节点选项
PROXY = select,AUTO,1,2,3,4
# 节点延迟自动测试
AUTO = url-test,1,2,3,4,url = http://www.gstatic.com/generate_204

现在有两个策略组「PROXY」和「AUTO」,前面说了「PROXY」是手动选择指定节点,而「AUTO」使用的「URL 延迟自动测试」(组类型 url-test)来自动测出延迟最低的节点。也就是说当你在「PROXY」策略组中选中策略「AUTO」则使用自动测试结果或者手动选择其它节点。

而 URL 可用性自动测试(组类型 fallback)是什么,这是 Surge 3 新加入的功能,用法和「URL 延迟自动测试」是一样的

[Proxy]
# 节点名称 = 协议,服务器地址,服务器端口,encrypt-method=加密协议,password=密码,obfs=混淆类型(http/tls),obfs-host=混淆地址
1 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
2 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
3 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=tls, obfs-host=yunjiasu-cdn.net
4 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=http, obfs-host=bing.com

[Proxy Group]
# 策略组名称 = 策略组类型,策略组名称或者节点名称
# 节点选项
PROXY = select,AUTO,1,2,3,4
# 节点延迟自动测试
AUTO = fallback,1,2,3,4,url = http://www.gstatic.com/generate_204

但它和 URL 可用性自动测试不同之处在于它不是测试延迟最低的节点,而是检测当前节点是否不可用,如不可用则使用下一个选择项。

现在来想想如何善加利用这两个功能?我来给个示例,假如我现在有两个节点 A 和 B 主要用于上网其中 B 也可以用作看视频但不是最优选,还有四个节点专门用于看视频那么该怎么规划很明显了吧?看看下面这个完整的示例

[Proxy]
# 节点名称 = 协议,服务器地址,服务器端口,encrypt-method=加密协议,password=密码,obfs=混淆类型(http/tls),obfs-host=混淆地址
A = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
B = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
1 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
2 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
3 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=tls, obfs-host=yunjiasu-cdn.net
4 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=http, obfs-host=bing.com

[Proxy Group]
# 策略组名称 = 策略组类型,策略组名称或者节点名称
# 节点可用性自动测试
PROXY = fallback,A,B,url = http://www.gstatic.com/generate_204
# 视频服务
VIDEO = select,AUTO,B
# 节点延迟自动测试
AUTO = url-test,1,2,3,4,url = http://www.gstatic.com/generate_204

如果还是不懂我来屡屡:

首先「PROXY」策略组使用 fallback 来测试默认使用 A 当失败时使用 B。

其次「AUTO」策略组使用 url-test 来自动测试当前网络下哪个看视频的视频专用节点延迟最低。

最后「VIDEO」策略组使用 select 手动选择使用节点,默认「AUTO」使用自动测试的结果,当这四个节点比如是「机场」的节点,当流量用完时手动选择节点 B(别忘了 B 之前说也可用于看视频)

除了上面这个例子动用你强大的脑洞来实现更多玩法吧。

list 代理声明

顺带一提,在 Surge 3 还有的一个新功能,你可以将节点保存在一个 .list 文件中然后在策略组中使用,现在已经有「机场」跟进该功能了,那么怎么使用呢?

[Proxy Group]
# 策略组名称 = 策略组类型,策略组名称或者节点名称
# 节点可用性自动测试
PROXY = fallback,policy-path=Proxies.list,url = http://www.bing.com/
# 视频服务
VIDEO = select,AUTO,PROXY
# 节点延迟自动测试
AUTO = url-test,policy-path=https://example.com/Video.list,url = http://www.bing.com/

这个策略组中的「policy-path=」后接着的就是本地文件或者是网址。

SSID

[Proxy Group]
# 策略组名称 = 策略组类型,策略组名称或者节点名称
# 节点可用性自动测试
PROXY = fallback,policy-path=Proxies.list,url = http://www.bing.com/
# 视频服务
VIDEO = select,AUTO,PROXY
# 节点延迟自动测试
AUTO = url-test,policy-path=https://example.com/Video.list,url = http://www.bing.com/
Home = ssid, default = PROXY, "DivineEngine" = DIRECT

简单的说,这是一个名为「Home」的 SSID 的策略组,使用这个策略时默认行为为代理,当遇到 Wi-Fi 名为「DivineEngine」时行为变成直连,如

DOMAIN-SUFFIX,google.com,Home

为什么要这么做?因为有些人的公司或者特定环境是不需要代理或去广告行为的。

如果想更简单粗暴的在某些环境下我连 Surge 都不想让它启用,那还有更简单的方法

[General]
loglevel = notify
skip-proxy = 192.168.0.0/16, 193.168.0.0/24, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, 17.0.0.0/8, 127.0.0.1, localhost, *.local
dns-server = system,119.29.29.29,223.5.5.5
allow-wifi-access = false
ipv6 = false

[Proxy]
# 节点名称 = 协议,服务器地址,服务器端口,encrypt-method=加密协议,password=密码,obfs=混淆类型(http/tls),obfs-host=混淆地址
1 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
2 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
3 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=tls, obfs-host=yunjiasu-cdn.net
4 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=http, obfs-host=bing.com

[Proxy Group]
# 策略组名称 = 策略组类型,策略组名称或者节点名称
# 节点选项
PROXY = select,AUTO,1,2,3,4
# 视频服务
VIDEO = select,2,3
# 节点延迟自动测试
AUTO = url-test,1,2,3,4,url = http://www.gstatic.com/generate_204

[Rule]
# 使用名为「VIDEO」的策略组
# Youtube
USER-AGENT,YouTube*,VIDEO
DOMAIN-SUFFIX,youtube.com,VIDEO
# > Hulu
USER-AGENT,Hulu*,VIDEO
DOMAIN-SUFFIX,hulu.com,VIDEO
DOMAIN-SUFFIX,huluim.com,VIDEO

FINAL,DIRECT

# 当遇到某些 Wi-Fi 时暂停 Surge
[SSID Setting]
"Apple Store" suspend=true

增加一个「[SSID Setting]」,如上示例当遇到名为「Apple Store」的 Wi-Fi 时暂停使用 Surge,当离开该 Wi-Fi 时即可自动恢复启动。

下一篇Surge 使用手册:DNS

Conners Hua

这个家伙很懒,什么都没有留下。

您可能还喜欢...

发表评论

电子邮件地址不会被公开。 必填项已用*标注