Note
本使用手册以 Shadowrocket 官方群组 使用的关键词列表为基础进行编写,同时收录并同步更新 懒人配置文件,以帮助用户能够更好的理解和使用 Shadowrocket 软件。Johnshall 的仓库 提供的懒人配置也将以本仓文件为基础继续更新。本仓 Original 分支 同时保有原始文件,其他需求可查看 配色与配置仓库
本仓以普通用户的身份对原作者及所有对相关项目做出贡献的人表示由衷的感谢!
Note
Shadowrocket(常被用户称为“小火箭”)是一款由 Shadow Launch Technology Limited 专为 iOS 设备开发的网络代理工具,同时也支持 Apple TV 和使用 M 系列芯片的 Mac 等设备。Shadowrocket 提供了灵活的配置选项,它通过将设备的网络流量转发至代理服务器帮助用户提升在线隐私保护
Tip
- 点击 目录标题 可以快速定位到相关正文
- 点击正文的 蓝色标题 可以快速回到目录
现阶段已支持的协议类型
Subscribe(订阅)、Shadowsocks、ShadowsocksR、Vmess、VLESS、Relay、Socks5、Socks5 Over TLS、HTTP、HTTPS、HTTP2、Trojan、Hysteria、Hysteria2、AnyTLS、TUIC、Juicity、WireGuard、Snell v2、Brook、Lua
也可以在 首页 > 右上角
➕
> 类型 中查看服务器各协议节点的纯文本格式参见 编写本地节点
Shadowrocket 兼容多种服务器订阅格式,以及支持多种 代理协议 包括 WireGuard 节点
首页 > 左上角 > 扫码添加
此操作须开启摄像头权限
复制节点链接,如
trojan://*
vmess://*
vless://*
等,打开 Shadowrocket 时会自动识别导入此操作须开启剪贴板读取权限
首页 > 右上角
➕
> 类型Subscribe
> URL 栏输入服务器订阅链接 > 保存订阅链接后面加上 "#1"、"#2"、"#3" 等,可以重复添加同一个订阅
首页 > 右上角
➕
,选择对应节点类型,填写节点配置信息并保存Shadowrocket 为了兼容部分其他类型的配置文件,也支持在配置文件中 编写本地节点 信息,但不要当作 添加节点 的优先选择
若添加或更新订阅时出现异常,请参见 订阅异常
首页 > 右上角
➕
> 类型选择WireGuard
,填写配置信息复制如下格式的
WireGuard
配置信息,打开 Shadowrocket 时会自动弹出添加对话框
,点击添加[Interface] PrivateKey = xxxxxx Address = 172.16.0.2/32 DNS = 1.1.1.1 MTU = 1420 [Peer] PublicKey = xxxxxx AllowedIPs = 0.0.0.0/0 AllowedIPs = ::/0 Endpoint = engage.cloudflareclient.com:2408 Reserved = 12,34,56如果没有自动弹出对话框,可能是因为设置中的
允许检测剪贴板
被关闭了,您可以重新打开,或者点击首页连通性测试
下方的粘贴
按钮,手动添加配置信息
订阅右滑 > 更新
点击首页的更新订阅按钮🔄
设置 > 订阅 > 打开时更新(刷掉后台,重新打开应用程序时会自动更新订阅)
设置 > 订阅 > 自动后台更新(需在系统
设置 > 通用 > 后台App刷新
中开启对 Shadowrocket 的允许,更新周期可设1-24小时)Shadowrocket 提供了
更新订阅
的快捷指令,可以实现自动化操作长按屏幕的应用图标 > 更新订阅
若添加或更新订阅时出现异常情况,请参见 订阅异常
设置 > 订阅 > 根据
Ping
排序
节点分享
长按节点 > 拷贝,可以把节点链接分享给其他设备
左滑节点 > 二维码,其他设备可以通过扫码添加节点(二维码页面点击右上角的
分享
按钮,可以选择其他形式传送二维码)
节点二维码缺乏统一标准。某些协议 Vmess 的节点,当使用其他代理工具扫码添加时,可能会丢失部分节点信息,导致不能连接。如果遇到此问题,请仔细检查同一个节点的各项配置信息是否一致
点击节点后面的
ⓘ
图标,滑动至页面底部,有多种分享节点的菜单展开节点列表,点击连通性测试下方的编辑按钮
•••
,勾选需要分享的节点,点击左上角的复制
,可以把多个节点链接同时分享给其他设备节点整理
调整顺序:点击编辑按钮
•••
,按住订阅后面的≡
图标可以调整订阅之间的上下顺序(本地节点默认置顶位置)节点分类:非订阅形式添加的节点,默认会归类为
本地节点
。如果需要重新对本地节点进行分类,可以使用折叠
功能。点击编辑按钮•••
,勾选节点,点击左上角的折叠
,为新分类的节点组命名(折叠
功能可以选择本地节点或者订阅节点)删除节点:点击编辑按钮
•••
,点击左上角的删除
,可以选择删除全部节点或者删除连通性测试结果中的超时节点滑动菜单:向右滑动订阅,可以选择
测试
当前订阅节点的连通性,或者更新
当前订阅节点。向右滑动节点,点击测试
可以获取单个节点的连通性测试结果,点击复制
,可以在当前节点列表中新增一个同样配置信息的节点
节点筛选
首页 > 订阅后面的
ⓘ
图标 > 过滤
分组、代理分组的正则写法与以下命令相同,但需删除前后 "/" 符号
- 保留节点名称含有关键词 A 和 B 的节点:
/(?=.*(A))^(?=.*(B))^.*$/
- 保留节点名称含有关键词 A 或 B 的节点:
A|B- 排除节点名称含有关键词 A 或 B 的节点:
/^((?!(A|B)).)*$/
- 保留节点名称含有关键词 A 并排除含有关键词 B 的节点:
/(?=.*(A))^((?!(B)).)*$/
批量整理
节点订阅筛选功能支持使用脚本代码批量整理和修改相应订阅中节点的功能选项及节点名称
- 批量给节点中的关键词 a 替换成 b:
$server.title=$server.title.replace(/关键词a/g,'关键词b')- 批量给节点名称增加 abc 开头的关键词:
$server.title='abc'+$server.title- 批量给节点名称增加 abc 结尾的关键词:
$server.title=$server.title+'abc'- 批量开启全部节点的片段:
$server.reserved="1,40-60,30-50"- 批量开启全部节点的多路复用:
$server.mux=1- 批量设置全部订阅节点的 代理链/链式代理/代理通过
$server.chain="订阅名称/节点名称"$server['dialer-proxy']="UUID值"第一种为正式命令,第二种为临时命令,过度期内两种方式以生效者为准。其中 “UUID 值” 可在中转节点或订阅的 JSON 文本中复制,第一种命令的 “订阅名称/节点名称” 也可以使用 UUID 值
其他命令
该功能也支持更复杂的脚本指令,可以参阅 此处示例
当前代理通过另一个代理进行连接,支持多级链式代理。使用代理链方法:
- 使用节点 A 连接,点击节点 A 后面的
ⓘ
图标,代理通过
选择节点 B,流量走向:Client > B > A > Web server
- 支持使用整个订阅作为中转代理链,其生效节点是在该订阅的节点中随机选择。具体生效节点可在 VPN 日志搜索
backend chain
确认- 支持批量修改订阅节点的代理链,可实现同时部署多个节点的链式代理。具体命令可查看 订阅节点筛选 > 批量整理 中的相关指令
- 取消代理通过/代理链:点击开启该功能节点后面的
ⓘ
图标,代理通过
选择右上角的取消
后保存
- 配置:流量根据设定规则进行分配,有些通过节点连接,有些则不通过
- 代理:全部流量都通过同一个节点连接
- 直连:全部流量都不通过节点连接
- 场景:根据不同的网络连接类型(Wi-Fi、蜂窝数据)自动切换到预先设置的路由模式,并选择对应的配置文件和节点连接
点击首页的
连通性测试
,节点列表将会显示以毫秒(ms)为单位的延迟数字,这是数据包的传输时间,不同的延迟测试方法
对应不同的计算结果。长按首页的连通性测试
,可以临时调整测试方法,仅对本次测试生效设置 > 延迟测试方法
- TCP:建立
TCP
连接的往返时间- ICMP:发送
ICMP
回显请求报文和接收ICMP
回显应答报文的往返时间- CONNECT:向测试 URL 发送一个
HTTP HEAD
请求,测量从发送请求到接收响应头部信息的往返时间请优先选择
CONNECT
,因为它更能准确反映节点的连通性。延迟大小与网络上传下载速度没有直接关系,测速请使用其他方法,如:https://www.speedtest.net
用于首页和分组节点的延迟测试
- 设置 > 延迟测试方法 > URL 测试设置
- 首页 > 连通性测试后面的圆形图标 > URL 测试设置
用于代理分组内节点的延迟测试
- 点击配置文件的
ⓘ
图标 > 代理分组 > 编辑或添加包含自动测试类型的分组 > 最下方 URL 栏
场景是根据不同的网络连接类型(Wi-Fi、蜂窝数据)自动切换到预先设置的路由模式,并选择对应的配置文件和节点连接
- 首页 > 全局路由 > 设置的
场景
> 添加场景- 为指定的网络连接类型设置对应的路由模式(
配置
直连
代理
),类型(节点
分组
)、配置文件 及 备注- 网络连接类型分别为:Wi-Fi、蜂窝数据、默认。选择Wi-Fi类型时,SSID需填写Wi-Fi名称
- 首页 > 全局路由 > 选择
场景
软件支持添加蜂窝数据场景,支持以
网络接口
作为匹配条件
- 默认(留空)代表接口
pdp_ip0
- 当设备启用了多个蜂窝数据网络时,可在 Shadowrocket 的 设置 > 诊断 > 网络 中查看对应的接口信息
- 输入格式:
pdp_ip1
pdp_ip2
pdp_ip3
等首次添加场景,可能会弹出申请权限的对话框,具体原因请看 定位权限。当没有允许定位权限时,场景列表的 ✅ 标记不会随着网络类型的切换而自动切换,但这不影响场景功能的正常生效
设置 > 隧道/按需求连接 中的
包含所有网络
相关选项可能会对场景模式的生效造成影响
简单模式是一种以相对简单的方式实现自动测试并选择延迟低的节点进行连接的设置模式
- 首页 > 全局路由 > 分组 > 简单模式
节点的范围是什么?
当开启简单模式,此时下方会出现分组选项,如果没有继续添加分组的操作,节点范围就是首页全部节点,如果添加分组,范围就变成分组里的节点
自动测试的周期是多久?延迟低的判断依据是什么?
设置 > 延迟测试方法 > URL测试设置
,这里规定了测试的间隔时间,默认 600s,即表示每 10 分钟自动进行一次节点延迟测试。相邻两次测试结果中最小延迟值的对比,根据公差机制决定是否切换节点,公差越大,触发节点切换的频次越低,默认 0ms,即表示只要后面测试结果的最低延迟节点比前面测试结果的最低延迟节点延迟小就会自动切换切换的节点给什么规则使用?
Shadowrocket 内置策略
proxy
,简单模式时自动切换的节点使用于所有指向proxy
策略的规则简单模式是自动切换延迟低节点,代理分组的 url-test 类型也是自动切换延迟低节点,两者有何不同?
代理分组创建后,需要在规则中修改策略指向,而简单模式已经关联
proxy
策略,节省了修改规则的步骤
全局路由
选择代理
时将导致所有代理分组
失效,而简单模式依然能够实现自动切换节点添加分组时,
测速
开关是什么作用?开启测速,这个分组才允许自动切换节点。不开启测速,这个分组只能手动选择节点
首页 > 全局路由 > 启用回退
启用回退
的功能是当节点连接失败时自动切换其他可用节点
Shadowrocket 的配置文件(通常以
*.conf
格式存在)主要用于快速设置和调整软件的主要功能。配置文件还可以在多设备间同步以及分享配置文件给其他用户,以快速部署相同设置,简化用户手动配置的流程。用户可以在配置文件里设置 通用参数 以及 添加规则、Hosts、URL重写、HTTPS解密、脚本等内容。同时 Shadowrocket 支持在 配置文件 中 编写本地节点,但该操作方式仅是为了兼容部分其他类型的配置文件,不能当作 Shadowrocket 添加节点 的优先选择。模块 的写法与配置文件相同Shadowrocket 内置了一个默认配置文件
default.conf
,其中包含了国内外主要网站或服务的分流规则,一般可以满足大多数用户的基本需求。此配置文件的内容跟随应用更新而做不定期的调整。如果在使用过程中错误修改或误删配置文件,可以点击配置
>恢复默认配置
。添加配置文件方法:
从 URL 下载配置
- 配置 > 右上角
➕
> 粘贴配置链接 > 下载 > 点击对应的配置文件 > 使用配置- Shadowrocket兼容使用
Clash YAML 格式
的配置文件。使用含节点信息的标准 Clash 链接可以同时导入配置文件和节点信息从本地存储或云盘导入
- 配置 > 从云导入,点击对应存储路径的配置文件
点击配置文件,显示操作菜单:
点击配置文件的
ⓘ
图标,进入编辑菜单:
点击
使用配置
可以启用该配置文件,也可以使用该按钮对当前使用的远程规则集、脚本等远程资源进行更新
使用 UI 交互界面对配置文件的可设置项进行调整。部分设置或命令 不提供 UI 编辑界面,如有需要可在 纯文本编辑 中使用
使用纯文本模式对配置文件的可设置项进行调整。部分设置或命令 不提供 UI 编辑界面,仅在纯文本模式下可以设置
配置文件的纯文本编写方法可以参考:
查看配置文件的纯文本格式。该选项仅当配置文件是以远程配置文件的形式添加进来的才会出现
该选项仅当配置文件是以远程配置文件的形式添加进来时才会出现。其作用是使用新的远程配置替换当前配置文件,同时可以更新当前所用的 规则集、脚本 等远程资源。更新配置会覆盖在本地对配置文件所做的自定义设置,该功能一般适用于在远端维护的配置文件或需要恢复配置文件初始设置。软件同时提供自动更新功能,详细更新设置技巧参见 自动更新 词条
重命名当前配置文件
将当前配置文件以文件的形式导出
从配置 a 扩展出配置 b,此时默认关系是 b 包含 a,也可以理解为 b 继承了 a 的内容
配置 b 优先级高于配置 a,该功能是对配置建立包含关系,以满足同时使用多个配置的需求
点击配置文件的
ⓘ
图标 > 通用 > 包含配置,可以修改或解除包含关系
旁路系统(bypass-system):如果禁用此选项,可能会导致一些系统问题,如推送通知延迟
跳过代理(skip-proxy):跳过代理接口,使用 TUN 接口接管。此选项强制列表中的域名或 IP 的连接范围交由 Shadowrocket
TUN 接口
来处理,而不是 Shadowrocket 代理接口。此选项用于提高部分应用程序对于代理环境的兼容性。若开启 TUN 模式 时,将强制使用 TUN 接管所有连接,此处地址列表可以忽略TUN旁路路由(tun-excluded-routes):Shadowrocket
TUN 接口
只能处理TCP 协议
。使用此选项可以绕过指定的 IP 范围,让其他协议通过DNS覆写(dns-server):使用普通 DNS 或加密 DNS(如
doh
doq
dot
等)覆盖默认的系统 DNS。DNS 覆写支持同时添加多个地址,Shadowrocket 采用并行查询的方式进行解析请求,最先返回的结果将被采用。有些dns over https
支持http3
,所以将会尝试查询,如果支持就切换到http3
,可在doh链接
后面加上#no-h3
关闭。doh
强制通过h3
查询的写法是将https
改成h3
,如h3://dns.alidns.com/dns-query
。其他示例或写法参见:修改DNS、DNS-over-PROXY备用DNS(fallback-dns-server):当覆写 DNS 查询失败或查询时间超过2秒,Shadowrocket 会自动回退备用 DNS。如需指定多个 DNS,可用逗号分隔。
system
表示回退到系统 DNS启用IPv6支持(ipv6):
false
表示不启用,true
表示启用。即使不启用此选项,当本地网络环境支持 IPv6,并且节点域名支持 IPv6 解析,Shadowrocket 也会使用节点的 IPv6 地址进行访问。解决方法是关闭节点域名的 IPv6 解析,或者在配置文件的[Host]
项目下为节点域名指定 IP 地址。在部分地区启用 IPv6 支持可能存在 微信转圈 之类的故障首选IPv6(prefer-ipv6):优先向 IPv6 的 DNS 服务器查询
AAAA
记录,优先使用AAAA
记录。false
表示不启用私有IP应答(private-ip-answer):如果不启用该选项,域名解析返回私有 IP,Shadowrocket 会认为该域名被劫持而强制使用代理
TUN包含路由(tun-included-routes):默认情况下,Shadowrocket 接口会声明自己为默认路由,但由于 Wi-Fi 接口的路由较小,有些流量可能不会通过 Shadowrocket 接口。使用此选项可以添加一个较小的路由表
总是真实IP(always-real-ip):这个选项要求 Shadowrocket 在
TUN
处理 DNS 请求时返回一个真实的 IP 地址而不是假的IP地址DNS劫持(hijack-dns):有些设备或软件总是使用硬编码的 DNS 服务器,例如 Netflix 通过 Google DNS(
8.8.8.8
或8.8.4.4
)发送请求,您可以使用此选项来劫持查询包含配置(include):表示当前配置包含另一个配置的内容,当前配置的优先级高于被包含配置。该选项是对配置建立包含关系,以满足同时使用多个配置的需求
💡 dns-direct-system:直连的域名类规则使用系统 DNS 进行查询。
false
表示不启用💡 icmp-auto-reply:ping 数据包自动回复
💡 always-reject-url-rewrite:不开启时,「重写的REJECT策略」默认只有在配置模式下生效。开启后,可以令该策略在其他全局路由模式下都生效
💡 dns-direct-fallback-proxy:直连域名解析失败后使用代理。
false
表示不启用💡 udp-policy-not-supported-behaviour:当 UDP 流量匹配到规则里不支持 UDP 转发的节点策略时重新选择回退行为,可选行为包括
DIRECT
REJECT
。DIRECT
表示直连转发 UDP 流量,REJECT
表示拒绝转发 UDP 流量💡 stun-response-ip:此选项包含两个命令:
stun-response-ip
和stun-response-ipv6
。该选项允许返回一个虚假的IP地址,如stun-response-ip=1.1.1.1
stun-response-ipv6=::1
,目的是防止真实IP地址泄漏,提高 WebRTC 的隐私和安全性。使用此命令将忽略软件设置选项内的 禁用STUN 的启用状态💡 compatibility-mode:网络兼容模式。
0 > 禁用
;1 > Proxy with Loopback Address
;2 > Proxy Only
;3 > TUN Only
。当参数的值设定为3时的效果等同于启用 Tun模式:设置 > 代理 > 代理类型 > None💡 always-ip-address:强制所有域名使用本地 DNS 解析。设置为
true
表示启用。(此参数为隐藏属性,建议谨慎设置,可能导致相关域名的 CDN 失效。)💡 proxy-dns-server:通过
proxy-dns-server =
参数来指定特定 DNS 解析所有节点域名,若未设置此参数,节点域名默认使用 dns-server 进行解析。此选项适用于 DNS-over-PROXY
带💡符号的参数只能通过配置文件的纯文本模式进行设置,没有 UI 操作选项
在 Shadowrocket 中,"规则"是指用来决定哪些网络请求应该走代理、哪些请求应该直接连接互联网的规则集合。规则通常是基于用户的需求来配置 规则策略,目的是实现对流量的精细控制。软件对规则集的识别不受文件后缀的影响,是以规则集的内容为识别标准
规则的匹配是从上到下逐条匹配的,一旦匹配到某条规则,Shadowrocket 就会停止继续匹配。因此,规则的顺序非常重要,优先级高的规则应该放在前面
- 模块中的规则优先于配置文件
- 上面的规则优先于下面的规则
- 域名类的规则优先于IP类规则
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
可以匹配到IP段192.168.1.1~192.168.1.254
。当域名请求遇到IP类规则时,Shadowrocket会向本地DNS服务器发送查询请求,以判断主机IP是否匹配规则。若IP类规则加no-resolve
(如:IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
),则域名请求将会跳过此规则,不会触发本地DNS查询IP-ASN:匹配 IP 地址隶属的 ASN 编号
如
IP-ASN,56040,DIRECT
可以匹配到属于China Mobile Communications Corporation网络的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
端口的所有请求PROTOCOL:匹配传输协议类型
PROTOCOL
类型不支持单独使用,只能作为子规则类型嵌套于逻辑规则当中。如AND,((PROTOCOL,UDP),(DST-PORT,443)),REJECT-NO-DROP
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 端口不可达
除此之外,规则策略还可以选择
分组
代理分组
订阅
服务器节点
等
根据不同 App 或特定服务指定分流规则,并使其按照设定的规则执行代理策略
示例:YouTube App 分流走代理
- 复制 YouTube 的规则集链接
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Shadowrocket/YouTube/YouTube.list- 点击配置文件的
ⓘ
图标 > 规则 > 右上角➕
,规则类型 选择RULE-SET
,规则策略 选择PROXY
,输入框内粘贴规则集链接
,保存完成(规则策略可以根据需求使用其他选项或节点)iOS系统没有常规分应用代理的操作,只能通过
域名 / ip / ua
规则实现app分流效果。可自行抓包,或者订阅 blackmatrix7 的 规则集。如果引用的链接是域名集,添加规则时,规则类型 请选择DOMAIN-SET
点击配置文件 > 编辑配置 > 规则 > 在规则集上左滑 > 预览
DNS覆写
点击配置文件
ⓘ
图标 > 通用 > DNS 覆写
支持普通 DNS 或加密 DNS(如 DoH、DoQ、DoT 等)。填 system 表示使用系统 DNS。也支持使用 通过代理转发 DNS 查询请求普通 DNS 示例
dns-server = 223.5.5.5,119.29.29.29加密 DNS 示例
1、DNS-over-HTTPS(DoH)dns-server = https://dns.alidns.com/dns-query2、DNS-over-HTTP/3(DoH3)
dns-server = h3://dns.alidns.com/dns-query3、DNS-over-QUIC(DoQ)
dns-server = quic://223.5.5.54、DNS-over-TLS(DoT)
dns-server = tls://223.5.5.5备用DNS
当覆写的 DNS 查询失败或查询时间超过2秒后回退备用 DNS 进行查询。如需指定多个 DNS,可用逗号分隔。
system
表示回退到系统 DNS
通过代理转发 DNS 查询请求
proxy
支持使用 默认节点 转发 DNS 查询请求
dns-server=https://dns.google/dns-query#proxyproxy=name
支持使用 指定节点 转发 DNS 查询请求,需要注意此处的代理名称仅支持 URL 编码,以
香港 01
示例:dns-server=https://dns.google/dns-query#proxy=%E9%A6%99%E6%B8%AF%2001此处指定的节点若填写不规范会自动回退至默认节点
ecs=子网范围
ecs 参数用于设置 EDNS Client Subnet (ECS),向 DNS 服务器传递客户端的子网信息。ECS 允许 DNS 服务器根据指定的子网范围(而非实际客户端 IP)来返回最优结果
示例:
dns-server=https://dns.google/dns-query#ecs=120.76.0.0/14|2620:149:af0::10/56&ecs-override=trueecs-override=true
ecs 参数的强制覆盖。即使客户端的实际 IP 提供了不同的地理位置,查询会强制使用 ecs 指定的子网范围
示例:
dns-server=https://dns.google/dns-query#proxy=name&ecs=1.1.0.0/14|2620:149:af0::10/56&ecs-override=true
当域名请求遇到 IP 类规则时,Shadowrocket 会向本地DNS服务器发送查询请求,以判断主机 IP 是否匹配规则
若IP类规则加
no-resolve
,则域名请求将会跳过此规则,不触发本地 DNS 查询。如:IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
点击配置文件的
ⓘ
图标 > 代理分组 > 右上角➕
。填写名称,根据需求选择 代理分组类型,通过正则
匹配策略,或者从策略输入框后面的•••
手动添加策略,保存策略是规则的组成部分,创建的代理分组只有放到规则里才能发挥作用
- 进入对应规则的详情页,点击策略选项,从列表中选择所需的代理分组,保存
首页下拉,可以快捷进入代理分组界面
select:手动指定所用代理
url-test:根据设定的自动测试周期和结果自动切换延迟最低节点
fallback:节点不可用时自动切换其他可用节点,可用节点范围被上次自动测试结果所限
load-balance:不同规则的请求使用分组里的不同节点进行 负载均衡,相同的域名会使用同一个节点
random:随机使用分组里的不同节点进行连接,相同的域名可能使用不同的节点
使用负载均衡 代理分组类型 的方法:
点击配置文件的
ⓘ
图标 > 代理分组 > 右上角➕
,类型选择load-balance
load-balance
表示不同规则的请求使用分组里的不同节点进行连接,相同的域名会使用同一个节点
配置 > 配置文件 > 编辑配置 > 脚本 URL
当前使用的所有远程脚本资源的展示页面,其后显示的数字为当前生效的数量和总共包含的数量。进入后所显示的 ✅ 表示当前脚本状态生效,❎ 表示当前脚本状态失效。点击相应地址可重新拉取并弹出状态提示,但不会重新编译更新配置文件,点击 使用配置,可以对当前所有 URL 进行更新
配置 > 配置文件 > 编辑配置 > 规则集URL
当前使用的所有远程规则资源的展示页面,其后显示的数字为当前生效的数量和总共包含的数量。进入后所显示的 ✅ 表示当前规则状态生效,❎ 表示当前规则状态失效。点击相应地址可重新拉取并弹出状态提示,但不会重新编译更新配置文件,点击 使用配置,可以对当前所有 URL 进行更新
配置 > 点击配置文件 > 编辑配置 > 复制
点击该选项可将当前配置生成一份备份并命名为
*-copy.conf
主要功能
- 将特定域名映射到指定 IP 地址,绕过 DNS 解析,直接控制域名到 IP 的对应关系
- 将特定域名指定特定的 DNS 服务器进行解析
常见用途
- 屏蔽广告/追踪域名:将广告域名解析到无效 IP(如 0.0.0.0 或 127.0.0.1),使其无法加载
- 绕过 DNS 污染:强制将某些域名指向正确的 IP,避免被劫持
- 本地开发调试:将测试域名指向本地服务器 IP
- 加速访问:手动指定更快的 CDN IP
功能作用
- 修改 HTTP(S) 请求/响应,动态拦截并修改请求的 URL 或内容
常见用途
- 去广告:将广告请求重定向到空地址或本地
- 反追踪:移除 URL 中的跟踪参数
- 路径修正:调整 API 请求路径以适配不同服务器
- 调试工具:将生产环境请求转发到测试服务器
对正在使用的配置开启 HTTPS 解密才能使包含 MITM 的模块完整生效,不包含 MITM 的模块除外
打开HTTPS解密方法:
点击配置文件的
ⓘ
图标 > HTTPS 解密 > 证书 > 生成新的 CA 证书 > 安装证书系统设置 > 已下载描述文件 > 安装
系统设置 > 通用 > 关于本机 > 证书信任设置 > 开启对应 Shadowrocket 证书信任
解密开启后可以选择使用 证书模块
模块是指为 Shadowrocket 提供额外功能的插件或者扩展项,一般是以增强或自定义软件的使用体验为出发点。模块的写法与 配置文件 相同,且模块的 规则优先级 高于配置文件。一般情况下,模块仅包含完整配置文件格式中的特定部分,以实现特定的特殊效果且不影响配置文件的其他功能。用户可以在模块里另外设置 通用参数 以及添加 规则、Hosts、URL重写、证书内容、解密主机名、脚本等内容
下载远程模块
- 配置 > 模块 > 右上角
➕
> 填写链接 > 下载本地新建模块
配置 > 模块 > 新建模块 > 编辑后保存
模块
[MITM]
部分需要加%APPEND%
,表示把内容插入到配置中,不加时会覆盖配置中对应内容,并影响其他模块功能。域名默认仅解密443端口,若域名使用非标端口号需要此处写明hostname = %APPEND% 主机名备注
在实际使用软件时如果需要切换或更换 配置文件,且原配置已开启过 https解密,则需要对新的配置文件重新安装并信任证书,才可使解密继续生效。为免除重复安装 CA 证书,可以选择使用证书模块。证书模块是一组手动添加已生效解密证书的模块,由于模块的优先级高于配置文件,可以使解密状态不受更换配置的影响。其原理参见:模块
点击「已安装证书的配置文件」后面的
ⓘ
图标 > HTTPS 解密 > 证书后面的ⓘ
图标 > 复制新建模块:
软件
配置 > 模块 > 新建模块
,粘贴并自行修改以下内容:#!name=证书(名字可更改) [MITM] enable=true # 确认下方 “ca-passphrase=” 后面填写的「已安装证书的配置文件」的证书密码是否正确,默认密码是:Shadowrocket ca-passphrase=Shadowrocket # 在下方 “ca-p12=”后面粘贴证书内容 ca-p12=原本是可以省略
ca-passphrase
这行参数。但由于引用的配置文件可能已经包含了证书密码,且证书密码可能不是 Shadowrocket,为防止出错,因此才增加ca-passphrase
参数来覆盖引用的配置文件的证书密码
enable=true
忽略当前配置文件内的HTTPS解密状态,使用该模块的证书进行HTTPS解密
Shadowrocket 安装 CA 证书时,如果遇到「输入证书
身份证书
的密码」页面,可以尝试输入:Shadowrocket
Shadowrocket 支持在 配置文件 中编写本地节点,但该操作方式仅是为了兼容部分其他类型的配置文件,不能当作 Shadowrocket 添加节点 的优先选择
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)
Hysteria类型
节点名称=hysteria,地址,端口,auth=密码,obfsParam=混淆,protocol=协议,udp=1,其他参数(如peer=example.com,alpn=h2,upmbps=100,downmbps=100)
Hysteria2类型
节点名称=hysteria2,地址,端口,auth=密码,obfsParam=混淆,udp=1,其他参数(如peer=example.com,alpn=h3)
TUIC类型
节点名称=tuic,地址,端口,password=密码,udp=1,其他参数(如user=uuid值,peer=example.com,alpn=h2)
Juicity类型
节点名称=juicity,地址,端口,password=密码,udp=1,其他参数(如user=uuid值,peer=example.com,alpn=h2)
WireGuard类型
节点名称=wireguard,地址,端口,privateKey=私钥,publicKey=公钥,ip=子网IP,udp=1,其他参数(如dns=1.1.1.1,mtu=1350,keepalive=40,reserved=1/2/3)
Snell v2 类型
节点名称=snell,地址,端口,password=密码,udp=1,其他参数(如obfs=http,obfs-host=example.com,obfs-uri=/abc)
代理日志
记录了网络活动过程中 Shadowrocket 处理请求的具体信息
数据 > 代理 > 启用日志记录
产生网络活动时,返回
数据 > 代理
页面查看日志文件每条记录包含信息:
- 请求 URL
- 请求匹配的规则策略
- 请求传输协议
- 请求发送时间
记录显示
MITM
,表示请求域名已启用解密点击每条记录查看详情,详情页右上角
•••
可以选择类型添加规则
数据 > 代理
页面,右上角•••
可以手动删除所有日志文件。日志文件页面,右上角•••
可以选择导出
数据 > 自动删除 > 打开,程序会自动删除7天前的日志文件。Shadowrocket 已连接状态,手动删除将保留最新的日志文件,未连接时,手动删除所有
DNS 日志
记录了网络活动过程中 DNS 服务器处理域名查询请求的具体信息
数据 > 代理 > DNS > 启用日志记录
产生网络活动时,返回
数据 > DNS
页面查看日志文件每条记录包含信息:
- 请求域名
- 查询结果
- DNS 响应时间
- 处理请求的 DNS
旗帜是根据返回IP地址的地理位置信息自动显示
覆写 DNS
不可用或未返回有效响应时,将回退至备用 DNS
来查询域名
记录信息中如果响应时间超过2秒,意味着系统正在触发回退机制
Shadowrocket 支持将服务器节点、配置文件、模块和脚本文件等数据类型自动同步至 iCloud 云端
数据 > iCloud > 自动同步 > 打开
设备
设置 > 账号 > iCloud
,确保使用iCloud的APP列表中已经开启 Shadowrocket 和iCloud云盘
项目,否则会出现iCloud自动同步失败
的提示同步成功时,点击
iCloud文件
可以看到存储云端的配置文件
文件app > iCloud云盘 > Shadowrocket
,可以看到存储云端的所有数据。其中的shadowrocket.v2.model
文件包含服务器节点的配置信息iCloud服务中断、网络连接问题以及其他复杂原因可能导致 iCloud 同步异常,这种情况建议选择手动删除iCloud备份并重新同步数据
如果用户删除首页某个节点后发现它又自动恢复,可以尝试以下解决方法:数据 > iCloud,服务器节点下面点击删除iCloud备份和同步服务器节点
添加的
场景
和分组
不属于 iCloud 自动同步的数据类型,需要手动备份下载,才能在设备间共享数据
导出节点:将首页的所有节点数据整合成一个 JSON 文件,选择存储在本地或云端,也可以通过其他共享方式传输文件
导入节点:将存储在本地或云端 JSON 文件中的节点数据解析并添加到首页
删除本地节点:一键删除首页所有节点数据
统计
是 Shadowrocket 开启连接后接管设备所有网络传输的流量统计信息
- 数据 > 统计
- 统计包含信息:
- 开始时间
- 连接时间
- Wi-Fi 和蜂窝数据的上下行流量
- 流量分流的柱形图统计
- 默认记录所有流量统计信息。打开
启用存档
将会单独记录每一次连接的流量统计信息,关闭首页连接后可以从归档
查看- 点击右上角
•••
可以重置统计信息首页
订阅
支持显示流量统计信息
- 方法一,订阅链接添加响应头:
subscription-userinfo: upload=xxx; download=xxx; total=xxx; expire=xxx
- 方法二,在订阅链接指向的纯文本 base64 编码前添加
STATUS=xxx
或REMARKS=xxx
字段,这样订阅名称下方就能显示自定义信息。如果没有添加字段或者隐藏用户代理字符串,可能导致不返回相关统计信息,只显示时间
详见词条 连通性测试
设置 > 小组件
服务器节点:根据需求添加6个常用节点,点击
Today 小组件
右上角的>
可以展开查看,方便手动切换节点显示Ping值:启用后,长按
Today小组件
中心位置可以测试服务器节点
连通性并显示延迟数字根据Ping排序:启用后,长按
Today小组件
中心位置可以测试服务器节点
连通性并依延迟大小自动排序添加小组件方法:
Today 小组件
- 负一屏 > 编辑 > 自定 > 点击 Shadowrocket 旁边的
添加
按钮➕
。(系统要求低于 iOS 18)屏幕小组件
- 长按屏幕 > 左上角
➕
> Shadowrocket,选择合适类型添加。(系统要求≥ iOS 17)更新 Shadowrocket 后,如果找不到小组件添加按钮,请尝试重启手机。如果小组件显示
无法加载
,请尝试以下方法:
- 系统设置 > 通用 > 语言与地区,添加或删除一种其他语言
始终开启
VPN 保持连接状态。意外断开 或者重启设备,也会自动连接
脚本 / 模块 / 解密
等需求比较多时建议开启按需求连接
根据添加的
按需求规则
自动切换 VPN 状态。默认规则是任意网络类型下保持连接状态,相当于始终开启
按需求规则:
- 当访问列表中的
域名
时,系统会向 Shadowrocket 发送请求,如果响应成功,VPN 自动连接- 网络中指定的
DNS
(通常认为是网络运营商/Wi-Fi路由器提供的 DNS 服务器地址)与列表任一内容相匹配时,VPN 自动连接或断开SSIDS
填写需要匹配的 Wi-Fi 名称- VPN 连接行为可以通过
网络类型 / 域名 / DNS
条件触发- VPN 断开行为可以通过
网络类型 / DNS
条件触发,不能通过域名
条件触发- 从上到下依次匹配添加的
按需求规则
添加
按需求规则
后,打开按需求连接
开关,规则才能生效同时打开
始终开启
和按需求连接
,只有始终开启
选项能够生效睡眠时断开
当设备进入睡眠状态,VPN 自动断开连接
Shadowrocket 响应系统发送的睡眠指令才会断开连接,有时候熄屏的系统未必处于睡眠状态
显示断开信息
- 显示 VPN 断开连接的通知信息
强制路由
如果开启,这个隧道的路由规则将优先于任何本地自定义的路由,默认是关闭状态
包括所有网络
启用后系统会通过隧道进行路由所有的网络流量,但为维持预期设备功能所必需的指定系统服务的流量除外
- 包括本地网络:如果开启,所有发送到本地网络的流量都将包含在隧道中,如 AirPlay、AirDrop 和 CarPlay 的网络连接
- 包括APNs:如果开启,苹果的 Apple Push Notification 推送通知服务(APN)的网络流量将包含在隧道中
- 包括蜂窝服务:如果开启,来自蜂窝服务的互联网可路由网络流量(VoLTE、Wi-Fi通话、IMS、MMS、视觉语音信箱等)将包含在隧道中。
当前设备与家庭中枢设备处于同一局域网下且开启代理时,如果出现无法正常使用 “家庭” 应用查看流式传输的 HomeKit 实况影像时,可以尝试开启此项以提高相应的兼容性
设置 > 代理 > 前置代理
「前置代理」表示所有流量先通过 HTTP/SOCKS5 代理转发,再根据配置规则向节点服务器发送请求
代理共享指的是将你当前配置的代理设置分享给其他设备使用。通过代理共享,你可以把自己配置好的代理服务器(如Shadowsocks、Vmess等)通过局域网或者热点网络的方式让其他设备也能够通过相同的代理设置访问互联网
在局域网条件下
- A设备:设置 > 代理 > 代理共享 > 启用共享
- B设备:系统设置 > WiFi > WiFi 名称后面的
ⓘ
图标 > HTTP代理 > 手动输入Shadowrocket「代理共享」的IP和端口使用热点条件下
- A设备:开启热点
- B设备:连接热点
- 然后按照局域网条件下方法进行设置
此处需要注意下操作顺序,原理是连接设备热点后先形成局域网环境,然后按照局域网条件进行设置
备注
- 当 iOS 设备开启代理共享时,或需保持该设备屏幕常亮或连接充电器,以防意外退出
- 如果配置文件开启了 HTTPS 解密,请确保其他设备已安装并信任相同的证书才能正常使用。当其他设备不需要使用解密功能时,可以在“代理共享”页面关闭「HTTPS解密」开关
- 使用代理共享时需要对应的 APP 打开系统设置中的“本地网络”开关
- Telegram 可能不被系统代理接管,可单独在应用内添加 SOCKS5 代理
Shadowrocket 代理类型:
设置 > 代理 > 代理类型
HTTP:系统代理模式,对于不支持的程序会交给 TUN 接管网络连接
None:TUN 模式,全部网络请求都将通过 TUN 接口进行处理。效果等同于 配置文件 内设置
compatibility-mode=3
设置 > UDP > 启用转发 > 打开
首页 > 订阅后面的
ⓘ
图标 > UDP转发 > 打开首页 > 节点后面的
ⓘ
图标 > UDP转发 > 打开
设置 > UDP > 禁用STUN > 打开
禁用 STUN(Session Traversal Utilities for NAT) 的意思是完全阻止 WebRTC 通过 STUN 服务器获取公网 IP,从而彻底杜绝 WebRTC IP 泄露的问题
若在配置文件 通用参数 中使用
stun-response-ip
的相关命令,则此处的开关状态将被忽略
设置 > 排除路由 0.0.0.0/31 > 打开
注意:该选项其实是利用系统漏洞实现的,打开开关可能会导致网络异常,如遇问题请关闭此项
设置 > GeoLite2 数据库
方法一
- 填写 MaxMind官网 注册的账户 ID 和密钥,点击下方的
更新
按钮方法二
关注 GitHub 的 IP 数据库项目,复制 mmdb 格式的下载链接,粘贴在国家/ASN 对应的 URL 位置,点击
更新
按钮。当点击重置
时,可以恢复为系统自带的数据库Loyalsoldier 的 IP 数据库:
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdbHackl0us 的 IP 数据库:
https://github.com/Hackl0us/GeoIP2-CN/raw/release/Country.mmdbMasaiki 的 IP 数据库:
https://github.com/Masaiki/GeoIP2-CN/raw/release/Country.mmdbP3TERX 的 ASN 数据库:
https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-ASN.mmdb
现阶段软件的自动更新包含配置文件自动更新、服务器订阅自动更新以及 GeoLite2 数据库自动更新。需要在
系统设置 > 通用 > 后台App刷新
中为 Shadowrocket 启用后台刷新
当使用温和策略机制时,切换策略不会打断之前与之相关的TCP连接,仅会对之后的网络请求使用新的策略进行连接
当不使用该功能机制时,切换策略会打断与该策略相关的旧有 TCP 连接,若继续使用则使用新的策略重新连接例如:打断会使旧有策略相关的连接所进行的下载任务中断
自动切换延迟低的节点:
方法一
- 首页 > 全局路由 > 分组 > 简单模式 > 打开
方法二
- 点击配置文件的
ⓘ
图标 > 代理分组 > 右上角➕
> 类型url-test
备注
- 如果节点不稳定,可同时 开启回退
添加/更新订阅时异常的原因:
- forbidden 表示订阅被重置或令牌 token 错误
- not found 表示订阅路径或链接信息错误
- service unavailable 表示域名信息错误或域名被运营商屏蔽
- SSL 错误 表示无法建立与该服务器的安全连接
添加/更新订阅链接时,如果发生异常,可以尝试的解决方法:
- 全局路由选代理,使用另外一个节点来添加/更新订阅链接
- 切换网络后再添加/更新订阅链接
- 检查订阅链接是否错误或失效
节点优先根据备注名称匹配旗帜,如果匹配不成功,由节点地址解析出 IP,通过数据库判断该IP的国家或地区,然后显示对应的旗帜
- 节点后面的
ⓘ
图标 > 地址栏的图标,可以手动修改旗帜- 订阅后面的
ⓘ
图标 > 订阅界面的筛选
输入框,输入相关脚本能批量修改旗帜如果把旗帜的 Emoji 放在节点备注开头,保存时会自动显示对应的旗帜,且不显示开头的 Emoji
节点显示感叹号原因:
- 您的节点使用了 TLS,地址是 IP,却没有设 SNI
这不是正确的服务器设置,但为了可以正常连接,Shadowrocket 会主动开启
允许不安全
。允许不安全
将跳过TLS证书验证,这将导致一些安全问题。如果您使用自签名证书,请将证书导入系统并信任它,否则请及时续订服务器端证书,以防止证书过期。在2.2.23
等特定版本中,该选项可能默认为关闭状态
如果使用 Shadowrocket 时微信一直显示
连接中/收取中
,可以尝试的解决方法:
微信分流走直连
点击配置文件的
ⓘ
图标 > 通用 > 启用IPv6 > 关闭本质上该问题是由于现阶段使用的 IPv6 分流并不完善,可能造成国内的部分 IPv6 地址被错误地分流至代理隧道造成的
模块页面已经开启
保存到iCloud
,如果出现模块消失的问题,请检查:
系统设置 > Apple ID > iCloud > 使用iCloud的APP中,确保Shadowrocket/iCloud云盘已经打开同步
文件app > iCloud云盘 > Shadowrocket,确定其中包含
Modules
和Script
两个子文件夹文件app > iCloud云盘 > Shadowrocket > Modules,如果iCloud的本地缓存被清理,此时模块文件是未下载状态,请等待自动下载或手动下载
因系统版本低于
iOS 15
、处理复杂请求、加解密数据、运行脚本等因素或多种因素相互作用之下可能导致 NE 内存占用过高,从而造成 VPN 自动断开,解决方法:
设置 > 按需求连接 > 始终开启 > 启用
如果在使用 Shadowrocket 的时候,遇到某些 APP 提示需关闭代理才能使用,可以在
Shadowrocket > 设置 > 代理类型 > 选择 None
该设置将使用 TUN 模式 接管代理,能很大程度上缓解上述情况,但对于某些直接检测系统 VPN 状态的 APP 无效
iOS 系统的要求,开启定位权限才能获取 Wi-Fi 名称
如果不需要在 Shadowrocket 里看到 Wi-Fi 信息,那么就可以不用开启
Shadowrocket 2.2.29 之前的版本是使用 Xcode 13.2.1 编译的
2023年4月份以后,苹果官方要求开发者在提交应用到 App Store 时必须至少使用 Xcode 14 编译,所以 iOS12 以下系统无法使用
Shadowrocket 在版本
2.2.30
之后设置最低安装要求 iOS12,然后停止2.2.29
版本,iOS 低版本用户可以安装2.2.28
版本
Shadowrocket没有 安卓 / Windows 版本! 只有
iOS / iPadOS / tvOS /visionOS
版本以及 M 系列芯片的 Mac 才能下载,开发者是Shadow Launch Technology Limited
下载方法:
- 非国区 ID 登陆 App Store,搜索 Shadowrocket,购买后下载
- Shadowrocket 是买断制的付费软件
- 美区价格:2.99 美元
- 使用美区 ID 时,地址建议填免税州
五个免税州: 俄勒冈州(Oregon) 蒙大拿州(Montana) 特拉华州(Delaware) 新罕布什尔州(New Hampshire) 阿拉斯加州(Alaska)部分区域
请使用相应内容直接替换代码中的大括号及其内容
启动 VPN 隧道
shadowrocket://connectshadowrocket://open
停止 VPN 隧道
shadowrocket://disconnectshadowrocket://close
切换 VPN 开关状态
shadowrocket://toggle
使用特定节点
shadowrocket://select?s={节点名称}
添加 订阅/节点
shadowrocket://add/{url}
安装/使用 配置
shadowrocket://config/add/{url}
安装/使用 模块
shadowrocket://install?module={url}
切换全局路由(代理/配置/直连/场景)
shadowrocket://route/proxyshadowrocket://route/configshadowrocket://route/directshadowrocket://route/scene
安装/使用 配色
shadowrocket://color?{配色设置}