Files
ruleset/config/stash/stash-config-wiki.MD
T

137 lines
4.6 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.
# ✅分清 4 个容易混淆字段(Stash/mihomo
表格
| 参数 | 干什么用 |
| --- | --- |
| `defaultnameserver` | 解析 DoH/DoT DNS 服务器自身域名(引导启动)GitHub |
| **`proxyservernameserver`** | **只解析代理节点 server 域名,直连出站**Stash |
| `nameserver` | 用户正常上网,网站域名的主 DNS |
| `nameserverpolicy` | 指定某些域名 /geosite 强制用某组 DNS |
# ✅proxyservernameserver
```
`proxyservernameserver` 只负责ssr.ee解析代理节点本身的域名,
不处理日常访问域名解析。
```
# ✅nameserver-policy:
```
'+.ssr.ee': ['system', '223.5.5.5']
'+.sswiwi.com': ['system', '223.5.5.5']
'+.oracle.com': ['system', '223.5.5.5']
'geosite:apple@cn': ['system', '223.5.5.5']
'geosite:cn': ['system', '223.5.5.5']
'geosite:apple': ['1.1.1.1', '8.8.8.8']
'geosite:geolocation-!cn': ['1.1.1.1', '8.8.8.8']
优先级上至下,geosite单独一行,dns不能加#节点,不支持rule-set
Stash 会**并发请求 policy 里全部 DNS 上游**1.1.1.1 和 8.8.8.8 同时走代理并发查询,取最快返回结果
字典的 key 没有从上到下的匹配优先级,**不是写在前面就优先**。
内核内部匹配优先级固定:
`精确域名` > `通配符 +.shturl.` > **geosite 集合(所有 geosite 之间不分先后)**
### 总结关键点
1. `nameserverpolicy` 是字典,**geosite 之间调换书写顺序不能控制优先级**。
2. 想要强制某一类域名优先,用**通配符 `+.shturl.`**,它优先级高于全部 geosite 集合。
3. `geosite:apple`集合里很多域名同时属于`geolocation!cn`,只写 geosite 会出现解析策略不确定。
```
# ✅nameserver语法写法
```
nameserver:
- '1.1.1.1#节点选择' 只能在这里加#节点
- '8.8.8.8#节点选择' 只能在这里加#节点
```
# ✅default-nameserver:
```
['system','223.5.5.5'] dns模块都支持写system
```
# proxies:语法有效性
```
proxies:
- {name: "🟢 直连", type: direct, udp: true, ip-version: ipv4}
```
✅ **YAML 行内对象语法合法,Stash 可以识别加载**
## 关键点说明
1. `type: direct`Direct 直连节点,流量直接本地出站,不经过任何代理服务器。
2. `udp: true`:开启 UDP 支持,DNS、QUIC 流量允许走这个直连节点。
3. `ipversion: ipv4`:强制只用 IPv4 出站,不使用 IPv6。
## 小坑
- direct 节点**没有 server、port 字段**,本身就不需要填写,direct 类型特殊。
- 图标 emoji `🟢` Stash 完全支持显示。
- 你定义完之后,就可以在 proxy‑groups 里面引用 `🟢 直连` 这个名字。
### proxygroups 使用示例
```
proxy-groups:
- name: "节点选择"
type: select
proxies:
- "🟢 直连"
- 你的其他节点
```
## 等价展开写法(方便阅读,效果完全一样)
```
proxies:
- name: "🟢 直连"
type: direct
udp: true
ip-version: ipv4
```
## ⚠️重要提醒
这个自定义`🟢 直连`和内核内置 DIRECT 不是同一个东西:
- 内置常量 `DIRECT`rules 里写`- GEOSITE,cn,DIRECT`,调用内核内置直连。
- 你手动新增的`🟢 直连`是一个**自定义代理项**,只能在 proxy‑groups 里面选择使用;**不能直接写在 rules 里面**,rules 不识别这个自定义名字。
>
> rules 分流只能用系统保留字 `DIRECT`,不要写`🟢 直连`,会匹配失败。
> 如果想让分流使用你这个自定义直连节点,就把它放进 proxy‑groupsrules 指向组名。
小结:
- 在`proxies:`块里定义:✅有效
- 在 proxygroups 选择使用:✅有效
- 在 rules 直接写`🟢 直连`:❌无效,必须用保留字`DIRECT`。
## fakeipfilter📌关键区分表
表格
| 项目 | 原版 Mihomo (Android/Linux/Windows) | StashiOS |
| --- | --- | --- |
| blacklist 模式下写 `- ruleset:xxx` | ✅原生支持 | ❌不生效,被裁剪 |
| blacklist 模式下写 `- geosite:xxx` | ✅支持 | ✅支持 |
| fakeipfiltermode: rule | ✅完整支持 | ✅内核存在,但**官方 Wiki 不记载**,属于继承特性 |
| rule 模式语法 `RULESET,xxx,realip` | ✅原生支持 | ✅可以用,但文档无记录 |
## 2、规则模式 `fakeipfiltermode: rule`
完整规则语法,和外层`rules:`语法一致,自上而下匹配,**每条末尾必须写动作 `fakeip` / `realip`**GitHub。
✅完整支持:`GEOSITE`、`RULESET`、`DOMAIN`、`MATCH`。
```
dns:
enhanced-mode: fake-ip
fake-ip-filter-mode: rule
fake-ip-filter:
- '*.lan,real-ip'
- 'GEOSITE,private,real-ip'
- 'RULESET,salem@cn,realip'
- 'MATCH,fakeip'
```