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

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

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

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

По ссылке подписки возвращается YAML-файл. Поняли его — можете его менять.

Ниже проход по полям верхнего уровня по порядку, с готовыми к вставке фрагментами.

Минимальная рабочая конфигурация

Сначала целиком, потом по частям:

mixed-port: 7897
allow-lan: false
mode: rule
log-level: info
ipv6: false
external-controller: 127.0.0.1:9090

dns:
  enable: true
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver: [223.5.5.5, 119.29.29.29]
  fallback: [https://1.1.1.1/dns-query]

proxies:
  - name: "HK-01"
    type: trojan
    server: hk01.example.com
    port: 443
    password: "your-password"
    udp: true

proxy-groups:
  - name: "PROXY"
    type: select
    proxies: ["AUTO", "HK-01"]
  - name: "AUTO"
    type: url-test
    proxies: ["HK-01"]
    url: "http://www.gstatic.com/generate_204"
    interval: 300

rules:
  - DOMAIN-SUFFIX,cn,DIRECT
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

Эта конфигурация работает. Теперь по каждому полю.

Как распределена ответственность между полями верхнего уровня1Базовые настройкипорты, режим, логи, переключатель LAN — как клиент слушает2dnsкак разрешаются имена — на какой IP вы в итоге пойдёте3proxiesкакие узлы есть — список выходов4proxy-groupsкак выбирается узел — слой политик5rulesкакой трафик берёт какую политику — слой решений6rule-providersудалённые наборы правил — правила извне
Сверху вниз: сначала оно работает, потом резолвит, потом есть выходы, потом политики, потом правила

1. Базовые настройки

mixed-port: 7897          # общий порт HTTP + SOCKS5 (рекомендуется)
# port: 7890              # отдельный порт HTTP, нужен редко
# socks-port: 7891        # отдельный порт SOCKS5, нужен редко
redir-port: 7892          # прозрачный прокси (Linux/macOS)
tproxy-port: 7893         # TProxy (Linux)
allow-lan: false          # можно ли подключаться устройствам из LAN
bind-address: "*"         # адрес прослушивания, когда allow-lan true
mode: rule                # rule / global / direct
log-level: info           # silent / error / warning / info / debug
ipv6: false               # включить IPv6
unified-delay: true       # единый расчёт задержки, ближе к реальности
tcp-concurrent: true      # параллельные рукопожатия, быстрее для многоадресных доменов
external-controller: 127.0.0.1:9090
secret: ""                # пароль управляющего API

2. dns

Раздел DNS решает, «в какой IP превращается это имя», а от этого напрямую зависят точность маршрутизации и разблокировка стриминга.

dns:
  enable: true
  listen: 0.0.0.0:1053
  ipv6: false
  enhanced-mode: fake-ip           # fake-ip или redir-host
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:                  # эти имена минуют fake-ip
    - "*.lan"
    - "*.local"
    - "+.pool.ntp.org"
    - "localhost.ptlogin2.qq.com"
  default-nameserver: [223.5.5.5]  # чтобы разрешить имена DoH ниже
  nameserver:                      # основной DNS
    - 223.5.5.5
    - https://doh.pub/dns-query
  fallback:                        # зарубежный DNS
    - https://1.1.1.1/dns-query
    - tls://8.8.4.4:853
  fallback-filter:
    geoip: true
    geoip-code: CN

Два значения enhanced-mode ведут себя очень по-разному; об этом есть целая статья: конфигурация DNS и как работает fake-ip.

3. proxies

Список узлов. Поля различаются по протоколам; вот распространённые:

proxies:
  # Trojan
  - name: "HK-Trojan"
    type: trojan
    server: hk.example.com
    port: 443
    password: "pwd"
    sni: hk.example.com
    udp: true

  # VMess
  - name: "JP-VMess"
    type: vmess
    server: jp.example.com
    port: 443
    uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    alterId: 0
    cipher: auto
    tls: true
    network: ws
    ws-opts:
      path: /ws
      headers: { Host: jp.example.com }

  # Shadowsocks
  - name: "SG-SS"
    type: ss
    server: sg.example.com
    port: 8388
    cipher: aes-256-gcm
    password: "pwd"
    udp: true

  # Hysteria2 (поддерживается Mihomo)
  - name: "US-HY2"
    type: hysteria2
    server: us.example.com
    port: 443
    password: "pwd"
    sni: us.example.com

4. proxy-groups

Группы политик решают, «какой узел берёт этот класс трафика». Различия между пятью типами разобраны в типах proxy-groups; а вот работающая структура:

proxy-groups:
  - name: "🚀 Выбор"
    type: select
    proxies: ["♻️ Авто", "🇭🇰 Гонконг", "🇯🇵 Япония", "DIRECT"]

  - name: "♻️ Авто"
    type: url-test
    include-all: true            # Mihomo: подтянуть все узлы автоматически
    filter: "HK|Hong"            # оставить только совпавшие
    url: "http://www.gstatic.com/generate_204"
    interval: 300
    tolerance: 50

  - name: "🎬 Стриминг"
    type: select
    proxies: ["🇭🇰 Гонконг", "🇸🇬 Сингапур", "🚀 Выбор"]

  - name: "🐟 Прочее"
    type: select
    proxies: ["🚀 Выбор", "DIRECT"]

include-all вместе с filter — по-настоящему полезная возможность Mihomo: никаких имён узлов руками, только регулярное выражение, которое их собирает. Синтаксис — в регулярных выражениях для именования и группировки узлов.

5. rules

Сопоставление сверху вниз; побеждает первое совпавшее правило.

rules:
  # локальная сеть напрямую (должно идти первым)
  - IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
  - IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
  - IP-CIDR,10.0.0.0/8,DIRECT,no-resolve

  # конкретные доменные правила
  - DOMAIN-SUFFIX,openai.com,🚀 Выбор
  - DOMAIN-SUFFIX,netflix.com,🎬 Стриминг
  - DOMAIN-KEYWORD,google,🚀 Выбор

  # наборы правил
  - RULE-SET,cn-domain,DIRECT
  - RULE-SET,proxy-domain,🚀 Выбор

  # географический перехват остатка
  - GEOIP,CN,DIRECT
  - MATCH,🐟 Прочее

Полная таблица типов правил — в справочнике по типам правил.

6. rule-providers

Держите списки правил во внешних файлах, обновляющихся по расписанию:

rule-providers:
  cn-domain:
    type: http
    behavior: domain
    format: text
    url: "https://example.com/rules/cn.txt"
    path: ./ruleset/cn-domain.txt
    interval: 86400

  private-ip:
    type: http
    behavior: ipcidr
    url: "https://example.com/rules/private.txt"
    path: ./ruleset/private.txt
    interval: 86400

У behavior три значения: domain (список имён), ipcidr (диапазоны IP) и classical (полный синтаксис правил). Ошибка здесь заставляет правила молча ничего не делать без всякого сообщения — классическая ловушка. См. полное руководство по rule-providers.

7. proxy-providers

Узлы тоже могут приходить извне:

proxy-providers:
  main:
    type: http
    url: "адрес вашей подписки"
    interval: 3600
    path: ./providers/main.yaml
    health-check:
      enable: true
      url: http://www.gstatic.com/generate_204
      interval: 300

Затем ссылайтесь на него в группе через use: [main]. Это правильная форма для объединения нескольких подписок; см. управление несколькими профилями и их объединение.

8. tun

Настройки TUN (в Clash Verge для этого есть интерфейс, но знать, что лежит внизу, полезно):

tun:
  enable: true
  stack: mixed                 # gvisor / system / mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack: ["any:53"]
  strict-route: false
  mtu: 1500

Механика — в внутреннем устройстве TUN: виртуальный адаптер, таблица маршрутизации и перехват DNS.

Три ошибки в YAML, которые делают все

На что смотреть при написании YAMLОтступы только пробелами, никаких табов — таб приводит к прямому провалу разбора
Номер строки в сообщении об ошибке обычно точен — идите сразу туда
  1. Отступы пробелами, не табами. Большинство ошибок разбора — это.
  2. Пробел после двоеточия. port:443 неверно; port: 443 верно.
  3. Спецсимволы в кавычках. Пароль с @, # или : обязательно берётся в кавычки: password: "p@ss#123".

Полный справочник ошибок — в разборе ошибок YAML.

Правильный способ править конфигурацию

Редактируя файл, скачанный подпиской, вы получите перезапись при следующем автообновлении.

Правильный подход — «Global Extended Config / Merge» в Clash Verge, который добавляет, не трогая оригинал:

# глобальная расширенная конфигурация
prepend-rules:
  - DOMAIN-SUFFIX,mycompany.com,DIRECT

append-rules:
  - DOMAIN-SUFFIX,example.net,🚀 Выбор

prepend-proxy-groups:
  - name: "Моя группа"
    type: select
    proxies: ["DIRECT", "🚀 Выбор"]

См. расширение подписки через Merge.

Коротко

Восемь полей верхнего уровня с чётким разделением обязанностей: базовые настройки отвечают за прослушивание, dns — за разрешение имён, proxies — за выходы, proxy-groups — за политику, rules — за решения, два providers — за внешние источники, а tun — за перехват на сетевом уровне.

Прежде чем менять конфигурацию, поймите, какой слой вы меняете, — и пользуйтесь Merge, а не правкой файла подписки напрямую.


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

Пять типов 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 мин чтения
Как на самом деле работает проверка задержки и какими должны быть interval, tolerance и lazy
Основы конфигурации Как на самом деле работает проверка задержки и какими должны быть interval, tolerance и lazy

Что измеряет url-test, зачем нужен unified-delay, почему показанная задержка не совпадает с ping, и рекомендуемые значения трёх ключевых параметров вместе с их побочными эффектами.

2026-07-051110 слов3 мин чтения