Что такое avahi linux

Обновлено: 18.05.2024

Учетная запись платформы Avahi (zeroconf, Apple Bonjour), предоставленная Debian. Основано на пакетах, поставляемых с Debian 10 (buster) и Debian 11 (bulseye).

  1. Введение
  2. Утилиты Avahi
  3. Разрешение имени хоста
  4. Использование avahi-browse
  5. Интеграция пакета Debian с Avahi
  6. Отключение демона avahi
  7. Регистрация новой службы в Avahi
  8. Услуги печати и сканирования

Введение

  • публиковать сервисы и хосты, работающие в локальной сети, и
  • обнаружение служб и хостов, работающих в локальной сети.

Предполагается, что локальная сеть является надежной. Брандмауэр должен разрешать многоадресный трафик через порт 5353. Установка Avahi проста и впоследствии не требует обслуживания.

Машины, на которых установлены чашки, уже будут иметь avahi-daemon в качестве рекомендуемого пакета.

Утилиты Avahi

По сути, avahi-daemon спокойно продолжит свою работу по публикации и обнаружению сетевых служб и хостов, и большинству пользователей от него потребуется немного больше, кроме разрешения имени хоста.

Разрешение имени хоста

Разрешение имени хоста выполняется с помощью libnss-mdns, рекомендованного avahi-daemon. В противном случае сделайте

Как поясняется в /usr/share/doc/libnss-mdns/README.Debian, послеустановочный скрипт пакета изменяет строку в /etc/nsswitch.conf читать

Домен mDNS .local — это место, где находятся хосты в сети, и mdns4_minimal обрабатывает запросы только для этого домена. Разрешение имени хоста выполняется автоматически с помощью таких команд, как

Чтобы преобразовать имя хоста в адрес IPv4 с помощью avahi-resolve:

Обратный процесс выполняется с

Использование avahi-browse

Чтобы получить полное представление о службах и хостах в сети:

Запись из вывода одной такой команды будет использоваться для иллюстрации общих характеристик любой записи.

Демон музыкального проигрывателя – это понятное название службы. Служба работает на порту 6600 компьютера desktop.local с IPv4-адресом 192.168.7.20. текстовая запись (txt =) в этом случае пуста. Если имя службы недоступно, оно будет заменено типом службы. Вся эта информация публикуется и будет доступна клиенту, желающему получить доступ к услуге.

Список всех имен служб, известных avahi-daemon, предоставляется

выдает список соответствующих типов служб и имен протоколов приложений. Тип службы _mpd._tcp соответствует удобочитаемому демону музыкального проигрывателя. Этот сервис можно просматривать с помощью

Отображение типов служб, обнаруженных в сети:

Интеграция пакета Debian с Avahi

Некоторое указание на пакеты Debian, поддерживающие публикацию и обнаружение служб, можно найти в libavahi-client3:

Демон Avahi mDNS/DNS-SD реализует архитектуру Apple Zeroconf (также известную как «Rendezvous» или «Bonjour»). Демон регистрирует локальные IP-адреса и статические службы, используя mDNS/DNS-SD, и предоставляет два API-интерфейса IPC для локальных программ, чтобы использовать кеш записей mDNS, поддерживаемый avahi-daemon. Во-первых, это так называемый «простой протокол», который используется исключительно avahi-dnsconfd (демон, который настраивает одноадресные DNS-серверы, используя информацию о сервере, опубликованную через mDNS) и nss-mdns (плагин libc NSS, обеспечивающий разрешение имен через mDNS). Наконец, есть интерфейс D-Bus, который предоставляет богатый объектно-ориентированный интерфейс для приложений, поддерживающих D-Bus.

