Найти в Дзене
Сисадмин

Avahi и mDNS: магия сетевого обнаружения в Linux

Оглавление
Зачем нужна avahi?
Зачем нужна avahi?

Представьте, что у вас дома вечеринка. Все гости – это устройства в вашей сети: компьютеры, принтеры, медиасерверы, смартфоны. Но есть проблема: никто не знает, как друг друга найти. Обычно, чтобы подключиться к какому-нибудь устройству, нужно помнить его IP-адрес (а кто вообще запоминает 192.168.1.57?).

Вот тут на сцену выходит Avahi и mDNS – такие себе вечеринщики, которые ходят по комнате и всем представляют друг друга:

– «Привет, я принтер HP, меня можно найти по имени hp.local!»

– «А я медиасервер! Ищу компанию для стриминга фильмов, зовите меня plex.local!»

Теперь давайте разберёмся, как это работает.

mDNS (Multicast DNS) – анонимный коммутатор в мире IP-адресов

Когда вы вводите, например, raspberrypi.local в браузере или подключаетесь к smb://nas.local, ваш компьютер отправляет специальный multicast-запрос в локальную сеть:

📢
«Эй, кто тут raspberrypi.local?»

Если в сети есть устройство с таким именем, оно радостно отвечает:

👋
«Это я! У меня IP 192.168.1.42»

После этого подключение происходит автоматически, и вам не нужно копаться в роутере, выслеживая IP-адреса.

Avahi – весельчак, который всем помогает знакомиться

Avahi – это сервис, который управляет mDNS в Linux. Он делает три вещи:

  1. Обнаруживает устройства в сети, которые поддерживают mDNS (например, принтеры, медиасерверы, другие ПК).
  2. Регистрирует ваш компьютер в сети, чтобы другие могли его найти по имени (ubuntu.local, server.local).
  3. Объявляет сервисы, например, что на вашем ПК работает файловый сервер (smb://myserver.local) или медиаплеер (http://kodi.local).

Если бы Avahi был человеком, он бы ходил по офису и раздавал всем визитки:

📢
«Этот парень раздаёт файлы, а этот запускает игры по сети»

Где это полезно?

  1. Linux + macOS + Windows в одной сети

    – На
    macOS уже есть встроенный mDNS (Apple называет его Bonjour).

    – На
    Linux Avahi добавляет совместимость с этим протоколом.

    – На
    Windows можно установить Bonjour (или Avahi) и тоже участвовать в вечеринке.
  2. Домашние сервера и Raspberry Pi

    – Чтобы не искать IP, просто вводите raspberrypi.local и подключаетесь.
  3. Принтеры, камеры, медиасерверы

    CUPS (система печати) использует Avahi для поиска принтеров.

    Kodi, Plex, DLNA-серверы используют mDNS, чтобы их находили другие устройства.
  4. Игры и p2p

    – Некоторые сетевые игры автоматически находят серверы через mDNS (Minecraft, OpenTTD).

Как проверить, работает ли Avahi?

🟢 Просмотр всех устройств и сервисов в сети

avahi-browse -a

(Это как заглянуть в список гостей вечеринки.)

🟢 Проверка, как ваш ПК зарегистрирован в сети

avahi-resolve-host-name mypc.local

(Если он не отвечает, значит, он либо стесняется, либо Avahi не запущен.)

Если не работает, что делать?

Убедитесь, что Avahi установлен:

sudo apt install avahi-daemon

Запустите и включите его:

sudo systemctl start avahi-daemon
sudo systemctl enable avahi-daemon

Если что-то не так, проверьте логи:

journalctl -u avahi-daemon --no-pager | tail -n 20

Если вы устали запоминать IP-адреса своих устройств – Avahi и mDNS спасут вас. Они работают в фоновом режиме и создают ощущение, что всё «просто работает».

Ну, а если вы не хотите, чтобы ваше устройство светилось в сети, то можно отключить Avahi (да-да, как делают шпионы или хакеры в фильмах):

sudo systemctl stop avahi-daemon
sudo systemctl disable avahi-daemon

(Это как выйти с вечеринки, чтобы никто не знал, что вы там были)

Теперь вы знаете, как Avahi делает жизнь проще. А главное – больше не надо искать IP-адреса, они сами найдут вас!