简短回答
日常选「配置」:国内网站直连、国外网站走节点,省流量也不拖慢国内 App。「代理」只在排查问题或临时救急时用,用完切回来。
小火箭的全局路由日常选「配置」:它按配置文件里的规则分流,国内直连、国外走节点。「代理」会把所有流量都送进节点,只适合临时排查。规则本身是一行一条的判断,从上往下匹配,命中哪条就按哪条的去向走。下面依次讲 4 个全局路由选项、规则的写法、默认配置里有什么,以及怎么给单个网站加规则。界面位置以你手机上的版本为准。
全局路由的 4 个选项各是什么意思
| 选项 | 流量怎么走 | 规则起不起作用 | 适合什么时候 |
|---|---|---|---|
| 配置 | 按配置文件里的规则逐条判断 | 起作用 | 日常 |
| 代理 | 全部走当前选中的节点 | 不起作用 | 排查问题、借节点更新订阅 |
| 直连 | 全部不走节点 | 不起作用 | 暂时不想走代理,又不想断开连接 |
| 场景 | 按 Wi-Fi / 蜂窝网络自动切换模式、配置和节点 | 看场景里选的是哪种模式 | 家里路由器已经能翻墙 |
全局路由一般在小火箭首页就能切换。四个选项的叫法来自社区手册,早年的媒体报道里列的也是这四种,名词解释见 全局路由。
日常选「配置」还是「代理」
选「配置」,理由有 3 个:
- 国内 App 不绕路。「代理」模式下,打开购物、外卖、银行 App 也要先到境外节点再回来,速度变慢,个别 App 还可能因为 IP 在境外弹出额外验证。
- 省机场流量。「配置」下国内流量直连,不计入机场流量,这就是分流的意义。
- 规则只在「配置」下起作用。你加的规则、装的模块,一换到「代理」就全部失效。
「代理」适合这几种场合:判断节点到底通不通(见 小火箭连不上怎么办);订阅域名直连打不开,要借节点更新订阅;某个国外网站没被规则覆盖,临时要用一下。用完切回「配置」。
一条规则怎么写:DOMAIN-SUFFIX、GEOIP、FINAL
规则 写在配置文件的 [Rule] 段,一行一条,格式是「类型,值,去向」。下面是一组常见写法的示例:
DOMAIN-SUFFIX,google.com,PROXY
DOMAIN-KEYWORD,youtube,PROXY
DOMAIN,example.com,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
| 类型 | 匹配什么 | 示例的意思 |
|---|---|---|
| DOMAIN | 完整域名 | 只有 example.com 本身直连 |
| DOMAIN-SUFFIX | 域名后缀 | google.com 和它的所有子域名都走节点 |
| DOMAIN-KEYWORD | 域名里含某个词 | 域名里带 youtube 的都走节点 |
| IP-CIDR | IP 地址段 | 局域网地址直连 |
| GEOIP | IP 归属的国家或地区 | 解析到中国 IP 的直连 |
| FINAL | 兜底,前面都没命中时 | 剩下的全部走节点 |
去向常见的是 PROXY(走节点)、DIRECT(直连)和 REJECT(拦截,去广告规则常用)。App Store 页面写明,小火箭的规则支持域名、域名后缀、域名关键字、IP-CIDR、GeoIP 这几类;上面的写法是常见格式,具体以你 App 里 default.conf 的写法为准。
匹配顺序是从上往下,命中即停。所以特例要写在前面:想让某个国外网站直连,那一行要放在 FINAL 之前,也要放在能覆盖它的宽泛规则之前。
默认配置是不是已经「国内直连、国外走代理」
自己打开看一眼最准。在「配置」页打开 default.conf,进入规则列表,找两样东西:
- 有没有
GEOIP,CN,DIRECT这类「中国 IP 直连」的规则; - 最后那条
FINAL后面写的是PROXY还是DIRECT。
两样都在,并且 FINAL 指向 PROXY,默认配置就是「国内直连、其余走节点」。默认配置的内容可能随版本调整,以你看到的为准;改乱了,可以在 配置 > 恢复默认配置 还原。配置文件的导入和模块,见 Shadowrocket 配置文件怎么导入。
GEOIP 规则靠 GeoLite2 数据库判断 IP 归属。社区手册写到,配置、模块、订阅和 GeoLite2 数据库的自动更新是分开设置的,偶尔有国内网站被误判成境外,可以先看看这个数据库的自动更新有没有打开。
想让某个网站单独走节点或直连,怎么加
三种做法,按改动从小到大:
- 临时:切到「代理」用完再切回来,什么都不改。
- 加一条规则:在配置的规则列表里新增一条(入口一般在配置条目的 ⓘ 里,进入规则页后点「+」),类型选 DOMAIN-SUFFIX,填域名,去向选 PROXY 或 DIRECT。新规则要排在 FINAL 之前。
- 用模块或规则集:社区手册写到,模块的规则优先级高于配置文件,适合一批规则一起开关。GitHub 上有人按 App、按服务整理好了规则集,搜索时常见 blackmatrix7/ios_rule_script 这类仓库。引用前看清规则内容和更新记录,不要整份照搬看不懂的东西。
某个 App 的海外版要单独分流的写法,不在这篇展开。
场景模式什么时候用
「场景」按网络类型(Wi-Fi、蜂窝、默认)自动切换全局路由模式、配置和节点。典型用法:
- 家里路由器已经在翻墙 → 家里 Wi-Fi 的场景设为「直连」,避免两层代理叠在一起;
- 出门用蜂窝网络 → 场景设为「配置」。
Wi-Fi 场景要填 Wi-Fi 名称(SSID),小火箭会请求定位权限,iOS 读取 Wi-Fi 名称时需要这项授权。场景设得不对,容易出现「换个 Wi-Fi 就连不上」,排查时先看全局路由是不是被场景切成了直连。
还没连上过第一个节点,先看 Shadowrocket 怎么用;节点从哪来,见 小火箭节点 对照表。
常见问题
小火箭规则写了不生效?
先看全局路由是不是「配置」,「代理」和「直连」下规则都不起作用。再看顺序:上面有一条更宽泛的规则先命中了,下面那条就轮不到;模块里的规则也会排在配置之前。
全局路由选「代理」会多耗机场流量吗?
会。「代理」下国内网站和 App 的流量也走节点,全部计入机场流量;「配置」下这部分直连,不计。
GEOIP,CN 是按什么判断国内的?
按目标 IP 的归属地判断,数据来自 GeoLite2 数据库。社区手册写到,这个数据库在小火箭的自动更新设置里可以单独设置更新。
小火箭能用 Clash 的规则集吗?
社区手册说小火箭兼容 Clash YAML 格式的配置,但 rule-providers 这类规则集能不能完整照搬,没有官方说明。优先用写明适用于 Shadowrocket 的规则集。