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

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

Справочник ошибок конфигурации Clash — типичные промахи в YAML и сообщения ядра

Основы конфигурации2026-05-161260 слов3 мин чтения
Справочник ошибок конфигурации Clash — типичные промахи в YAML и сообщения ядра

Вы сохраняете отредактированную конфигурацию, клиент мигает одной строкой по-английски — и это всё. Здесь распространённые ошибки собраны в справочник.

Сначала запустите проверку конфигурации

После правки и до импорта дайте ядру её проверить:

mihomo -t -d /path/to/config/dir

-t — тестовый режим: проверяет, не запуская. Его сообщения гораздо подробнее клиентского окна, и обычно он прямо говорит, в какой строке ошибка.

Пользователи Clash Verge могут выполнить эту команду для config.yaml в каталоге конфигурации. Где этот каталог:

ПлатформаПуть
Windows%APPDATA%\io.github.clash-verge-rev.clash-verge-rev
macOS~/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev
Linux~/.local/share/io.github.clash-verge-rev.clash-verge-rev

1. Синтаксические ошибки YAML

Они падают на этапе разбора, и в сообщении обычно есть номер строки.

found character that cannot start any token

Причина: для отступа использован таб. YAML принимает только пробелы.

Как найти: включите в редакторе отображение пробельных символов; табы покажутся стрелками.

Решение: заменить их все пробелами. В VS Code: Ctrl+Shift+P → «Convert Indentation to Spaces».

mapping values are not allowed in this context

Причина: нет пробела после двоеточия либо двоеточие внутри значения без кавычек.

# неверно
port:7890
name: HK: 01

# верно
port: 7890
name: "HK: 01"

did not find expected key / could not find expected ':'

Причина: несогласованные отступы.

# неверно: два ключа на разных отступах
proxies:
  - name: "A"
    type: trojan
     server: a.com      # ← лишний пробел

# верно
proxies:
  - name: "A"
    type: trojan
    server: a.com

found unexpected end of stream

Причина: незакрытая кавычка либо обрезанный файл.

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

Спецсимволы в пароле

# опасно: # начинает комментарий, а @ и : тоже способны навредить
password: p@ss#word

# верно
password: "p@ss#word"

2. Ошибки полей и структуры

Синтаксис в порядке, но ядро не понимает написанного.

unmarshal error / cannot unmarshal !!str into int

Причина: неверный тип, например порт, записанный строкой.

# неверно
port: "443"      # часть полей строго требует число

# верно
port: 443

И наоборот, UUID и пароли обязаны быть строками:

uuid: 12345678-1234-1234-1234-123456789012      # может разобраться во что-то странное
uuid: "12345678-1234-1234-1234-123456789012"    # надёжно

unsupported proxy type: xxx

Причина: подписка использует протокол, который ваше ядро не поддерживает.

Решение: обновите ядро Mihomo. В Clash Verge: Настройки → Clash Core → обновить.

Если и после обновления не поддерживается, значит, Mihomo этот протокол действительно ещё не реализовал, и придётся взять у провайдера узел на другом.

proxy 'xxx' not found

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

Частые причины:

  • Опечатка при ручном вводе имён узлов
  • Обновление подписки переименовало узлы
  • Имя группы в расширенном конфиге не совпадает с подпиской (эмодзи или пробелы)

Решение: откройте исходный файл подписки и скопируйте точное имя. Либо перейдите на include-all плюс filter для автоматического сбора; см. регулярные выражения для группировки узлов.

rule 'xxx' error: invalid domain

Причина: правило написано неверно.

# неверно
- DOMAIN-SUFFIX,https://google.com,PROXY   # без протокола
- DOMAIN-SUFFIX,*.google.com,PROXY         # без подстановочных знаков
- IP-CIDR,8.8.8.8,DIRECT                   # IP-CIDR требует маску

# верно
- DOMAIN-SUFFIX,google.com,PROXY
- IP-CIDR,8.8.8.8/32,DIRECT,no-resolve

rules[N] [xxx] error: unsupported rule type

Причина: тип правила написан с ошибкой либо не поддерживается вашей версией ядра.

Проверьте написание: DOMAIN-SUFFIX, а не DOMAIN_SUFFIX; IP-CIDR, а не IPCIDR.

Циклические ссылки между группами политик

Симптом: загрузка зависает либо в сообщении упоминается рекурсия.

Причина: в proxies группы A есть B, а в proxies группы B есть A.

Решение: разберитесь с иерархией так, чтобы ссылки шли только в одну сторону (верхние группы ссылаются на нижние, но не наоборот).

3. Связанное с DNS

Домен в default-nameserver

# неверно
default-nameserver:
  - https://doh.pub/dns-query

# верно: только обычные IP
default-nameserver:
  - 223.5.5.5
  - 119.29.29.29

