2026-08-03 · 配置文件 · 约 10 分钟

Shadowrocket 配置文件结构详解:[General]、[Rule]、[Host]、[URL Rewrite] 各段写什么

按段拆解 .conf 文件:[General] 管全局参数,[Rule] 决定分流顺序,[Host] 做本地映射,[URL Rewrite] 处理地址改写,附 Config 页导入与编辑步骤。

本文速览

Shadowrocket(小火箭)的配置文件用于组织参数、规则和地址处理逻辑,不等于服务器订阅。本文适合已有服务资料、准备阅读或修改 .conf 文件的用户:先辨认四个段落,再在 Config 中导入、编辑并选中配置,最后通过 Global Routing 与连接记录核对结果。

一、先区分配置文件、服务资料与运行模式

.conf 是文本配置文件,段名由方括号包围,每个段名下面放对应内容。把规则写进 [General],或把 DNS 参数放进 [Rule],都不能表达原本想要的设置。阅读文件时应先找段名,再看每行语法,不要只搜索某个域名后直接粘贴修改。

4 个段
本文说明 General、Rule、Host、URL Rewrite
3 个入口
Home 管连接,Config 管配置,Settings 管设置
末尾 1 行
FINAL 放在规则列表最后作为兜底

本文以用户已有自己的服务商与订阅为前提。Home 中的服务器资料描述连接目标、端口和认证方式;Config 中的文件描述请求如何分流。导入配置文件不会自动补齐缺失的服务器信息,更新服务器订阅也不等于更新当前选中的配置文件。

二、[General]:全局参数按键值填写

[General] 使用 键 = 值 的形式。这里适合放 DNS 等全局参数,不写 DOMAIN-SUFFIX 规则。排查时先记录旧值,每次只改一项;同时改 DNS、规则和连接目标,会让后续很难判断是哪一步影响了结果。

[General]
dns-server = system

这段示例让 DNS 使用系统提供的解析服务器。它不是对所有网络环境都适用的固定方案:如果当前网络本身存在解析问题,保留 system 并不会自动修复问题。需要指定其他解析服务器时,应使用自己确认可用的地址,并按应用支持的格式填写。

参数行检查

段名
[General]
参数名
dns-server
赋值符号
英文半角 =
本文示例值
system

先确认参数所在段落,再核对值的格式与实际网络条件。

规则行检查

段名
[Rule]
规则类型
DOMAIN-SUFFIX
匹配内容
example.com
执行策略
PROXY

规则字段使用英文逗号分隔,不采用参数行的等号形式。

不要为了“配置完整”把网上看到的所有参数一起加入。先保留可以解释清楚的设置;如需更改 IPv6、超时等行为,应先核对应用内说明和对应参数的取值,而不是沿用来源不明的数值。

三、[Rule]:自上而下匹配,FINAL 放最后

[Rule] 决定请求采用哪条策略。规则按顺序检查,命中后采用对应策略,因此范围更小的例外通常放在范围更大的规则前面。下面的示例只演示语法;example.com 是示例域名,需要按自己的实际目标调整。

[Rule]
DOMAIN,login.example.com,DIRECT
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,DIRECT
关键字本例的匹配对象检查重点
DOMAIN精确匹配 login.example.com该例外先于后面的域名后缀规则处理。
DOMAIN-SUFFIXexample.com 及其子域名不填写 URL 路径、协议头或端口。
IP-CIDR192.168.0.0/16 地址范围no-resolve 避免仅为这条 IP 规则主动触发域名解析。
GEOIPIP 地理数据库中归属 CN 的地址依据 IP 数据库,不是依据域名后缀判断。
FINAL未命中前面规则的请求放最后;其后的规则没有正常参与匹配的机会。

本例中,访问 login.example.com 会先命中第一行并使用 DIRECT;访问 www.example.com 则会命中第二行并使用 PROXY。若把前两行交换,登录域名也会先被后缀规则匹配,第一行原本表达的例外便失去作用。

四、[Host]:域名映射不等于代理规则

[Host] 用于给域名指定本地映射。它回答“这个名称对应哪个地址”,而 [Rule] 回答“这个请求采用什么策略”。两者属于不同层面:添加映射后,仍应检查相应请求命中了哪条规则。

[Host]
device.example.com = 192.0.2.10

192.0.2.10 属于文档示例地址,不是可供连接的真实设备。此处只展示“域名等号地址”的格式,不能照抄后期待网页打开。真正使用时,填写自己确认的目标地址,并确认当前网络能够到达该地址。

没有明确映射需求时,可以不写这个段落。若临时添加了一行用于定位问题,验证结束后应删除或恢复原值,避免远端服务地址发生变化后仍被旧映射固定。

五、[URL Rewrite]:按地址模式改写请求