При запуске avahi-daemon интерпретирует свой файл конфигурации /etc/avahi/avahi-daemon.conf и считывает фрагменты XML из /etc/avahi/services/*.service которые могут определять статические службы DNS-SD. Если вы включите publish-resolv-conf-dns-servers в avahi-daemon.conf, файл /etc/resolv.conf также будет прочитан.

Параметры

-f | --file= ФАЙЛ Укажите файл конфигурации для чтения. (по умолчанию: /etc/avahi/avahi-daemon.conf) -D | --daemonize Демонизировать после запуска. Подразумевается --syslog. -с | --syslog Журнал в системный журнал вместо STDERR. Подразумевается --daemonize. --debug Увеличить уровень детализации до уровня отладки. --no-rlimits Не применять ограничения ресурсов, как указано в файле конфигурации. (Дополнительную информацию см. в setrlimit(2)) --no-drop-root Не сбрасывать привилегии суперпользователя после запуска и не требовать запуска демона с правами суперпользователя. Мы рекомендуем не использовать эту опцию. --no-chroot Не выполнять chroot(2) демон. Эта опция доступна только при компиляции с поддержкой chroot(). --no-proc-title Не изменять имя процесса во время работы. Если эта опция не указана, avahi-daemon будет отражать свое текущее состояние и выбранное имя хоста в заголовке процесса. -к | --kill Убить уже запущенный демон avahi.(эквивалентно отправке SIGTERM) -r | --reload Сообщить уже работающему демону avahi, чтобы он перечитал /etc/resolv.conf (если вы включили publish-resolv-conf-dns-servers в avahi-daemon.conf) файлы из /etc/avahi/services/. Обратите внимание, что это не приведет к перезагрузке файла /etc/avahi/avahi-daemon.conf. (эквивалентно отправке SIGHUP) -c | --check Возвращать 0 в качестве кода возврата, когда avahi-daemon уже запущен. -ч | --help Показать справку -v | --version Показать информацию о версии

Файлы

/etc/avahi/avahi-daemon.conf: файл конфигурации по умолчанию для avahi-daemon, avahi-daemon.conf(5) для получения дополнительной информации.< /p>

/etc/avahi/hosts: дополнительные статические сопоставления имен хостов для публикации в mDNS, см. avahi.hosts(5) для получения дополнительной информации.

/etc/avahi/services/*.service: определения статических служб, см. avahi.service(5) для получения дополнительной информации.

Сигналы

SIGHUP: avahi-daemon перезагрузит данные одноадресного DNS-сервера из /etc/resolv.conf и определения статических служб из /etc/avahi/services/ . (То же, что и --reload)

SIGUSR1: avahi-daemon выгружает локальные и удаленные кэшированные записи ресурсов в системный журнал.

Avahi — это служба mDNS/DNS, которая реализует механизм Apple Zeroconf. Zeroconf также известен как Rendezvous или Bonjour. Zeroconf выполняет свою основную задачу.

  1. Автоматическое назначение числовых сетевых адресов
  2. Автоматическое распределение и разрешение имен хостов,
  3. Автоматическое обнаружение сетевых служб, таких как печатающие устройства.

Avahi-daemon можно установить с помощью yum и apt, как показано ниже.

Установка Avahi

Установка Avahi

После установки avahi, как мы знаем, avahi обычно работает как демон. Мы запустим демона avahi. Используя сценарии инициализации, можно выполнить следующую команду. Имейте в виду, что avahi требует привилегий root, как видно из следующего снимка экрана, он запрашивает пароль root.

Запуск Avahi

Запуск Avahi

Еще один способ запустить avahi-daemon — использовать команду systemctl, как показано ниже. с именем службы avahi avahi-daemon. Также можно увидеть текущий статус службы avahi

Запуск Avahi

Запуск Avahi

Остановить avahi в системе инициализации можно с помощью следующей команды. Для остановки службы avahi также требуются привилегии root.

Остановка Avahi

Остановка Авахи

Демон Avahi можно включить для автоматического запуска при запуске системы с помощью команды systemctl, как показано ниже.

Включить демон Avahi

Включить демон Avahi

Демон Avahi можно отключить для автоматического запуска в системе с помощью следующей команды.

Отключить демон Avahi

Отключить демон Avahi

Файлы конфигурации Avahi находятся в /etc/avahi . Файл конфигурации демона Avahi называется avahi-daemon.conf . Этот файл имеет другой тип возможностей конфигурации.
Имена хостов и IP-адреса сервера Avahi хранятся в файле hosts. Сервисы хранятся в каталоге сервисов в виде файла XML.

Файлы конфигурации

Файлы конфигурации

Добавление хоста в службу DNS avahi аналогично добавлению файла hosts в Linux. Добавьте следующую строку в файл хоста, как показано на скриншоте, а затем перезапустите демон avahi.

Добавить хост

Добавить хост

Добавить сервисы сложнее, чем добавить хосты. Существует файл конфигурации XML, используемый для описания сервисов, и этот файл будет помещен в /etc/avahi/services/. Следующий файл конфигурации службы определяет файл FTP, который обслуживается через порт tcp 21.

Добавить сервис

Добавить услугу

Как отключить avahi-daemon: Linux, Ubuntu

Демон Avahi обнаруживает сетевые ресурсы, выделяет IP-адреса без DHCP-сервера, делает компьютер доступным по его локальному имени, выступая в качестве DNS-сервера, и облегчает совместное использование файлов и принтеров.

Что такое демон Avahi?

Демон Avahi — это демон по умолчанию в Linux, который использует системные ресурсы и снижает производительность сети. Отключить демон Avahi нельзя, сняв флажок с него в списке системных служб. Чтобы отключить Avahi в системах Ubuntu, необходимо изменить файл avahi-daemon. В операционных системах Debian Linux используется та же процедура, но имя демона может быть другим. Пакеты Avahi-discover и Service Discovery доступны для Avahi. Демон Avahi присутствует по умолчанию и позволяет вам обнаруживать сетевые ресурсы и подключаться к ним.

Его основные функции:

  • Автоматическое назначение IP-адреса даже без DHCP-сервера.
  • Действовать как DNS (каждый компьютер доступен по имени nameMachine.local).
  • Публикация сервисов и облегчение доступа.

Avahi — это реализация протокола Zeroconf.

Каковы возможные недостатки Avahi?

  • Он занимает память (около 248 КБ)
  • Открывает 2 сетевых порта (UDP 32768 и 5353)

В некоторых случаях сообщалось о снижении производительности сети.

Как отключить демон Avahi?

В Ubuntu 7.04

Если вы хотите отключить его, недостаточно просто отключить его из списка служб. Вам необходимо:

  • Отредактируйте файл /etc/default/avahi-daemon:
    • Измените строку: AVAHI_DAEMON_START = 1
    • до: AVAHI_DAEMON_START = 0

    Примечание. Команды sudo update-rc.d-f avahi-daemon remove недостаточно для отключения демона Avahi.

    В Ubuntu 7.10