Files
shadowrocket-rules/docs/01.shadowrocket_configure.md
T
2023-01-26 10:46:10 +08:00

189 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
```
[General]
# 旁路系统。如果禁用此选项,可能会导致一些系统问题,如推送通知延迟。
bypass-system = true
# 跳过代理。此选项强制这些域名或IP的连接范围由Shadowrocket TUN接口来处理,而不是Shadowrocket代理服务器。此选项用于解决一些应用程序的一些兼容性问题。
skip-proxy = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, localhost, *.local, captive.apple.com,*.ccb.com,*.abchina.com.cn,*.psbc.com
# TUN旁路路由。Shadowrocket TUN接口只能处理TCP协议。使用此选项可以绕过指定的IP范围,让其他协议通过。
tun-excluded-routes = 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.0.0.0/24, 192.0.2.0/24, 192.88.99.0/24, 192.168.0.0/16, 198.51.100.0/24, 203.0.113.0/24, 224.0.0.0/4, 255.255.255.255/32, 239.255.255.250/32
# DNS覆写。使用普通DNS或加密DNS(如doh、doq、dot等)覆盖默认的系统DNS。有些dns over https支持http3,所以尝试查询,如果支持就切换到http3。可在doh链接后面加上#no-h3关闭。
dns-server = https://doh.pub/dns-query,https://dns.alidns.com/dns-query,223.5.5.5,119.29.29.29
# 备用DNS。当覆写的DNS解析失败后回退备用DNS,如需指定多个DNS,可用逗号分隔。system表示回退到系统DNS。
fallback-dns-server = system
# 启用IPv6支持。false表示不启用,true表示启用。
ipv6 = false
# 首选IPv6。优先向IPv6的DNS服务器查询AAAA记录,优先使用AAAA记录。false表示不启用。
prefer-ipv6 = false
# 域名直接使用系统DNS进行解析。false表示不启用。
dns-direct-system = false
# ping数据包自动回复。
icmp-auto-reply = true
# 不开启时,REJECT策略默认只有在配置模式下生效。开启后,可以令该策略在其他全局路由模式下都生效。
always-reject-url-rewrite = false
# 私有IP应答。如果不启用该选项,域名解析返回私有IP,Shadowrocket会认为该域名被劫持而强制使用代理。
private-ip-answer = true
# 直连域名解析失败后使用代理。false表示不启用。
dns-direct-fallback-proxy = false
# 当UDP流量匹配到规则里不支持UDP转发的节点策略时重新选择回退行为,可选行为包括DIRECT、REJECT。DIRECT表示直连转发UDP流量,REJECT表示拒绝转发UDP流量。
udp-policy-not-supported-behaviour = REJECT
# 包含配置。如“include=a.conf”表示当前配置包含另一个配置a.conf的内容,当前配置的优先级高于a.conf。该选项是对配置建立包含关系,以满足同时使用多个配置的需求。
include =
[Proxy]
# 添加本地节点。
# Shadowsocks类型:
# 节点名称=ss,地址,端口,password=密码,其他参数(如method=aes-256-cfb,obfs=websocket,plugin=none)
# Vmess类型:
# 节点名称=vmess,地址,端口,password=密码,其他参数(如alterId=0,method=auto,obfs=websocket,tfo=1)
# VLESS类型:
# 节点名称=vless,地址,端口,password=密码,tls=true,其他参数(如obfs=websocket,peer=example.com)
# HTTP/HTTPS/Socks5/Socks5 Over TLS等类型:
# 节点名称=http,地址,端口,用户,密码
# 节点名称=https,地址,端口,用户,密码
# 节点名称=socks5,地址,端口,用户,密码
# 节点名称=socks5-tls,地址,端口,用户,密码,skip-common-name-verify=true
# Trojan类型:
# 节点名称=trojan,地址,端口,password=密码,其他参数(如allowInsecure=1,peer=example.com)
[Proxy Group]
# 代理分组类型:
# select:手动选择节点。
# url-test:自动选择延迟最低节点。
# fallback:节点挂掉时自动切换其他可用节点。
# load-balance:不同规则的请求使用分组里的不同节点进行连接。
# random:随机使用分组里的不同节点进行连接。
# ----------
# policy-regex-filter表示正则式或关键词筛选,常用写法:
# 筛选保留节点名称含有关键词A和B的节点:
# (?=.*(A))^(?=.*(B))^.*$
# 筛选保留节点名称含有关键词A或B的节点:
# A|B
# 筛选排除节点名称含有关键词A或B的节点:
# ^((?!(A|B)).)*$
# 筛选保留节点名称含有关键词A并排除含有关键词B的节点:
# (?=.*(A).)^((?!(B)).)*$
# ----------
# 代理分组其他设置参数:
# interval:指定间隔多长时间后需要重新发起测试。
# timeout:如果测试在超时前未完成,放弃测试。
# tolerance:只有当新优胜者的分数高于旧优胜者的分数加上公差时,才会进行线路更换。
# url:指定要测试的URL。
# ----------
# 不含正则筛选的代理分组,示例:
# 名称=类型(如select,url-test,fallback,load-balance,random),策略(如direct,proxy,订阅名称,代理分组,节点),interval=测试周期,timeout=超时时间,tolerance=公差,select=默认策略(0表示第一个策略,1表示第二个策略,2表示第三个策略……),url=测试地址
# 含正则筛选的代理分组,示例:
# 名称=类型(如select,url-test,fallback,load-balance,random),policy-regex-filter=正则式或关键词筛选,interval=测试周期,timeout=超时时间,tolerance=公差,select=默认策略(0表示第一个策略,1表示第二个策略,2表示第三个策略……),url=测试地址
# ----------
[Rule]
# 规则类型:
# DOMAIN-SUFFIX:匹配请求域名的后缀。如“DOMAIN-SUFFIX,example.com,DIRECT”可以匹配到“a.example.com、a.b.example.com”。
# DOMAIN-KEYWORD:匹配请求域名的关键词。如“DOMAIN-KEYWORD,exa,DIRECT”可以匹配到“a.example.com、a.b.example.com”。
# DOMAIN:匹配请求的完整域名。如“DOMAIN,www.example.com,DIRECT”只能匹配到“www.example.com”。
# USER-AGENT:匹配用户代理字符串,支持使用通配符“*”。如“USER-AGENT,MicroMessenger*,DIRECT”可以匹配到“MicroMessenger Client”。
# URL-REGEX:匹配URL正则式。如“URL-REGEX,^https?://.+/item.+,REJECT”可以匹配到“https://www.example.com/item/abc/123”。
# IP-CIDR:匹配IPv4或IPv6地址。如“IP-CIDR,192.168.1.0/24,DIRECT,no-resolve”可以匹配到IP段“192.168.1.1192.168.1.254”。规则加no-resolve时,IP请求会匹配到这条规则,而域名请求不会用解析出来的IP去匹配这条规则。规则不加no-resolve时,则IP请求可匹配,域名解析后的IP也可匹配。
# IP-ASN:匹配IP地址隶属的ASN编号。如“IP-ASN,56040,DIRECT”可以匹配到微信的相关IP请求。
# RULE-SET:匹配规则集内容。规则集的组成部分需包含规则类型。
# DOMAIN-SET:匹配域名集内容。域名集的组成部分不包含规则类型。
# SCRIPT:匹配脚本名称。
# DST-PORT:匹配目标主机名的端口号。如“DST-PORT,443,DIRECT”可以匹配到443目标端口。
# GEOIP:匹配IP数据库。如“GEOIP,CN,DIRECT”可以匹配到归属地为CN的IP地址。
# FINAL:兜底策略。如“FINAL,PROXY”表示当其他所有规则都匹配不到时才使用FINAL规则的策略。
# AND:逻辑规则,与规则。如“AND,((DOMAIN,www.example.com),(DST-PORT,123)),DIRECT”可以匹配到“www.example.com:123”。
# NOT:逻辑规则,非规则。如“NOT,((DST-PORT,123)),DIRECT”可以匹配到除了“123”端口的其他所有请求。
# OR:逻辑规则,或规则。如“OR,((DST-PORT,123),(DST-PORT,456)),DIRECT”可以匹配到“123”或“456”端口的所有请求。
# ----------
# 规则策略:
# PROXY:代理。通过首页正在使用的代理服务器转发流量。
# DIRECT:直连。连接不经过任何代理服务器。
# REJECT:拒绝。返回HTTP状态码404,没有内容。
# REJECT-DICT:拒绝。返回HTTP状态码200,内容为空的JSON对象。
# REJECT-ARRAY:拒绝。返回HTTP状态码200,内容为空的JSON数组。
# REJECT-200:拒绝。返回HTTP状态码200,没有内容。
# REJECT-IMG:拒绝。返回HTTP状态码200,内容为1像素GIF。
# REJECT-TINYGIF:拒绝。返回HTTP状态码200,内容为1像素GIF。
# REJECT-DROP:拒绝。丢弃IP包。
# REJECT-NO-DROP:拒绝。返回ICMP端口不可达。
# 除此之外,规则策略还可以选择「代理分组」、「订阅名称」、「分组」、「节点」。
# ----------
# 规则匹配的优先级:
# 1.规则从上到下依次匹配。
# 2.域名规则优先于IP规则。
# ----------
# 关于屏蔽443端口的UDP流量的解释内容:HTTP3/QUIC协议开始流行,但是国内ISP和国际出口的UDP优先级都很低,表现很差,屏蔽掉以强制回退HTTP2/HTTP1.1。(如需启用该逻辑规则,请删除AND前面的注释符号#)
# AND,((PROTOCOL,UDP),(DST-PORT,443)),REJECT-NO-DROP
# ----------
# 直连策略的修正规则集。
RULE-SET,https://url/add_rule/main/direct-amend.list,DIRECT
# 代理策略的修正规则集。
RULE-SET,https://url/add_rule/main/proxy-amend.list,PROXY
# 国外常用app单独分流:YouTubeNetflixDisney+HBOSpotifyTelegramPayPalTwitterFacebookGoogleTikTokGitHubSpeedtest。
# 国内常用app单独分流:苹果服务,微软服务,哔哩哔哩,网易云音乐,游戏平台,亚马逊,百度,豆瓣,微信,抖音,微博,知乎,小红书。
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Apple/Apple.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/BiliBili/BiliBili.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/NetEaseMusic/NetEaseMusic.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Baidu/Baidu.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/DouBan/DouBan.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/QuantumultX/WeChat/WeChat.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/DouYin/DouYin.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Weibo/Weibo.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Zhihu/Zhihu.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/XiaoHongShu/XiaoHongShu.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/YouTube/YouTube.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Netflix/Netflix.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Disney/Disney.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/HBO/HBO.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Spotify/Spotify.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Telegram/Telegram.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/PayPal/PayPal.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Twitter/Twitter.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Facebook/Facebook.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Amazon/Amazon.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Sony/Sony.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Nintendo/Nintendo.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Epic/Epic.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/SteamCN/SteamCN.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Steam/Steam.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Game/Game.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Microsoft/Microsoft.list,DIRECT
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Google/Google.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/TikTok/TikTok.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/GitHub/GitHub.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Speedtest/Speedtest.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/QuantumultX/Global/Global.list,PROXY
RULE-SET,https://url/ios_rule_script/master/rule/QuantumultX/China/China.list,DIRECT
# 本地局域网地址的规则集。
RULE-SET,https://url/ios_rule_script/master/rule/Shadowrocket/Lan/Lan.list,DIRECT
# 表示CN地区的IP分流走直连,GEOIP数据库用来判断IP是否属于CN地区。默认使用Shadowrocket自带的GEOIP数据库,如果您想替换其他数据库,可在 设置 - GeoLite2数据库 里添加和修改。
GEOIP,CN,DIRECT
# 表示当其他所有规则都匹配不到时才使用FINAL规则的策略。
FINAL,PROXY
[Host]
# 域名指定本地值:
# example.com=1.2.3.4
# 域名指定DNS服务器:
# example.com=server:1.2.3.4
# wifi名称指定DNS服务器,如需指定多个DNS,可用逗号分隔:
# ssid:wifi名称=server:1.2.3.4
localhost = 127.0.0.1
[URL Rewrite]
# Google搜索引擎防跳转的重写。
^https?://(www.)?g.cn https://www.google.com 302
^https?://(www.)?google.cn https://www.google.com 302
[Script]
# BoxJs安装脚本。
Rewrite: BoxJs = type=http-request,pattern=https?:\/\/boxjs\.(com|net),script-path=https://url/scripts/master/box/chavy.boxjs.js, requires-body=true, timeout=120
[MITM]
# Shadowrocket打开HTTPS解密方法:
# 1.点击配置文件后面ⓘ - HTTPS解密 - 证书 - 生成新的CA证书 - 安装证书。
# 2.手机设置 - 已下载描述文件 - 安装。
# 3.手机设置 - 通用 - 关于本机 - 证书信任设置 - 开启对应Shadowrocket证书信任。
# Shadowrocket仅会解密hostname指定的域名的请求,可以使用通配符。也可以使用前缀 - 排除特定主机名,如 -*.example.com。iOS系统和某些应用有严格的安全策略,仅信任某些特定的证书,对这些域名启动解密可能导致问题,如 *.apple.com*.icloud.com。
hostname = www.google.cn`
```