Каталог загрузок Clash MetaЗагрузки клиента mihomo

Настройка DNS в mihomo: fake-ip против redir-host

Конфигурация и подписки 11 июля 2026 3 мин чтения
Содержание

DNS в конфигурации mihomo — не второстепенная деталь, а половина работы прокси. Именно на этапе разрешения имени решается, какой адрес получит приложение, попадёт ли соединение под нужное правило маршрутизации и не уйдёт ли сам запрос имени мимо туннеля. Большинство жалоб вида «прокси включён, но сайт не открывается» упирается в эту секцию.

Ядро умеет работать как собственный резолвер и предлагает два режима перехвата — fake-ip и redir-host. Разберём, зачем прокси вообще вмешивается в разрешение имён, чем режимы отличаются на практике и как выглядит рабочая секция dns.

Зачем прокси перехватывает DNS

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

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

fake-ip: адрес выдаётся мгновенно

В режиме fake-ip ядро на любой запрос сразу возвращает приложению виртуальный адрес из зарезервированного диапазона (обычно 198.18.0.0/16) и запоминает, какому имени он соответствует. Настоящего разрешения в этот момент не происходит.

Когда приложение открывает соединение на этот адрес, ядро по таблице восстанавливает исходное доменное имя, применяет к нему правила и уже выходной узел разрешает имя в реальный IP. Выгод сразу несколько: приложение не ждёт ответа DNS, доменные правила работают точно, а имена не разрешаются локально, то есть не утекают.

redir-host: классическое разрешение

Режим redir-host ведёт себя привычнее: ядро действительно спрашивает адрес у настроенных серверов и отдаёт приложению настоящий IP. Это медленнее и хуже с точки зрения утечек, зато не ломает сценарии, где программа сверяет полученный адрес с чем-то ещё или сама работает с IP напрямую.

Практический вывод такой: по умолчанию используйте fake-ip — сегодня это основной режим для клиентов на ядре mihomo; переключайтесь на redir-host, только если конкретное приложение отказывается работать и точечные исключения не помогают.

Исключения через fake-ip-filter

У виртуальных адресов есть побочный эффект: часть программ ожидает получить настоящий IP. Типичные пострадавшие — устройства и сервисы в локальной сети, сетевые принтеры, некоторые игры и клиенты, проверяющие адрес самостоятельно. Для них существует список исключений fake-ip-filter: перечисленные в нём имена разрешаются обычным образом.

Совет. Не переключайте весь режим из-за одного проблемного приложения — добавьте его домен в fake-ip-filter. Так вы сохраните преимущества fake-ip для всего остального трафика.

Пример секции dns

Ниже — универсальный вариант, который можно взять за основу. Адреса резолверов подставьте те, которым доверяете:

dns:
  enable: true
  ipv6: false
  listen: 0.0.0.0:1053
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - "*.lan"
    - "*.local"
    - "+.internal"
  default-nameserver:
    - 1.1.1.1
    - 8.8.8.8
  nameserver:
    - https://1.1.1.1/dns-query
    - tls://8.8.8.8
  fallback:
    - https://8.8.8.8/dns-query

Три списка серверов легко перепутать, поэтому запомните их роли. default-nameserver используется один раз в самом начале — чтобы разрешить адреса самих DNS-серверов и узлов; здесь нужны обычные IP, без доменных имён. nameserver — основной набор, к которому ядро обращается за именами. fallback — запасной набор, применяемый, когда ответ основного вызывает сомнение. Если разбираться в тонкостях не хочется, оставьте один надёжный список в nameserver: это уже лучше, чем резолвер по умолчанию.

Диагностика: симптом и что проверить

СимптомВероятная причинаЧто сделать
Одно приложение не работает, остальное в порядкеЕму нужен настоящий IPДобавить его домен в fake-ip-filter
Не открываются устройства локальной сетиЛокальные имена попали в fake-ipВнести *.lan и подобные шаблоны в исключения
Сайты открываются с задержкой в несколько секундМедленный или недоступный вышестоящий DNSСменить серверы в nameserver, сократить списки
После включения TUN пропала сеть целикомОшибка в секции dnsПроверить конфигурацию командой mihomo -t -f config.yaml
Сервис отдаёт контент не того регионаИмя разрешается локальноУбедиться, что включён fake-ip и домен не в исключениях

Внимание. Ручные настройки DNS в операционной системе конфликтуют с резолвером ядра. Если вы прописывали сторонние серверы в свойствах сетевого адаптера, при отладке верните автоматическое получение.

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