Вы сохраняете отредактированную конфигурацию, клиент мигает одной строкой по-английски — и это всё. Здесь распространённые ошибки собраны в справочник.
Сначала запустите проверку конфигурации
После правки и до импорта дайте ядру её проверить:
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.comfound 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-resolverules[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
Причина: не скачался набор правил или подписка.
Разбор:
Набор правил загрузился, но ничего не делает
Причина: behavior не соответствует содержимому файла. Ошибки при этом нет, отказ молчаливый.
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. Быстрый способ локализовать проблему
Когда конфигурация длинная, а в ошибке нет номера строки, применяйте деление пополам:
Минимальная рабочая конфигурация как базовая точка:
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. Профилактика
Коротко
mihomo -t -d каталог— самая полезная команда; её ошибки лучше клиентских- Три ловушки YAML: отступ табом, отсутствие пробела после двоеточия и незакрытая кавычка
proxy not foundобычно означает несовпадение имени — скопируйте его из подписки- Молча не работающий набор правил означает неверный behavior
- Если не находите — делите конфигурацию пополам
Смотрите также: структура YAML и расширенный конфиг Merge.
Смежные документы
Конфигурация Clash / Mihomo разобрана сверху донизу — порты, режим, DNS, proxies, proxy-groups, rules и rule-providers — плюс минимальная рабочая конфигурация, которую можно вставить как есть.
Что каждая группа политик делает на самом деле, когда её применять, какие параметры важны, плюс готовая структура групп и опции include-all и filter из Mihomo.
Правка скачанного конфига откатывается при следующем обновлении. Как устроен расширенный конфиг Clash Verge: синтаксис prepend/append/override, порядок слияния и набор полезных фрагментов.