Перейти к содержимому
RU

Главная / Блог / Основы конфигурации

Управление несколькими подписками — правильное использование proxy-providers

Основы конфигурации2026-07-011182 слов3 мин чтения
Управление несколькими подписками — правильное использование proxy-providers

Иметь две-три подписки — обычное дело: основная, запасная и, возможно, что-то своё.

Переключать файлы конфигурации в клиенте утомительно, и каждое переключение рвёт все соединения. Лучше объединить их в одну конфигурацию через proxy-providers.

Что такое proxy-providers

Это выносит вопрос «откуда берутся узлы» из основной конфигурации: она описывает только группы политик и правила, а узлы динамически поставляются провайдерами.

Сравнение структурТрадиционный путьузлы жёстко прописаны в секции proxiesгруппы ссылаются на имена узловлюбое изменение подписки требует правки конфигурацииПуть через providerузлы поставляет провайдер
Провайдер обновляется сам по расписанию, так что основную конфигурацию менять не приходится

Базовый синтаксис

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

Поля

ПолеЧто это
typehttp (удалённая подписка) / 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: 300

User-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
Что решает эта конфигурация1Одна конфигурация на все подпискине надо менять файлы, и переключение не рвёт соединения2Автоматический лучший выбор между подписками"Лучший в целом" берёт самый быстрый узел у любого из провайдеров3Группы по подпискам для диагностикиподозреваете одного провайдера — переключитесь на его группу и проверьте4Автоматическое резервированиекогда A умирает целиком, всё уходит на B5Префиксы в именах узловисточник виден с первого взгляда

Локальные файлы и 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"

Диагностика провайдера, который не загружается

Порядок разбирательстваОткройте файл кеша, названный в path, и проверьте, валидный ли это YAMLВнутри HTML-страница — url вернул веб-страницу; неверный адрес либо нужен входВнутри длинная строка base64 — не тот формат подписки, нужна ссылка ClashФайла нет — загрузка не прошла, ваша сеть не достаёт до хоста подпискиФайл выглядит нормально, но узлов нет — регулярное выражение в filter слишком строгое и выбросило всёПереключите лог в debug и поищите имя провайдера, чтобы увидеть запись о загрузке

Когда обновления не проходят

Если сам адрес подписки недоступен из вашей сети, укажите провайдеру качать через прокси. Часть версий поддерживает это напрямую:

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 и регулярные выражения для именования и группировки узлов.


Смежные документы

Структура YAML в конфигурации Clash — за что отвечает каждое из восьми полей верхнего уровня
Основы конфигурации Структура YAML в конфигурации Clash — за что отвечает каждое из восьми полей верхнего уровня

Конфигурация Clash / Mihomo разобрана сверху донизу — порты, режим, DNS, proxies, proxy-groups, rules и rule-providers — плюс минимальная рабочая конфигурация, которую можно вставить как есть.

2026-08-021184 слов3 мин чтения
Пять типов proxy-groups — select, url-test, fallback, load-balance и relay
Основы конфигурации Пять типов proxy-groups — select, url-test, fallback, load-balance и relay

Что каждая группа политик делает на самом деле, когда её применять, какие параметры важны, плюс готовая структура групп и опции include-all и filter из Mihomo.

2026-07-291200 слов3 мин чтения
Расширение подписки через Merge, чтобы ваши правки переживали обновления
Основы конфигурации Расширение подписки через Merge, чтобы ваши правки переживали обновления

Правка скачанного конфига откатывается при следующем обновлении. Как устроен расширенный конфиг Clash Verge: синтаксис prepend/append/override, порядок слияния и набор полезных фрагментов.

2026-07-091021 слов2 мин чтения