更新 config/stash/111.MD

This commit is contained in:
2026-08-31 01:59:13 +08:00
parent d3c169a66e
commit a4df641e34
+145 -1
View File
@@ -91,4 +91,148 @@ dns:
"geosite:private,cn": "geosite:private,cn":
- 223.5.5.5 - 223.5.5.5
- 119.29.29.29 - 119.29.29.29
``` ```
💡 会被加密打包发送到你的海外代理节点,按怎么规则走代理节点,如果我有20个国家代理节点,随机的吗
不是随机的,它是严格按照你的分流规则(rules)以及你选择的策略组(Proxy Groups)来决定的。
当 Fake-IP 帮你的手机拿到假 IP 并建立连接后,Stash 会把带有真实域名的流量扔进它的路由引擎(Rules 模块)进行匹配。
以下是流量到底走这 20 个国家中哪一个的完整决定过程:
🗺️ 第一步:看你的规则(rules)匹配到哪条
Stash 会从上到下一行一行匹配你的 rules。不同的规则会把你引向不同的策略组(也就是装有你节点的“篮子”)。
情况 A(命中特定国家):
```
rules:
- DOMAIN-SUFFIX,netflix.com,新加坡节点
```
如果访问 Netflix,它就会强行走到名为“新加坡节点”的策略组。
情况 B(命中通用海外):
```
rules:
- GEOSITE,geolocation-!cn,🟢 境外流量
```
如果访问 Google,它会走到你定义的通用海外策略组“🟢 境外流量”。
情况 C(没命中任何规则,兜底):
```
rules:
- MATCH,🐟 漏网之鱼
```
如果没有任何规则认识这个域名,它会走到最后的兜底策略组。
🎛️ 第二步:看对应策略组的“选择模式”(决定具体哪一个)
流量进到策略组后,到底挑 20 个国家里的哪一个,取决于你对这个策略组设置的 类型(type):
1. 自动测试延迟模式(type: url-test)—— 最常用
机制:Stash 会在后台悄悄地对这 20 个节点进行延迟测试(每隔几分钟测一次)。
结果:谁的延迟最低,所有流量就自动全部走谁。 直到下次测试发现有更快的节点,才会切换。
2. 手动选择模式(type: select
机制:你在 Stash 客户端的界面上,手动点击勾选了哪个国家的节点。
结果:绝对只走你选中的那一个。 你选日本就全走日本,你选美国就全走美国。
3. 负载均衡模式(type: load-balance
机制:这 20 个节点被当成了打工人,共同分担流量。
结果:Stash 会用轮询(Round-Robin)或者哈希(Consistent-Hash)算法把连接分发给不同国家。只有在这种特定的极少数模式下,看起来才像是在“随机/轮流”使用不同国家。(但由于会频繁变动 IP,极易导致境外网站封号,普通用户不建议使用)。
💡 总结
你的 20 个节点绝不是无序乱撞。网络请求就像一件快递:
Fake-IP 是打包员,把目的地写上真实域名。
Rules(规则) 是分拣员,根据域名决定把快递放进哪个策略组箱子(比如放进“境外流量”箱)。
策略组类型 是货车司机:如果设置是 select,就由你指定的车运走;如果设置是 url-test,就由开得最快的那辆车运走。
💡 如果我在rule-providers:启用了geolocation-!cn,比如1万条域名,并rule规则指定了代理组,那么本身就占用了手机内存,然后又在policy中添加了geosite:geolocation-!cn,是不是内存就不会翻倍了?
是的,你的理解非常到位!内存不会翻倍。
在 Stash(包括 Mihomo 内核)的底层设计中,无论你在配置文件的多少个地方引用同一个数据库(比如 geosite 或 rule-providers 里的同一个文件),它在手机内存中只会被加载和解析一次。
所有的策略模块(rules 和 dns)都是通过“内存指针”去共享读取同一份数据,所以不会产生双倍的内存开销。
⚠️ 但是!这依然会引发另外两个潜在的“性能隐患”
虽然内存体积没有翻倍,但你同时在 rules 和 dns 中对同一个庞大的 geolocation-!cn 列表进行全面审计,依然属于低效配置。它会带来以下两个问题:
隐患 1:CPU 算力浪费与解析延迟(虽然内存没炸,但速度慢了)
DNS 阶段:一个国外域名(如 google.com)进来。Stash 的 DNS 模块要在 1 万多条数据里完整检索一遍,确认它在 geolocation-!cn 里,然后拿出你指定的海外 DNS 进行解析(如果是 Fake-IP 模式,甚至只是生成一个假 IP)。
路由分流阶段:拿到 IP 准备发数据了,Stash 的路由(Rules)模块又要在这个 1 万多条数据的列表里重新检索一遍,确认它在里面,然后分流到代理策略组。
后果:手机 CPU 要对同一个域名进行两次大列表的字符串匹配。在日常高频刷新网页或刷社交软件时,会带来微小的卡顿感和额外的耗电。
隐患 2Fake-IP 模式下,DNS 阶段的检索完全是“无用功”
如果你使用的是 enhanced-mode: fake-ip
国外域名的真实解析,永远发生在远端代理服务器上。
在手机本地,不管你用什么 DNS 去解析国外域名,Stash 吐给 iOS 系统的都只是一个本地的假 IP(例如 198.18.0.x)。
因此,在 nameserver-policy 里大费周章地把国外域名拦截下来,指定一个海外加密 DNS(如 tls://1.1.1.1),对翻墙速度、防污染、网络质量没有任何一丝一毫的提升。
🛠️ 终极省电、省内存的“无感翻墙”优化方案
最顶级的策略是 “DNS 阶段只抓国内,国外全放行;路由阶段精准分流”。
你可以把配置改成这样:
1. DNS 模块(极简、轻量)让 DNS 只去查包含几百个中国最常用域名的极小列表,其余全部放行。这样 DNS 匹配速度接近 0 毫秒:
```
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- 223.5.5.5
- 119.29.29.29
nameserver-policy:
#### 只针对国内域名进行精准 DNS 匹配,极小、极快
"geosite:cn":
- 223.5.5.5
- 119.29.29.29
#### 国外域名不写,直接放行触发 Fake-IP,绝不在这里浪费算力
```
2. Rules 路由模块(精准分流)
在这个阶段,再利用你的 rule-providers 去做大表的精准分流:
```
rules:
#### 局域网和国内直连
- GEOIP,lan,DIRECT,no-resolve
- GEOSITE,cn,DIRECT
#### 国外大表精细分流(在这里使用大列表是最合理的,因为必须决定流量走哪)
- RULE-SET,geolocation-!cn,🟢 代理节点
#### 兜底
- MATCH,🐟 漏网之鱼
```
这样修改后,你的 DNS 阶段变得身轻如燕,只有在真正需要传输数据的路由阶段才会去检索大列表。手机的响应速度、耗电表现都会达到最佳状态。
你的 rule-providers 里的 geolocation-!cn 是通过 在线 URL 订阅 的,还是本地存放的 .yaml / .text 文件呢?我们可以检查一下它的更新频率(interval),避免频繁下载导致额外的流量消耗。
🛠️ 最佳配置:一刀切的终极完美方案
既然你已经拥有了高效率的 geolocation-!cn.mrs 路由规则,那么请立刻在 DNS 模块中删掉关于它的任何策略。
以下是为你量身定制的、兼顾“极致网速”与“极低内存”的完整配置结构:
```
dns:
enable: true
enhanced-mode: fake-ip #### 核心:利用 Fake-IP 免去本地国外 DNS 解析
nameserver:
- 223.5.5.5
- 119.29.29.29
nameserver-policy:
#### 极简:DNS 阶段只管国内域名,其余一律不看(直接吐出 Fake-IP)
"geosite:cn":
- 223.5.5.5
- 119.29.29.29
rule-providers:
geolocation-!cn:
type: http
behavior: domain
format: mrs #### 保持你优秀的二进制格式
interval: 86400
url: "https://gh.sswiwi.com/https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/geolocation-!cn.mrs"
rules:
#### 1. 局域网和国内直连
- GEOIP,lan,DIRECT,no-resolve
- GEOSITE,cn,DIRECT
#### 2. 路由阶段精准分流:在这里调用你高效的 MRS 规则集
- RULE-SET,geolocation-!cn,🟢 代理节点
#### 3. 兜底
- MATCH,🐟 漏网之鱼
```
这样调整后的实际效果:
当访问国外网站(如 google.com)时,DNS 阶段 0 毫秒 瞬间返回 Fake-IP,不产生任何网络和 CPU 开销;随后流量进入路由阶段,Stash 用近乎零延迟的 .mrs 二进制算法瞬间精准分流到你的海外代理节点。这才是 Stash 在 iOS 端最高效的运行姿态。
除了国外域名,你的配置里有没有针对 国内特定服务(如 Apple 纯净分流、BT 下载、国内电商加速) 的 rule-providers 需求?如果有,我们可以用同样高效的 .mrs 格式帮你加进去。