规则和代理组是什么?
这两个东西是 Mihomo 的核心概念。
可以先用一句话区分:
规则=决定“怎么走”
代理组=决定“从哪些路线里选”
什么是规则?
假设你希望:
网站 A → 直连
网站 B → 代理
网站 C → 代理
你当然不想每次打开网站都手动选择。
于是 Mihomo 有了规则。
你可以把规则理解成交通指挥员手里的规则表:
如果去 A
↓
走 A 路
如果去 B
↓
走 B 路
如果都没匹配
↓
走默认路线
例如:
rules:
- DOMAIN-SUFFIX,example.com,PROXY
先别急着找语法。
它表达的意思大概就是:
如果目标域名属于 example.com,就交给 PROXY。
什么是代理组?
假设你有:
日本
香港
新加坡
美国
如果每次都让规则直接指定具体节点:
网站 A → 日本
网站 B → 香港
网站 C → 新加坡
配置很快就会变得很麻烦。
所以,我们可以把这些节点放进一个代理组:
PROXY
├── 日本
├── 香港
├── 新加坡
└── 美国
规则只需要告诉 Mihomo:
这个请求 → PROXY
至于 PROXY 里面具体使用哪个节点,则取决于这个代理组的类型。
例如最常见的 select:
proxy-groups:
- name: PROXY
type: select
proxies:
- 日本
- 香港
- 新加坡
- 美国
select 的意思很简单:
把选择权交给你。
你可以在 Mihomo 的客户端界面里手动选择:
PROXY
└── 日本 ← 当前选择
想换香港,就切换成:
PROXY
└── 香港 ← 当前选择
这样规则不需要修改。
不过,代理组并不一定都是让人手动选择。
Mihomo 还支持其他类型的代理组,例如:
select
↓
人来选
url-test
↓
根据延迟测试结果选择
fallback
↓
按照可用性选择
load-balance
↓
按照负载均衡策略选择
所以更准确地说:
代理组负责把多个节点组织到一起,并按照代理组的类型决定如何使用这些节点。
对于 select 代理组:
由人来选择。
对于其他类型:
由 Mihomo 按照对应的策略自动选择。
整个过程
于是一个请求可能经历:
请求
↓
规则
↓
代理组
↓
具体节点
↓
代理服务器
↓
目标
这就是为什么 Mihomo 的配置里经常同时出现:
proxies:
proxy-groups:
rules:
它们分别解决不同的问题:
| 配置 | 人话 |
|---|---|
proxies | 我有哪些节点? |
proxy-groups | 这些节点怎么组织、怎么选? |
rules | 什么流量应该走什么路线? |
记住这张表就够了。