基于ZHUANGZHUANG
编辑,自用:</strong>Surfboard
</strong>Clash
日志等级: warning, notify, info, verbose (默认值: notify)
loglevel = notify
跳过某个域名或者 IP 段, 这些目标主机将不会由 Surge Proxy 处理 (macOS 版本中, 如果启用了 Set as System Proxy, 这些值会被写入到系统网络代理设置)
skip-proxy = 127.0.0.1, 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, localhost, *.local
强制使用特定的 DNS 服务器
dns-server = 223.5.5.5, 119.29.29.29, 114.114.114.114, 8.8.8.8, system
允许外部控制器访问 Surge, Surge Dashboard 或 Surge CLI 进行管理控制
external-controller-access = passw@127.0.0.1:6170
是否启动完整的 IPv6 支持 (默认值: false)
ipv6 = false
TUN规则匹配模式 (默认值: false)
enhanced-mode-by-rule = 1
拒绝页面显示错误
show-error-page-for-reject = true
不包括简单主机名
exclude-simple-hostnames = true
Surge 作为 HTTP/SOCKS5 代理服务器向 Wi-Fi 网络下的其他设备提供服务器
allow-wifi-access = true
HTTP 代理服务端口 (默认值: 6152)
http-listen = 0.0.0.0:8888
SOCKS5 代理服务端口 (默认值: 6153)
socks5-listen = 0.0.0.0:8889
HTTP 代理服务端口 (默认值: 6152)
wifi-access-http-port = 8888
SOCKS5 代理服务端口 (默认值: 6153)
wifi-access-socks5-port = 8889
兼容模式(默认禁用)
compatibility-mode = 0
compatibility-mode = 1
compatibility-mode = 2
compatibility-mode = 3
启用 Network.framework (默认值: false)
network-framework = true
INTERNET 测试 URL (使用网络诊断功能时访问的 URL)
internet-test-url = http://wwww.gstatick.com/generate_204
代理测速 URL (测试代理策略时的 URL)
proxy-test-url = http://wwww.gstatick.com/generate_204
测速超时 (秒)
test-timeout = 5
该段定义抓取流量的过滤
</p>
隐藏所有发往 *.Apple.com 和 *.icloud.com 的请求(该选项只是在抓取结果中隐藏了请求)
hide-apple-request = true
隐藏Crashlytics请求
hide-crashlytics-request = true
隐藏UDP会话(默认值: false)
hide-udp = false
使用关键词过滤器(默认值: false)
use-keyword-filter = false
keyword-filter-type = blacklist
keyword-filter-type = whitelist
关键字 (例:abc def)
keyword-filter = abc,def
该段定义可用的代理策略
</p>
策略名不可重复, 策略名须先定义才能在其它部分引用</p>
写法是:策略名 = 代理类型, 代理地址, 端口号,加密方式, 用户名, 密码
ss_obfs = custom, 1.1.1.1, 80, chacha20-ietf-poly1305, password
ss = custom, 1.1.1.1, 80, chacha20-ietf-poly1305, password
socks5 = socks5, 1.1.1.1, username, password
http = http, 1.1.1.1, username, password
https = https, 1.1.1.1, username, password
利用服务器定义的方式实现的广告通过选择
Ad-Pass 不拦截广告, Ad-Block 直接拒绝, Ad-GIF 返回一个透明像素图
Ad-Pass = direct
Ad-Block = reject
Ad-GIF = reject-tinygif
该段定义可用的策略组
</p>
有 4 种策略组类型: “select”, “url-test”, “fallback” 和 “ssid”</p>
手动选择:Auto, Proxy01, Proxy02, Proxy03
Proxy = select, Auto, Proxy01 , Proxy02, Proxy03
根据 Wi-FI 的 SSID 决定:默认策略 Auto, 数据网络策略 ProxyA, 连接到 123 的 Wi-FI 网络策略 ProxyB, 连接到 456 的 Wi-FI 网络策略 ProxyC
Scene = ssid, default = Auto, cellular = ProxyA, “123” = ProxyB, “456” = ProxyC
interval 单位秒,指定间隔多长时间后需要重新发起测试,默认值:600,interval 并不是指每隔多少秒就会发起测试,而是只有超过了这个时间才会重新发起测试。若使用该 group 的 rule 一直没有触发,那么并不会引发再次测试</p> timeout 单位秒,每次测试最长持续时间,默认值:5 tolerance 单位毫秒,只有当 原来优胜者的成绩 - 新的优胜者的成绩 > tolerance 时,才会进行线路更换,避免因为较小线路波动频繁引发线路变换。默认值:200
AutoGroup = url-test, ProxyA, ProxyB, ProxyC, url = http://www.gstatic.com/generate_204, interval = 600, tolerance = 200, timeout = 5
包含策略 Proxy01, Proxy02, Proxy03, 测试 url 为 http://www.bing.com, 600s后上次的测试结果将被抛弃,重新测试 如果比原线路的响应时间, 好100ms以上的时候, 触发线路变更, 如果某策略在5s后依然没有完成, 放弃该策略。 选出延迟最低的策略
Auto = url-test, Proxy01, Proxy02, Proxy03, url = http://www.bing.com/, interval = 600s, tolerance = 100ms, timeout = 5s
以代理服务器的选择模式实现广告的通过选择
AdBlock = select, Ad-GIF, Ad-Block, Ad-Pass
类型 | 值 | 策略 | Surfboard |
---|---|---|---|
DOMAIN, | www.apple.com, | DIRECT | — |
DOMAIN-SUFFIX, | apple.com, | DIRECT | — |
DOMAIN-KEYWORD, | apple, | DIRECT | — |
IP-CIDR, | 10.0.0.0/8, | DIRECT | — |
GEOIP, | CN, | DIRECT | — |
USER-AGENT, | Instagram*, | PROXY | NO |
URL-REGEX, | ^http:\/\/google.com, | PROXY | NO |
PROCESS-NAME, | Telegram, | PROXY | BETA |
RULE-SET, | SYSTEM, | DIRECT | — |
AND, | ((DOMAIN, abc.com), (USER-AGENT, Surge*)), | DIRECT | — |
OR, | ((DOMAIN, abc.com), (USER-AGENT, Surge*)), | DIRECT | — |
NOT, | ((DOMAIN, abc.com)), | PROXY | — |
DEST-PORT, | 80, | DIRECT | — |
SRC-IP, | 192.168.20.100, | DIRECT | — |
IN-PORT, | 6152, | DIRECT | — |
FINAL, | — | PROXY | — |
有三种基于域名的规则: “DOMAIN”, “DOMAIN-SUFFIX” 和 “DOMAIN-KEYWORD”
DOMAIN, www.apple.com, DIRECT
DOMAIN-SUFFIX, google.com, DIRECT
DOMAIN-KEYWORD, apple, DIRECT
DOMAIN-KEYWORD, google, ProxyHTTP, force-remote-dns
有两种基于IP的规则: “IP-CIDR” , “GEOIP”
IP-CIDR, 10.0.0.0/8, DIRECT
IP-CIDR, 192.168.0.0/16, DIRECT, no-resolve
GEOIP, CN, DIRECT
有两种HTTP规则: “USER-AGENT”, “URL-REGEX”</p> HTTP规则用于HTTP请求或HTTPS请求。它不会影响TCP连接
NO
USER-AGENT, 如果请求的用户代理匹配, 则匹配规则。通配符*和?都受支持
USER-AGENT, Instagram*, DIRECT
NO
URL-REGEX, 如果URL与正则表达式匹配, 则匹配规则
URL-REGEX, ^http://google\.com, DIRECT
BETA
PROCESS-NAME, 可以为指定的进程分配策略
PROCESS-NAME, Telegram, Proxy
规则集包含多条子规则, 可以是另一个本地 list 文件, 或者是一个远程 URL
RULE-SET, SYSTEM, DIRECT
RULE-SET, LAN, DIRECT
RULE-SET, URL, List, update-interval=300
逻辑规则三种:“AND”, “OR”和“NOT”</p> 可以组合多个子规则, 且可进行多层嵌套, 用于某些复杂场景的判断
AND, ((#Rule1), (#Rule2), (#Rule3)...), Policy
OR, ((#Rule1), (#Rule2), (#Rule3)...), Policy
NOT, ((#Rule1)), Policy
Miscellaneous规则三种:“DEST-PORT”, “SRC-IP”和“IN-PORT”</p>
DEST-PORT, 80, DIRECT
SRC-IP, 192.168.20.100, DIRECT
IN-PORT, 6152, DIRECT
FINAL规则必须在所有其他规则之后编写。它定义了与任何其他规则不匹配的请求的默认策略
FINAL, Proxy, dns-failed
触发通知
AND, ((DOMAIN, raw.githubusercontent.com), (USER-AGENT, Surge*)), DIRECT, notification-text=“规则集更新”, notification-interval=3 //更新提醒
该段定义本地 DNS 记录
</p>
该功能等同于 /etc/hosts, 加上了泛解析和别名支持
*.taobao.com = server:223.5.5.5
*.jd.com = server:223.5.5.5
*.tmall.com = server:223.5.5.5
该段定义针对 HTTP 请求的 URL 重定向规则
</p>
Header模式
^http://www\.google\.cn http://www.google.com header
302模式
^http://yachen\.com https://yach.me 302
Reject模式
^http://ad\.com/ad\.png _ reject