跳到主要内容

规则和代理组是什么?

这两个东西是 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什么流量应该走什么路线?

记住这张表就够了。