Смысл default-nameserver в том, чтобы разрешать имена ваших других DNS-серверов, так что сам он именем быть не может.

Внутренние имена не резолвятся

Это не ошибка, а неверное поведение. Причина — их поймал fake-ip.

dns:
  fake-ip-filter:
    - "+.mycompany.com"
    - "*.lan"
    - "*.local"

См. конфигурацию DNS.

4. Наборы правил и провайдеры

provider xxx: initial failed

Причина: не скачался набор правил или подписка.

Разбор:

Проверяйте по порядкуОткрывается ли url в браузереСуществует ли файл кеша по пути path и что в нёмДобавьте провайдеру поле proxy, чтобы загрузка шла через узелНе фильтрует ли провайдер по User-Agent (добавьте заголовок с clash.meta)Доступен ли диск на запись (права на каталог с path)

Набор правил загрузился, но ничего не делает

Причина: behavior не соответствует содержимому файла. Ошибки при этом нет, отказ молчаливый.

behavior обязан соответствоватьdomainв файле простой списgoogle.com+.youtube.comipcidrв файле диапазоны IP1.0.1.024classicalв файле полные правиDOMAIN-SUFFIX,google.com
Откройте файл кеша, названный в path, и одного взгляда достаточно

rule-set xxx not found

Имя набора упомянуто в rules, но не определено в rule-providers, либо написано с ошибкой.

5. TUN и права

operation not permitted / переключатель TUN ничего не делает

Причина: недостаточно привилегий, виртуальный адаптер создать не удалось.

Решение:

  • Windows / macOS: установите «режим службы»
  • Linux: sudo setcap cap_net_admin,cap_net_bind_service=+ep /path/to/mihomo

address already in use

Порт занят.

# Windows
netstat -ano | findstr :7897
tasklist | findstr <PID>
# Linux / macOS
lsof -i :7897

Смените порт или остановите занявший его процесс.

6. Быстрый способ локализовать проблему

Когда конфигурация длинная, а в ошибке нет номера строки, применяйте деление пополам:

Деление пополамОтрежьте половину конфигурацииоставьте proxies и минимальную секцию rulesЗагружаетсяесли да, проблема в удалённой половинеОтрежьте ещё половинусужая диапазон шаг за шагомНайдите конкретную секциюобычно хватает нескольких раундов
Гораздо быстрее чтения построчно, особенно в подписке на несколько тысяч строк

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

mixed-port: 7897
mode: rule
log-level: info
proxies:
  - name: "TEST"
    type: trojan
    server: example.com
    port: 443
    password: "pwd"
proxy-groups:
  - name: "PROXY"
    type: select
    proxies: ["TEST", DIRECT]
rules:
  - MATCH,PROXY

Если это грузится, окружение в порядке и проблема в содержимом вашей конфигурации.

7. Сводная таблица ошибок

Ключевое слово ошибкиПричинаРешение
cannot start any tokenИспользован табЗаменить пробелами
mapping values are not allowedНет пробела после двоеточия или двоеточие в значенииДобавить пробел или кавычки
did not find expected keyНесогласованные отступыВыровнять отступы
unexpected end of streamНезакрытая кавычка или неполный файлПроверить кавычки, скачать заново
unmarshal errorНесовпадение типовЧисла без кавычек, строки в кавычках
unsupported proxy typeПротокол не поддерживаетсяОбновить ядро
proxy not foundНеверная ссылка на имя узлаСкопировать точное имя из подписки
unsupported rule typeОпечатка в типе правилаПроверить дефисы и регистр
invalid domainНеверный формат содержимого правилаУбрать протокол и подстановочные знаки
provider initial failedНе удалась загрузкаПроверить url, добавить proxy и UA
address already in useПорт занятСменить порт или остановить процесс
operation not permittedНедостаточно правУстановить режим службы или setcap
Набор правил молча не работаетНесоответствие behaviorОткрыть файл кеша и сравнить

8. Профилактика

Привычки, избавляющие от неприятностейДелайте резервную копию перед правкой конфигурацииИспользуйте редактор с подсветкой YAML (VS Code плюс расширение YAML)После правки запускайте mihomo -tПользуйтесь расширенным конфигом (Merge), а не правкой файла подпискиБерите в кавычки каждую строкуДобавьте ExecStartPre в службу systemd для проверки конфигурации, чтобы сломанная не вытеснила работающую

Коротко

  • mihomo -t -d каталог — самая полезная команда; её ошибки лучше клиентских
  • Три ловушки YAML: отступ табом, отсутствие пробела после двоеточия и незакрытая кавычка
  • proxy not found обычно означает несовпадение имени — скопируйте его из подписки
  • Молча не работающий набор правил означает неверный behavior
  • Если не находите — делите конфигурацию пополам

Смотрите также: структура YAML и расширенный конфиг Merge.


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

Структура 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 мин чтения