Ошибки и коды · Инструкция
WSL: mDNS и имена .local не разрешаются
WSL mDNS .local не разрешается, потому что `.local` использует multicast, а не обычный DNS-сервер.
Короткий ответ
Для `.local`/mDNS учитывайте режим сети WSL: NAT с DNS tunneling не даёт тот же multicast-сценарий, что mirrored networking. На новых WSL mirrored mode поддерживает multicast; в Linux также нужен корректный mDNS/NSS-компонент.
Почему .local — это не обычный DNS
mDNS не работает как обычный DNS-запрос к серверу: устройства обмениваются multicast-пакетами в локальном сегменте. Поэтому запись `printer.local` может открываться в Windows, но не внутри WSL NAT. Microsoft описывает ограничения `.local` при DNS tunneling и рекомендует mirrored networking для возможностей multicast на подходящих Windows 11/WSL; в дистрибутиве при этом должен быть установлен механизм разрешения mDNS, например через NSS/avahi согласно Linux-системе.
Важно: Сначала убедитесь, что обычные DNS-имена разрешаются; иначе mDNS будет лишь вторичным симптомом общего сетевого сбоя.
NAT, DNS tunneling и mirrored mode
- Проверьте текущий режим: `.wslconfig` → `[wsl2] networkingMode=..`; после изменений всегда используйте `wsl --shutdown`.
- Убедитесь, что обычный DNS в WSL работает: `getent hosts example.com`; это отделит mDNS-проблему от общего отсутствия DNS.
- Для Windows 11 22H2+ и актуального WSL рассмотрите `networkingMode=mirrored`, если вам нужен multicast и конфигурация совместима с корпоративной сетью.
- В Linux установите/проверьте компоненты mDNS, которые использует ваш дистрибутив, и протестируйте `getent hosts device.local`.
- Проверьте firewall и наличие устройства в той же локальной сети; mDNS не предназначен для произвольной маршрутизации между изолированными VLAN.
Совет: Mirrored mode меняет сетевую архитектуру WSL, поэтому после включения проверьте VPN и Hyper-V firewall, а не только `.local`.
Как включить mDNS-разрешение внутри Linux
- Простое добавление `.local` в `/etc/hosts` обходит mDNS только для одного статического адреса и скрывает исходную сетевую проблему.
- Mirrored mode требует поддерживаемую Windows/WSL и может менять другие сетевые свойства; не включайте его только ради одного имени без теста VPN/firewall.
- DNS tunneling полезен для обычного корпоративного DNS, но `.local` — отдельный multicast-сценарий.
- Если принтер/устройство меняет IP, статический hosts быстро устареет; лучше восстановить реальное mDNS или использовать обычный DNS/DHCP hostname.
Предупреждение: Статическая запись в `/etc/hosts` удобна для теста, но не восстанавливает mDNS и быстро устаревает при смене IP устройства.
Проверка firewall, VLAN и одной локальной сети
Проверка должна сравнивать три имени: публичный DNS-домен, короткое корпоративное имя и `.local`. Если ломается только `.local`, не трогайте глобальный resolv.conf. После перехода на mirrored mode дополнительно проверьте VPN и входящие правила Hyper-V firewall, потому что сетевой режим меняет не одну функцию.
Когда статический hosts — плохой костыль
В mirrored mode multicast становится доступен, но Linux по умолчанию не обязан разрешать `.local`. Для Debian/Ubuntu Microsoft приводит вариант с `libnss-mdns` и настройкой `mdns_minimal` в `nsswitch.conf`. Проверяйте именно `getent hosts device.local`, потому что браузер может иметь собственные механизмы разрешения имён.
Когда имеет смысл mirrored networking
Для `.local` в WSL режим сети важен: при NAT с DNS tunneling mDNS не поддерживается, а mirrored networking добавляет поддержку multicast и улучшает этот сценарий на подходящих версиях Windows/WSL. После смены режима выполните `wsl --shutdown`, иначе вы будете тестировать старую виртуальную сеть и получите ложный вывод.
Что учитывать
mDNS не работает как обычный DNS-запрос к серверу: устройства обмениваются multicast-пакетами в локальном сегменте. Поэтому запись `printer.local` может открываться в Windows, но не внутри WSL NAT. Microsoft описывает ограничения `.local` при DNS tunneling и рекомендует mirrored networking для возможностей multicast на подходящих Windows 11/WSL; в дистрибутиве при этом должен быть установлен механизм разрешения mDNS, например через NSS/avahi согласно Linux-системе.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Troubleshooting Windows Subsystem for Linux). Пример и формулировки — редакция N1RO на 2026-09-23.