🩺 Типичные проблемы и как их диагностировать

О чём заметка

Разбор частых поломок в клиентах на ядре mihomo — от «вообще нет интернета» до «работает всё, кроме одной игры» — и метод, по которому их находят. Настройка с нуля — в первом запуске, правила маршрутизации — в рецептах правил.

TL;DR

  • Диагностика строится на сужении зоны поиска: сначала выясняем, есть ли интернет без туннеля, потом — работает ли туннель вообще (режим Global), потом — виноваты ли правила.
  • Главный инструмент — список соединений в клиенте: он показывает, какое правило сработало и в какой узел ушло соединение.
  • «Ключ рабочий, но узел не подключается» чаще всего означает устаревшее ядро или рассинхрон параметров с сервером, а не блокировку.
  • «Подписка не добавляется, 404» — вероятная причина не на вашей стороне: привязка подписки к конкретному клиенту.
  • «Браузер работает, приложение — нет» — либо приложение игнорирует системный прокси (нужен TUN), либо оно упирается в подставные адреса режима fake-ip.
  • «Всё тормозит» и «постоянно рвётся» — разные болезни: первая обычно про узел и мультиплекс, вторая — про группу url-test, которая дёргает вас между серверами.

Метод: сужать зону поиска

Прежде чем менять настройки наугад, ответьте на три вопроса по очереди. Каждый отсекает половину вариантов.

1. Есть ли интернет без туннеля? Переключите режим в Direct (или выключите клиент). Если сайты не открываются и так — проблема не в клиенте: смотрите сеть, провайдера, DNS системы.

2. Работает ли туннель вообще? Переключитесь в Global и выберите узел вручную. Открывается — значит, узел и протокол в порядке, а виноваты правила. Не открывается — проблема в самом узле, ядре или блокировке.

3. Что показывает список соединений? Откройте вкладку соединений (Connections) и повторите проблемное действие. Вы увидите, куда пошло соединение, какое правило сработало и живо ли оно вообще. Если соединения нет в списке — трафик вообще не дошёл до ядра, и дело в способе перехвата (системный прокси против TUN).

Проще говоря: не чините всё сразу. Три проверки выше почти всегда указывают на конкретный слой — сеть, узел, правила или перехват.

Подписка не добавляется или не обновляется

Ошибка 404 или «подписка не найдена» при верной ссылке. Первое, что стоит исключить, — привязку к клиенту: некоторые панели отдают конфигурацию только приложениям, отправляющим специальные заголовки с идентификатором устройства. В другом клиенте та же ссылка работает, а у вас — нет. Механика и способ проверки (открыть ссылку в браузере или через curl) разобраны в заметке про HWID-привязку.

Таймаут или ошибка сети. Сам адрес подписки может быть заблокирован вашим провайдером. Проверьте, открывается ли ссылка в браузере; если нет — попросите у продавца зеркало или загрузите конфиг с другого соединения.

«Неизвестный тип прокси» / unsupported proxy type. Ядро внутри клиента не знает протокол, который встретился в подписке. Лечится обновлением ядра, а не приложения (см. обзор клиентов): свежий интерфейс с прошлогодним ядром — обычная ситуация.

Правки в конфиге исчезают. Если вы редактируете скачанный из подписки файл, при обновлении он перезаписывается. Свои правила добавляйте через механизм переопределений в клиенте — подробнее в правилах маршрутизации.

Узел не подключается

Один узел мёртв, остальные работают. Обычно это сервер: он перегружен, выключен или его адрес заблокирован. Проверьте задержку в группе — если узел не отвечает на проверку, дело в нём.

Все узлы одного продавца перестали работать разом. Скорее всего, сменились параметры на стороне сервера или адреса попали под блокировку. Первое действие — обновить подписку: продавцы ротируют серверы именно на такой случай.

Узел с новым протоколом не подключается, старые работают. Классический рассинхрон версий: администратор включил на сервере то, чего ваша сборка ядра ещё не умеет — новый режим шифрования, свежую обфускацию, другой транспорт. Разбор ситуации на примере постквантового шифрования VLESS — в сравнении ядер. Лечение одно: обновить ядро.

В логе — ошибки рукопожатия или расшифровки. Тот же случай: параметры клиента и сервера разошлись. Сверьте протокол, транспорт (WebSocket, gRPC, XHTTP) и параметры маскировки с тем, что выдал продавец.

Проверьте часы

