Когда хочется добавить в подписку одно своё правило, интуитивный ход — открыть файл конфигурации и отредактировать. А потом подписка обновляется за ночь, и правки нет.
Правильный подход — расширенный конфиг (Merge): держите свои изменения в отдельном файле, который подмешивается при каждой загрузке подписки.
Как работает механизм
Где это в Clash Verge: страница Profiles → «Global Extended Config» справа вверху либо ⋯ → Extended Config на карточке конкретного профиля (тогда применяется только к этой подписке).
Три вида операций
prepend-*: вставить в начало
prepend-rules:
- DOMAIN-SUFFIX,mycompany.com,DIRECT
- DOMAIN-SUFFIX,example.com,🚀 ВыборПоскольку правила сопоставляются сверху вниз, правила prepend имеют наивысший приоритет и перебивают любое решение подписки.
Это стандартный способ исправить ошибку маршрутизации.
append-*: добавить в конец
append-rules:
- DOMAIN-SUFFIX,slow-site.com,DIRECTПравила, добавленные после MATCH, никогда не срабатывают, потому что MATCH ловит всё. Так что реальная польза append-rules невелика; формы append нужны в основном для proxy-groups и proxies.
Прямое переопределение поля верхнего уровня
Поля без префикса заменяют одноимённые поля подписки:
mixed-port: 7899
mode: rule
log-level: warning
ipv6: false
unified-delay: true
tcp-concurrent: trueКакие поля доступны
| Поле | Что это |
|---|---|
prepend-rules / append-rules | Правила |
prepend-proxies / append-proxies | Узлы |
prepend-proxy-groups / append-proxy-groups | Группы политик |
rule-providers | Наборы правил (сливаются с существующими) |
proxy-providers | Провайдеры узлов |
Секции верхнего уровня вроде dns / tun / sniffer | Замена секции целиком |
Набор полезных фрагментов
1. Исправление ошибки маршрутизации
Самый частый случай: сайт идёт не тем маршрутом.
prepend-rules:
# принудительно через прокси
- DOMAIN-SUFFIX,anthropic.com,🚀 Выбор
- DOMAIN-SUFFIX,openai.com,🚀 Выбор
# принудительно напрямую (чтобы зарубежный IP не поднимал антифрод)
- DOMAIN-SUFFIX,icbc.com.cn,DIRECT
- DOMAIN-SUFFIX,alipay.com,DIRECT
- DOMAIN-SUFFIX,12306.cn,DIRECT
# корпоративная сеть
- DOMAIN-SUFFIX,mycompany.com,DIRECT
- IP-CIDR,10.0.0.0/8,DIRECT,no-resolve2. Добавление собственной группы политик
prepend-proxy-groups:
- name: "🔧 Моя группа"
type: select
proxies: ["DIRECT", "🚀 Выбор", "♻️ Авто"]
prepend-rules:
- DOMAIN-SUFFIX,some-site.com,🔧 Моя группа3. Добавление своего сервера
Помимо подписки у вас есть собственная машина:
prepend-proxies:
- name: "Мой VPS"
type: trojan
server: my.example.com
port: 443
password: "pwd"
udp: true
prepend-proxy-groups:
- name: "🏠 Свой"
type: select
proxies: ["Мой VPS", "DIRECT"]Учтите: новый узел не попадает автоматически в группы политик, уже описанные в подписке. Чтобы он появился в главной группе выбора, либо переопределите её описание, либо задействуйте include-all из Mihomo, и группа подберёт его сама.
4. Глобальные настройки производительности
unified-delay: true # единый расчёт задержки, сравнимый между протоколами
tcp-concurrent: true # параллельные рукопожатия для многоадресных доменов
find-process-mode: strict # включает правила PROCESS-NAME
global-client-fingerprint: chrome # представляться отпечатком TLS от Chrome
profile:
store-selected: true # запоминать выбранный вручную узел
store-fake-ip: true # кешировать соответствия fake-ip между перезапускамиstore-selected: true действительно полезно — без него каждая перезагрузка конфигурации сбрасывает ваш ручной выбор узла на значение по умолчанию.
5. Блокировка рекламы
rule-providers:
my-reject:
type: inline
behavior: domain
payload:
- "+.doubleclick.net"
- "+.googlesyndication.com"
- "+.adservice.google.com"
prepend-rules:
- RULE-SET,my-reject,REJECT6. Принудительно направить трафик BitTorrent напрямую
Многие провайдеры запрещают трафик BitTorrent, и пропускать его через них рискованно для аккаунта:
prepend-rules:
- PROCESS-NAME,qbittorrent.exe,DIRECT
- PROCESS-NAME,Transmission.exe,DIRECT
- PROCESS-NAME,aria2c.exe,DIRECT
- DST-PORT,6881-6889,DIRECTПравила по процессам вообще не работают без find-process-mode: strict.
7. Включение сниффинга доменов
Часть трафика приходит с одним IP и без домена (клиенты, подключающиеся прямо к адресам). Сниффинг восстанавливает имя из рукопожатия TLS, и доменные правила снова становятся применимы:
sniffer:
enable: true
force-dns-mapping: true
parse-pure-ip: true
sniff:
HTTP:
ports: [80, 8080-8880]
override-destination: true
TLS:
ports: [443, 8443]
QUIC:
ports: [443, 8443]
skip-domain:
- "+.push.apple.com"
- "+.apple.com"Порядок слияния и конфликты
Если и глобальное расширение, и расширение конкретной подписки задают prepend-rules, работать будут оба набора, причём правила подписки окажутся впереди.
Отладка расширенного конфига
Посмотрите на результат слияния
Clash Verge пишет действующую конфигурацию в рабочий файл. ⋯ → Open File на карточке профиля показывает исходную подписку; чтобы увидеть результат слияния, найдите в каталоге конфигурации clash-verge.yaml или runtime.yaml (имя слегка различается по версиям).
Поищите там добавленное вами правило; нашли — значит, слияние прошло.
Когда конфигурация не загружается
Когда что-то ломается, полностью очистите расширенный конфиг, убедитесь, что сама подписка загружается, а затем возвращайте секции по одной, чтобы найти виновника.
Про режим Script
Помимо Merge, часть версий поддерживает обработку конфигурации на JavaScript:
function main(config) {
// добавить DIRECT в каждую группу select
config["proxy-groups"].forEach(g => {
if (g.type === "select" && !g.proxies.includes("DIRECT")) {
g.proxies.push("DIRECT");
}
});
// вставить правило
config.rules.unshift("DOMAIN-SUFFIX,example.com,DIRECT");
return config;
}Режим Script мощнее, но и ошибиться в нём легче — одно исключение валит всю конфигурацию. Если задачу решает Merge, берите Merge.
Коротко
- Никогда не правьте скачанный файл подписки напрямую; пользуйтесь расширенным конфигом
prepend-rules— стандартный способ чинить маршрутизацию, с наивысшим приоритетом- Поля верхнего уровня заменяют секции целиком — пишете
dns, пишите её полностью store-selected: trueстоит добавить, чтобы перезагрузки не теряли ваш ручной выбор- Имена групп должны точно совпадать с подпиской, включая эмодзи
Смотрите также: структура YAML и справочник по типам правил.
Смежные документы
Конфигурация Clash / Mihomo разобрана сверху донизу — порты, режим, DNS, proxies, proxy-groups, rules и rule-providers — плюс минимальная рабочая конфигурация, которую можно вставить как есть.
Что каждая группа политик делает на самом деле, когда её применять, какие параметры важны, плюс готовая структура групп и опции include-all и filter из Mihomo.
Что измеряет url-test, зачем нужен unified-delay, почему показанная задержка не совпадает с ping, и рекомендуемые значения трёх ключевых параметров вместе с их побочными эффектами.