Иметь две-три подписки — обычное дело: основная, запасная и, возможно, что-то своё.
Переключать файлы конфигурации в клиенте утомительно, и каждое переключение рвёт все соединения. Лучше объединить их в одну конфигурацию через proxy-providers.
Что такое proxy-providers
Это выносит вопрос «откуда берутся узлы» из основной конфигурации: она описывает только группы политик и правила, а узлы динамически поставляются провайдерами.
Базовый синтаксис
proxy-providers:
main:
type: http
url: "https://адрес-основной-подписки"
interval: 3600
path: ./providers/main.yaml
health-check:
enable: true
url: http://www.gstatic.com/generate_204
interval: 300
lazy: true
backup:
type: http
url: "https://адрес-запасной-подписки"
interval: 3600
path: ./providers/backup.yaml
health-check:
enable: true
url: http://www.gstatic.com/generate_204
interval: 600
lazy: true
proxy-groups:
- name: "🚀 Выбор"
type: select
use: [main, backup] # все узлы обоих провайдеров
proxies: ["♻️ Авто", DIRECT] # можно подмешать и другие записи
- name: "♻️ Авто"
type: url-test
use: [main]
url: http://www.gstatic.com/generate_204
interval: 300
tolerance: 50Поля
| Поле | Что это |
|---|---|
type | http (удалённая подписка) / file (локальный файл) / inline |
url | Адрес подписки |
interval | Интервал обновления в секундах; 3600 = один час |
path | Путь локального кеша |
header | Свои заголовки запроса, для указания User-Agent |
filter | Оставить только совпадающие узлы |
exclude-filter | Выбросить совпадающие узлы |
exclude-type | Выбросить определённые типы протоколов |
health-check | Настройка проверки здоровья |
override | Массовое изменение свойств узлов (Mihomo) |
Чистка списка узлов через filter
В подписках часто попадаются псевдоузлы вроде «Осталось: xx ГБ» или «Истекает через: xx дней», плюс регионы, которые вам не нужны.
proxy-providers:
main:
type: http
url: "..."
interval: 3600
path: ./providers/main.yaml
# оставить только эти регионы
filter: "(?i)HK|Hong ?Kong|JP|Japan|SG|Singapore|US"
# выбросить эти
exclude-filter: "(?i)remaining|expire|traffic|website|reset|subscription|test"
exclude-type: "ss|ssr" # выбросить некоторые протоколы
health-check:
enable: true
url: http://www.gstatic.com/generate_204
interval: 300User-Agent: когда формат Clash не отдаётся
Некоторые провайдеры возвращают разный формат подписки в зависимости от UA:
proxy-providers:
main:
type: http
url: "..."
header:
User-Agent: ["clash.meta"]Частые значения: clash.meta, mihomo, clash-verge/v2.5.2, ClashforWindows/0.19.23.
Если провайдер вообще не выдаёт узлов, UA — первое, на что стоит подумать.
health-check: почему это обязательно
Без проверок здоровья у узлов внутри провайдера нет данных о задержке, так что группе url-test не из чего выбирать.
health-check:
enable: true
url: http://www.gstatic.com/generate_204
interval: 300
lazy: true
expected-status: 204 # ожидаемый код состоянияlazy: true пропускает проверки, когда трафика нет, экономя ресурсы.
override: массовое изменение свойств узлов
Возможность Mihomo, позволяющая поправить все узлы провайдера разом:
proxy-providers:
main:
type: http
url: "..."
override:
udp: true # принудительно включить UDP
skip-cert-verify: false # принудительно проверять сертификат
additional-prefix: "[Main] " # добавить префикс к каждому имени
# additional-suffix: " ⚡"additional-prefix действительно полезен при нескольких подписках — по списку узлов сразу видно, откуда каждый из них.
Полная конфигурация для нескольких подписок
proxy-providers:
subA:
type: http
url: "https://a.example.com/sub"
interval: 3600
path: ./providers/a.yaml
exclude-filter: "(?i)remaining|expire|website"
override:
additional-prefix: "[A] "
health-check: { enable: true, url: http://www.gstatic.com/generate_204, interval: 300, lazy: true }
subB:
type: http
url: "https://b.example.com/sub"
interval: 3600
path: ./providers/b.yaml
exclude-filter: "(?i)remaining|expire|website"
override:
additional-prefix: "[B] "
health-check: { enable: true, url: http://www.gstatic.com/generate_204, interval: 600, lazy: true }
proxy-groups:
# главный переключатель
- name: "🚀 Выбор"
type: select
proxies: ["♻️ Лучший в целом", "🅰️ Подписка A", "🅱️ Подписка B", "🇭🇰 Гонконг", DIRECT]
# самый быстрый среди обеих подписок
- name: "♻️ Лучший в целом"
type: url-test
use: [subA, subB]
interval: 300
tolerance: 50
lazy: true
# группы по подпискам, для сравнения и диагностики
- name: "🅰️ Подписка A"
type: url-test
use: [subA]
interval: 300
tolerance: 50
- name: "🅱️ Подписка B"
type: url-test
use: [subB]
interval: 300
tolerance: 50
# по регионам сразу через обе подписки
- name: "🇭🇰 Гонконг"
type: url-test
use: [subA, subB]
filter: "(?i)HK|Hong ?Kong"
interval: 300
tolerance: 50
# основная и запасная: при смерти A уходим на B
- name: "🛡 Основная/запасная"
type: fallback
proxies: ["🅰️ Подписка A", "🅱️ Подписка B"]
interval: 300Локальные файлы и inline-определения
Локальный файл (узлы, которые вы ведёте сами):
proxy-providers:
selfhosted:
type: file
path: ./providers/self.yaml
health-check: { enable: true, url: http://www.gstatic.com/generate_204, interval: 300 }Формат файла:
proxies:
- name: "Мой VPS"
type: trojan
server: my.example.com
port: 443
password: "pwd"Inline (прямо в основной конфигурации):
proxy-providers:
selfhosted:
type: inline
payload:
- name: "Мой VPS"
type: trojan
server: my.example.com
port: 443
password: "pwd"Диагностика провайдера, который не загружается
Когда обновления не проходят
Если сам адрес подписки недоступен из вашей сети, укажите провайдеру качать через прокси. Часть версий поддерживает это напрямую:
proxy-providers:
main:
type: http
url: "..."
proxy: DIRECT # либо имя группы политикГде это не поддерживается — включите «обновлять подписки через прокси» в клиенте.
Чем это отличается от нескольких профилей
Clash Verge позволяет хранить несколько карточек профилей и переключаться щелчком. Это другая идея, нежели proxy-providers:
| Несколько профилей | proxy-providers | |
|---|---|---|
| Переключение | Щелчок по карточке вручную | Переключать нечего |
| Цена переключения | Перезагрузка ядра, обрыв соединений | Никакой |
| Объединение узлов | Невозможно | Группы охватывают подписки |
| Обслуживание | Каждый профиль отдельно | Одна основная конфигурация |
| Подходит | Действительно разным сценариям (работа и дом с совершенно разными правилами) | Когда различается только источник узлов |
Если отличается только источник подписки, а правила те же — берите провайдеры; если отличаются и правила — отдельные профили.
Коротко
- Несколько подписок объединяйте через proxy-providers, а не переключением файлов
exclude-filterвычищает псевдоузлы вроде «остаток трафика»health-checkобязателен, иначе url-test не с чем работать- Запасным подпискам ставьте интервал побольше, чтобы сократить лишние соединения
additional-prefixпомечает источник, что экономит время при диагностике- Когда загрузка не идёт, сначала загляните в файл кеша
Смотрите также: пять типов proxy-groups и регулярные выражения для именования и группировки узлов.
Смежные документы
Конфигурация Clash / Mihomo разобрана сверху донизу — порты, режим, DNS, proxies, proxy-groups, rules и rule-providers — плюс минимальная рабочая конфигурация, которую можно вставить как есть.
Что каждая группа политик делает на самом деле, когда её применять, какие параметры важны, плюс готовая структура групп и опции include-all и filter из Mihomo.
Правка скачанного конфига откатывается при следующем обновлении. Как устроен расширенный конфиг Clash Verge: синтаксис prepend/append/override, порядок слияния и набор полезных фрагментов.