Протоколы с привязкой ко времени (в первую очередь VMess) не устанавливают соединение, если часы устройства разошлись с сервером больше чем на пару минут. Симптом выглядит как «ключ верный, но не подключается» и лечится синхронизацией времени.

Работает браузер, не работает приложение

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

Причина вторая: подставные адреса fake-ip. Ядро отвечает на DNS-запросы адресами из служебного диапазона 198.18.0.0/16 и подменяет их обратно при подключении. Приложения, которые сами резолвят домен и потом проверяют полученный адрес, от этого ломаются: сеть вроде есть, а подключения нет. Лечится добавлением проблемного домена в список исключений fake-ip-filter — механика режима разобрана в Ядре Clash.

Причина третья: правило перехватило соединение. Посмотрите в списке соединений, какое правило сработало для домена приложения. Частый случай — слишком широкое DOMAIN-KEYWORD или GEOIP, стоящее выше нужного правила.

Не открываются локальные ресурсы

Роутер по адресу 192.168.1.1, сетевой принтер, домашний NAS перестали отвечать после включения туннеля — значит, их трафик уехал в прокси. Нужны правила-исключения для локальных подсетей, стоящие выше остальных (готовый фрагмент — в рецептах правил).

Отдельная разновидность — корпоративные ресурсы, доступные только через рабочий VPN. Два туннеля на одном устройстве конфликтуют почти всегда: либо разводите их правилами, либо включайте по очереди.

DNS: утечки и подмена

Признак утечки: тест на dnsleaktest.com показывает серверы вашего домашнего провайдера. Это значит, что имена сайтов разрешаются мимо туннеля, и провайдер видит список ваших доменов, даже не видя содержимого трафика.

Что проверить: включена ли DNS-подсистема ядра (dns.enable), заданы ли шифрованные апстримы (DoH/DoT/DoQ), не прописан ли в системе или в браузере отдельный DNS в обход клиента. Устройство DNS-подсистемы mihomo с политиками по доменам — в возможностях ядра.

Обратная ситуация — сайты не открываются, потому что DNS отвечает мусором. Часть провайдеров подменяет ответы для заблокированных доменов; тогда помогает разрешение имён через туннель или шифрованный резолвер. Пример того, как это выглядит на практике, — в разборе блокировки публичных DNS.

Медленно, рвётся, скачет

Медленно вообще. Проверьте задержку узлов в группе и попробуйте другой узел или другую страну. Если разница огромная — дело в маршруте до сервера, а не в клиенте. Отдельно проверьте, не включён ли мультиплекс: он ускоряет открытие страниц, но на части каналов даёт обратный эффект.

Соединения рвутся каждые несколько минут. Частая причина — группа url-test: она периодически перевыбирает «самый быстрый» узел и на переключении рвёт активные сессии. Для стриминга и загрузок удобнее fallback, который держится за один узел до отказа (разница разобрана в Ядре Clash).

Работает волнами: полчаса нормально, потом полчаса нет. Это уже похоже не на настройку, а на реакцию сети: DPI может распознавать схему и ограничивать её. Проверьте, повторяется ли поведение на другом протоколе и другом транспорте — если да, читайте разбор DPI-почерка TLS и рассматривайте запасной канал на другом протоколе.

TUN не включается или ломает сеть

Не запускается совсем. TUN требует повышенных прав: на Windows — установки службы, на Linux — прав администратора или соответствующих capabilities. Клиент обычно предлагает это сделать при первом включении; если отказали — включите заново и подтвердите запрос.

Конфликт с другим VPN или антивирусом. Два виртуальных адаптера, перехватывающих весь трафик, уживаются плохо. Отключите второй туннель и проверьте.

Сеть отвалилась после закрытия клиента. Бывает, когда процесс завершился аварийно и не убрал за собой маршруты или системный прокси. Лечение: запустить клиент снова и корректно выключить туннель, а при системном прокси — проверить настройки прокси в системе вручную.

Меняйте по одной настройке

Диагностика ломается, когда правится всё сразу: включили TUN, сменили DNS, добавили набор правил — и непонятно, что помогло, а что сломало. Одна правка — одна проверка. Этот же принцип экономит время при разговоре с поддержкой: вы можете точно сказать, после чего началось.

📚 См. также


🤖 Эти статьи открыты — можно обучать на них ИИ

При желании вы можете натренировать ИИ на наших статьях. Исходное форматирование и скачивание всего репозитория одним zip-архивом доступны в Forgejo: исходник этой заметки · весь репозиторий.