[URL Rewrite] 描述 URL 匹配与改写,不负责选择代理策略。常见写法包含匹配表达式、目标地址和处理方式。下面以 HTTP 地址跳转为例,展示匹配开头、转义域名中的点,以及使用 302 返回临时重定向的语法。

[URL Rewrite]
^http://example\.com/ https://example.com/ 302

按目标选择段落,不混用两种规则

需要改变连接策略
  • 使用 [Rule]。
  • 例如让 example.com 使用 PROXY。
  • 通过连接记录核对命中规则与策略。
需要改变请求地址
  • 使用 [URL Rewrite]。
  • 例如把匹配的 HTTP 地址重定向到 HTTPS。
  • 核对匹配表达式、目标地址及重定向循环。

“走哪条连接路径”与“请求哪个地址”是两件事,应分别验证。

示例中的 ^ 限定字符串开头,\. 匹配字面上的点。表达式写得过宽,可能影响不相关的地址;目标地址又匹配回原规则时,还可能形成重定向循环。HTTPS 请求受到加密保护,不能认为写入一行规则就一定能读取并改写其中的路径;是否需要额外配置取决于具体处理方式。本文不涉及 HTTPS 解密设置。

六、Config 导入、编辑与启用步骤

先保留现有可用文件,再导入或编辑副本。远程配置地址应来自用户自己确认的来源,返回内容应是配置文本,而不是登录页或网页说明。含令牌的地址属于敏感资料,不应出现在公开截图或求助记录中。

  1. 保留原件

    进入 Config,记录当前选中的文件名,并保留原始文本副本。后续测试失败时,用原文件恢复,不要继续在未知状态上叠加修改。

  2. 导入文件

    在 Config 点右上角「+」,填写自己已有的配置 URL,并通过 Download 获取配置。导入后核对列表中的文件与实际内容,不要把服务器订阅地址误当成 .conf 地址。

  3. 编辑文本

    在 Config 打开目标文件右侧的信息按钮,进入 Edit Plain Text。先核对段名,再按行编辑;若界面使用本地化标签,以当前显示的对应文本编辑入口为准。

  4. 选中配置

    保存后回到 Config,点选目标文件并确认选中标记。回到 Home → Global Routing,选择 Config;仅保存文本并不会把其他模式自动改为 Config。

  5. 重新验证

    确认 Home 中已有连接目标可用,重新建立连接后测试一个目标域名和一个非目标域名。查看连接记录中的目标、策略与命中规则,必要时恢复原文件对照。

远程配置更新可能覆盖本地修改。需要持续保留的规则应另存副本,并在更新后比较段落内容。配置文件中如含服务器资料、认证信息或专用地址,分享前也要逐项清理,不只遮住文件名。

七、用 Global Routing 与记录确认是否生效

“已经导入”和“正在按文件分流”不是同一状态。对本文的 [Rule] 示例,应先确认 Global Routing 为 Config。其他模式适合不同用途,不能把临时切换模式后的结果直接当成规则文件已经生效的证据。

Config

推荐

按当前配置文件的规则决定策略。本文示例的域名例外、后缀匹配和 FINAL 兜底都应在此模式下验证。

适合:阅读、修改和验证本文的分流规则。

Proxy

将可代理的流量统一交给代理路径,用于检查已有连接目标是否能够工作;不用于验证本文逐条分流规则。

适合:临时隔离规则因素,排查代理连接。

Direct

使用直连路径,可作为网络对照。切到此模式后出现访问变化,不等于原配置中的域名规则写错。

适合:检查当前网络的直连可达性。

Scene

按已设置的场景条件决定路由行为。排查时需要同时核对场景条件与实际采用的模式,避免只看配置文件。

适合:已经明确设置并了解场景切换条件的使用情形。

测试应围绕可观察结果进行,而不是只看连接开关是否打开。浏览器缓存、旧连接和应用自身的请求方式都可能干扰判断;修改后使用新请求,并以连接记录辅助核对。下表列出的是排查方向,不是对所有应用访问行为的保证。

观察现象优先检查下一步
规则已保存,但策略不变当前文件是否选中、Global Routing 是否为 Config确认选择后重新连接,再查看新请求记录。
只有指定域名失败靠前的 DOMAIN、DOMAIN-SUFFIX 或 REJECT按文件顺序找到首条命中规则。
域名解析到旧地址Host 映射、DNS 缓存和已有连接恢复映射并用新连接对照。
地址反复跳转URL Rewrite 的匹配范围与目标地址先移除该条改写,再逐条恢复验证。
更新后自定义规则消失是否更新了同名远程配置恢复本地副本,并对比更新前后文本。

完成检查后,应能说明当前使用哪个文件、请求命中哪条规则,以及为什么采用该策略。能够回答这三点,再继续增加复杂规则;无需映射或改写时,保持相应段落为空或不添加即可。

App Store 正版核验