Правила подписки закрывают типовые случаи; остальное — ваша забота: интранет-домен, зачем-то идущий через прокси, нишевый сайт мимо списков, маршрутизация по приложениям. Синтаксис учится за пять минут. Правила живут в Merge-конфиге (почему и как); эта страница — про сам язык.
Общая форма
ТИП,значение,выход[,опция]
Выход — имя группы (например, PROXY), DIRECT или REJECT. Совпадения ищутся сверху вниз и останавливаются на первом — усвоив это, вы закрыли все вопросы о приоритете.
Типы, которые реально нужны
| Тип | Пример | Заметки |
|---|---|---|
DOMAIN | DOMAIN,ads.example.com,REJECT | Точное совпадение хоста |
DOMAIN-SUFFIX | DOMAIN-SUFFIX,netflix.com,PROXY | Домен со всеми поддоменами — рабочая лошадка |
DOMAIN-KEYWORD | DOMAIN-KEYWORD,google,PROXY | Подстрока в домене; широко бьёт, использовать осторожно |
IP-CIDR | IP-CIDR,10.0.0.0/8,DIRECT,no-resolve | Диапазон адресов назначения |
GEOIP | GEOIP,RU,DIRECT | Страна по IP; требует Geo-базы |
PROCESS-NAME | PROCESS-NAME,steam.exe,DIRECT | Маршрут по процессу-инициатору |
MATCH | MATCH,PROXY | Страховка; всегда последняя строка |
К IP-правилам добавляйте no-resolve: иначе доменные запросы получат лишний DNS-резолв только ради проверки правила — медленнее и потенциальная утечка.
Три примера «скопировал и работает»
Корпоративная сеть строго напрямую
prepend-rules:
- DOMAIN-SUFFIX,corp.example.com,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,172.16.0.0/12,DIRECT,no-resolve
Лёгкая блокировка рекламы
prepend-rules:
- GEOSITE,category-ads-all,REJECT
Ловит и рекламу внутри приложений, недоступную браузерным блокировщикам. Что-то нужное сломалось — белый список: правило DOMAIN с DIRECT строкой выше.
Торренты мимо прокси
prepend-rules:
- PROCESS-NAME,qbittorrent.exe,DIRECT
- PROCESS-NAME,transmission.exe,DIRECT
RULE-SET: когда список разросся
После сотни правил плоский Merge-файл трещит. Mihomo умеет подтягивать списки из внешних файлов:
rule-providers:
my-direct:
type: http
behavior: domain
url: "https://example.com/my-direct.yaml"
interval: 86400
prepend-rules:
- RULE-SET,my-direct,DIRECT
Держите список в своём репозитории на GitHub — и все устройства читают один источник.
Проверка, что правило сработало
Страница «Подключения» — истина в последней инстанции: у каждого соединения видно сработавшее правило и выход. Цикл быстрый: поправили правило → реактивировали профиль → открыли сайт → посмотрели страницу. «Мёртвое» правило почти всегда означает, что трафик перехватило правило выше по списку.