Avahi mdns dns sd stack что это
Avahi is a free Zero-configuration networking (zeroconf) implementation, including a system for multicast DNS/DNS-SD service discovery. It allows programs to publish and discover services and hosts running on a local network with no specific configuration. For example you can plug into a network and instantly find printers to print to, files to look at and people to talk to. It is licensed under the GNU Lesser General Public License (LGPL).
Troubleshooting
Using Avahi
systemd-resolved prevents nss-mdns from working
nss-mdns only works if the DNS server listed in /etc/resolv.conf returns NXDOMAIN to SOA queries for the "local" domain.[1] Even if systemd-resolved is configured with MulticastDNS=no in resolved.conf(5) , it will not return NXDOMAIN for these queries. See systemd issue 21659.
A solution is to use the full mdns NSS module instead of mdns_minimal and create /etc/mdns.allow to allow only the "local" domain. For example:
Note: The above solution will break reverse lookups in networking utilities such as mtr and traceroute . These applications will attempt to do a reverse lookup via Avahi and time out instead of falling back to other DNS services. This seems similar to Debian issue 433943 where the recommendation is, unfortunately, to use mdns_minimal instead of mdns .
Соответственно таймер всегда отсчитывает полторы минуты, и только после этого перезагружается/выключается. Может у кого то есть идеи почему Avahi не завершается сразу? В логах ничего криминального не нашел, возможно просто не туда смотрю.
так отключи его вообще, из автозагрузки убери (Avahi от wine наверняка) если ты его для чего другого не используешь
Похоже проблема была с IPv6, который не поддерживается роутером. Отрубил IPv6 у Avahi, пока вроде больше задержки не появлялись.
Вайн ни при чём.
Disregard this, задержка по прежнему вылетает соверешнно рандомно. Ума не приложу в чем может быть проблема. Вылетает на совершенно чистой системе через net-install.
это у меня так было на Wheezy, а как он мог появиться в данном случае?
Frost ★★★ ( 04.01.15 18:53:53 )
Последнее исправление: Frost 04.01.15 18:55:53 (всего исправлений: 1)
На чистом Jessie Avahi уже есть в свежеустановленной системе. И сразу начинает вылетать эта проблема.
cups с недавних пор требует avahi. Т.к. cups теререча принадлежит Apple, а avahi это реализация яблочного протокола.
systemd? Avahi вообще используется для чего-то?
вот хрен его знает для чего он на голой системе нужен:
Frost ★★★ ( 04.01.15 19:10:40 )
Последнее исправление: Frost 04.01.15 19:10:57 (всего исправлений: 1)
Чтобы сетевой принтер был всегда доступен по адресу printer.local без любви с dhcp и dns. Твой Капитан.
то есть если нет сетевых принтеров этот сервис и не нужен?!
то есть если нет сетевых принтеров этот сервис и не нужен?!
Если нет устройств поддерживающих zeroconf или желания zeroconf использовать, то да, нинужно.
Я его на raspberry pi запустил, теперь по raspberry.local на него захожу.
Да уж, раньше было - «установи нужное». Теперь - «убери ненужное».
Frost ★★★ ( 04.01.15 19:33:27 )
Последнее исправление: Frost 04.01.15 19:34:37 (всего исправлений: 1)
Да уж, раньше было - «установи нужное». Теперь - «убери ненужное». systemctl stop avahi-daemon.service, systemctl disable avahi-daemon.service
Я бы посочувствовал, но ссзб.
Хз, у меня на арче wine не требует avahi ни явно, ни неявно.
Хз, у меня на арче wine не требует avahi ни явно, ни неявно.
В смысле зависит ли wine от cups и зависит ли cups от avahi.
Посмотрел на арчесайте, wine имеет опциональную зависимость от cups, cups зависит от libcups, а libcups от avahi. Ещё и systemd в зависимости прикрутили, ламерьё.
Так и думал решить проблему, но avahi по-прежнему висит в процессах. Попробовать через mask?
Судя из подсказок - если нет сетевых «хитроумных» девайсов то этот сервис не нужен. Прикончи его уже:)
Убил mask'ом, всё в порядке, хотя честно говоря не люблю так топорно решать проблемы.
Всем спасибо за советы.
хотел спросить, может это порядок «выгрузки» в systemd не своевременно отрабатывает? может такое быть? или там всё параллельно убивается при перезагрузке, выключении?
Стой. Во-первых, размаскируй. Во-вторых, systemd тебе должен был написать — «can still be activated by avahi-daemon.socket». Поэтому:
В-третьих, systemctl mask не убивает, а запрещает запуск. Убивает systemctl kill .
intelfx ★★★★★ ( 04.01.15 20:55:25 )
Последнее исправление: intelfx 04.01.15 20:59:46 (всего исправлений: 1)
- там всё паралелльно убивается
- avahi можно убивать когда угодно, ему запущенная сеть в момент остановки не требуется (следовательно, network.target в зависимостях и отсутствует)
А, в опциональные я не смотрел.
Ещё и systemd в зависимости прикрутили, ламерьё.
systemd в арче требуется глобально. А явно он там указан по той причине, что в составе пакета есть только юнит, а инитскриптов уже нет.
intelfx ★★★★★ ( 04.01.15 20:57:35 )
Последнее исправление: intelfx 04.01.15 21:01:30 (всего исправлений: 1)
Ну я так и думал.
С разморозкой, арч уже полтора года как pure systemd.
С разморозкой, арч уже полтора года как pure systemd.
Ну я так и думал.
Проблема в том, что через disable service и disable socket - avahi все равно висит в процессах. Через mask всё нормально, не очень понимаю чем такой вариант плох. Создал симлинк на dev/null и ничего не запускается.
Ну ты же сам пишешь --
честно говоря не люблю так топорно решать проблемы
Поэтому и. Но стоп, после disable+stop на сокете и сервисе (именно в этом порядке) он всё равно после перезагрузки висит в процессах?
Да, стоп дисэбл на сокет и затем сервис - все равно подгружается.
Точнее дисэбл - стоп, суть в том что этот вариант по какой-то причине не работает. Может его cups подтягивает, который устанавливался вместе с системой.
Я, как старый линуксоид, когда впервые установил Ubuntu и увидел незнакомое слово avahi, конечно же сразу посмотрел в google. Потыкался в несколько ссылок, увидел другие непонятные слова, типа zeroconf, multicast dns, bonjour. Сразу понял, что это какая то мутная технология от Apple и нафиг мне ненужная.
Однако, с ростом локальной сети внутри моей квартиры, подумал, что неплохо бы было полюбопытствовать, как можно приспособить zeroconf, чтобы облегчить себе жизнь.
-
— это протокол, разработанный Apple и призванный решать следующие проблемы:
- выбор сетевого адреса для устройства;
- нахождение компьютеров по имени;
- обнаружение сервисов, например принтеров.
Для разрешения имен (name resolving) используется протокол Multicast DNS или сокращено mDNS. Он позволяет устройству выбрать имя в зоне .local. Работает это почти как обычный DNS, но с нюансами. Каждый компьютер хранит записи своей зоны ( A , MX , SRV ) сам и сам же обслуживает запросы к ним. Когда какой либо компьютер хочет узнать запись зоны, скажем определить IP-адрес по имени (получить запись A для заданной зоны), он обращается по multicast-адресу 224.0.0.251 . Соответственно, запрос получают все компьютеры в локальной сети, а отвечает тот, кто хранит зону для интересующего нас имени.
Для поиска и обнаружения сервисов используется протокол DNS based Service Discovery или DNS-SD. Для того, чтобы прорекламировать, какие сервисы доступны на устройстве, используются DNS-записи типа SRV , TXT , PTR .
- Поставить пакеты avahi-daemon , avahi-autoipd , libnss-mdns . Если у вас стоит Ubuntu, то скорее всего эти пакеты уже установлены.
- Включить IPv4LL. Этот шаг совершенно не обязателен. Если у вас есть любой IP-адрес, который нормально маршрутизируется в локальной сети, то использовать IPv4LL не нужно и даже вредно, так как по стандарту, маршрутизатуры не должны форвардить пакеты с link-local адресами ( 169.254.* ). Иными словами, пробросить интернет через NAT скорее всего не удастся (мне не удалось). Но если вы уж решились, то достаточно для сетевого интерфейса локальной сети, в файле /etc/network/interfaces поставить тип ipv4ll . Что-то типа такого:
Уже давно являюсь пользователем продукции Apple. Старенький макбук полностью справляется с теми задачами, что на него возлагаются. В основном конечно развлекательные. Но в последнее время стало не хватать места на 40 гиговом жестком диске. И вот наконец у меня зачесались руки настроить свой домашний сервер, как хранилище. Некоторое время работал по ftp, но это было не удобно. Было принято решение настроить наконец Appletalk, не зря же он есть и заодно приручить к нему TimeMachine:-)
Настройка всего этого можно разделить на несколько этапов:
1. Установка Appletalk
2. Настройка AppleTalk
3. Установка Avahi
4. Настройка Avahi
5. Настройка TimeMachine
Ну что ж, приступим.
1. Установка AppleTalk
Пакет Netatalk — opensource реализация сервиса Appletalk (AFP сервер). Mac OS X требует поддержки шифрования, но стандартная сборка этого пакета не поддерживает шифрование. Поэтому необходимо пересобрать этот пакет.
Тут можно скачать уже правильно собранный пакет, и перейти к пункту 2.
Но лучше собрать самому выполнив эти команды:
Скачиваем сырцы:
cd /tmp
sudo apt-get build-dep netatalk
sudo apt-get source netatalk
cd netatalk-2*
Устанавливаем то, что нужно для сборки:
sudo apt-get install cracklib2-dev fakeroot libssl-dev
Собираем:
sudo DEB_BUILD_OPTIONS=ssl
sudo export DEB_BUILD_OPTIONS
sudo dpkg-buildpackage -rfakeroot
И, если все в порядке, устанавливаем:
sudo dpkg -i ../netatalk_2*.deb
Все не так страшно как казалось. Чтобы при обновлении системы правильный пакет не заменился более новым но не правильным ставим блок на пакет netatalk:
echo "netatalk hold" | sudo dpkg --set-selections
Всё, теперь перейдем к настройке.
2. Настройка AppleTalk
Сперва нужно отключить те сервисы, которые для решения текущей задачи не нужны. Приведем секцию в фаиле /etc/default/netatalk до такого вида:
ATALKD_RUN=no
PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no
Теперь пришло время главного конфигурационного файла /etc/netatalk/afpd.conf и внизу добавим эту строчку:
- -transall -uamlist uams_randnum.so,uams_dhx2.so,uams_guest.so -nosavepassword -advertise_ssh
Теперь перейдем к настройке ресурсов, которые будут рассшарены по afp. Это настраивается в файле /etc/netatalk/AppleVolumes.default
Строка:
/home/torrent/downloads "Torrent-Downloads" allow:username,nobody rolist:nobody cnidscheme:cdb options:usedots
рассшаривает папку /home/torrent/downloads под именем Torrent-Downloads для пользователя username и для гостевого пользователя. Причем Гость может только читать из этой папки.
Строка:
/home/username/TimeMachine "TimeMachine" allow:username1,username2 cnidscheme:cdb options:usedots,upriv
рассшаривает ресурс для TimeMachine.
После редактирования конфигов, стоит перезапустить netatalk:
sudo /etc/init.d/netatalk restart
Установка Avahi
После проделанных выше шагов можно, с помощью Finder, зайти на рассшаренные ресурсы. Но каждый раз использовать для этого меню не удобно, нужно сделать так, чтобы сервер afp был виден в меню ресурсов Finder.
Для этого нам и понадобился Avahi. Avahi — демон предоставляющий в сети сервисы на подобии Bonjour.
Установка avahi проста:
sudo apt-get install avahi-daemon
sudo apt-get install libnss-mdns
В файле /etc/nsswitch.conf в строке начиающийся на hosts нужно добавить в конце mdns, вот так:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
4. Настройка Avahi
И перезапустим avahi:
sudo /etc/init.d/avahi-daemon restart
Теперь хранилище должно было появится в левом сайдбаре Finder.
5. Настройка TimeMachine
В консоли мака нужно выполнить команду:
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
Менеджер обновлений предложил обновиться, потом завис на этапе обновления grub примерно на 4 часа. После чего комп был перезагружен, а система не запускалась.
На компе было два жестких диска, на одном винда, на втором линукс. При попытке загрузиться как обычно с диска с линуксом ничего не происходило. В дополнительных параметрах загрузки были попытки восстановить систему и починить grub с помощью команды grub, но процесс так же зависал.
После отключения диска с виндой при загрузке линукс была возможность выбрать дополнительные параметры загрузки, как на фото.
При попытке выполнить fsck ничего не произошло, команда зафейлилась. При попытке выполнить grub, а затем dpkg всё прошло хорошо, но система теперь загружается катастрофически медленно. Винда же загружается хорошо, когда два диска подключены к материнской плате.
Как узнать причину этой медленной загрузки линукса и что с ней делать?
Смотрите, что стартует долго, ядро или юзерспейс. Если ядро, думаете почему. Если юзерспейс отнимает много времени -
смотрите какой сервис сколько стартовал и думаете почему. Что-то более конкретное посоветовать тут нельзя.
Выводила это в график, вышло так
Если я правильно понимаю, проблема в firmware и loader. Можно ли их убрать из загрузки системы?
Файл графика, видимо, очень большой. Прикрепляю по кусочкам. Первое - общий вид (как полагаю, вполне стандартный. Второе - длина firmware и loader, третьим идёт kernel, а за ним systemd
Убрать их никуда нельзя, это этап загрузки изначальной. 1) загружается прошивка BIOS/UEFI(firmware)
2)загрузчик(loader), grub в вашем случае, и далее по списку, что нас не особо интересует. Загрузка grub в 5 секунд конечно не критична, это нужно сравнить с тем как он на вашем железе грузился раньше.
firmware же в 26 секунд простоя это пздц. По скольку firmware грузится еще до того, как загрузится не то что ядро а даже загрузчик, т.е. в момент как грузится firmware на вашем компьютере еще даже нет линукса. Это вводит меня в ступор и мне даже сложно что-то предположить. Единственное, что могу предположить - у вас в системе установлен режим (BIOS/UEFI/Legacy CSM) отличный от разметки дисков. Т.е. у вас возможно загрузка стоит UEFI а диски размечены в MBR или наоборот. Попробуйте копнуть в эту сторону. Еще попробуйте поискать в биосе опцию Skip POST или что-то типа того, это может решить симптом долгой загрузки firmware, но не проблему как таковую, потому что проблема изначально была вызвана сбоем при обновлении в ОС и как это могло повлиять на настройки прошивки, мне опять же сложно предположить. Начните с проверки сопоставления метода загрузки и формата дисков как я описал выше. А вообще я бы лично просто систему переустановил, если вам нужно просто чтобы компьютер нормально заработал, а не важен сам процесс починки.
DollyPapper, а, это я не учла. Тут наверное, дело в том, что с одним жестким диском что-то не до конца в порядке, поэтому на этапе загрузки я всегда захожу в биос и выбираю нужный диск, с которого загружаться.
систему всегда можно переустановить, но это все же не выход, ведь ситуация может повториться. в любом случае, спасибо за наводку, что в этой стороне можно не искать, и за подробное объяснение! круг поиска заметно сузился :)
DollyPapper, привет! Сама проблема всё ещё актуальна, но благодаря этим командам поняла, что дело в юзерспейс. Кажется, проблема с сетью. Заметила, что при вызове systemd-analyze blame часто фигурирует этот фрагмент:
На всякий случай, скриншоты:
Смотреть логи загрузки, обычно для этого достаточно нажать Esc при загрузке. Скорее всего, какой-то сервис не может стартануть, а systemd ждёт. Скорее всего, сеть. Если сами не поймёте, то сфотографируйте экран в тот момент, как там перестанут бежать буковки (не забудьте про Esc, он жмётся после того, как вы покинете Grub).
Рональд Макдональд, посмотрела через график, кажется, проблема в том, что добавились firmware и loader (раньше этот график никогда не видела, но судя по статьям из интернета их не должно быть в загрузке. При обновлении действительно был вопрос про firmware, нажала "yes".
Файл графика, видимо, очень большой. Прикрепляю по кусочкам. Первое - общий вид (как полагаю, вполне стандартный. Второе - длина firmware и loader, третьим идёт kernel, а за ним systemd
Рональд Макдональд, а он нигде не сохраняется после входа? При загрузке не могу остановить процесс вывода с помощью ctrl + s, он просто выводит инфу, а затем убирает её.
заметила, что загрузка висит на трех этапах:
1) после выбора диска, с которого запускать систему, до ввода пароля пользователя, после ввода пароля пользователя (везде просто черный экран)
Ромзес Панагиотис, Этот снимок я сделала, когда попыталась восстановить систему из recovery mode + dpkg (подумала, что какие-то пакеты обновления не установились до конца, тк перезагрузила комп при зависшем менеджере обновлений.
с сетью все в порядке
[ OK ] Finished GRUB failed boot detection.
Stopping CUPS Scheduler.
[ OK ] Stopped CUPS Scheduler.
[ OK ] Started CUPS Scheduler.
[ OK ] Started Login Service.
[ OK ] Started Avahi mDNS/DNS-SD Stack.
[ OK ] Started WPA supplicant.
[ OK ] Started Make remote CUPS printers available locally.
[ OK ] Started Thermal Daemon Service.
[ OK ] Started Network Manager.
[ OK ] Reached target Network.
Starting OpenVPN service.
Starting Permit User Sessions.
[ OK ] Finished OpenVPN service.
[ OK ] Finished Permit User Sessions.
Starting Light Display Manager.
Starting Hold until boot process finishes up.
Starting Hostname Service.
[ OK ] Started Authorization Manager.
Starting Modem Manager.
[ OK ] Started Hostname Service.
------------ Thu Jun 17 13:44:39 MSK 2021 ------------
/dev/sdc2: clean, 485088/30498816 files, 7678680/121965056 blocks
[ OK ] Reached target System Initialization.
[ OK ] Started ACPI Events Check.
[ OK ] Started CUPS Scheduler.
[ OK ] Started Trigger anacron every hour.
[ OK ] Started Daily apt download activities.
[ OK ] Started Daily apt upgrade and clean activities.
[ OK ] Started Periodic ext4 Onli…ata Check for All Filesystems.
[ OK ] Started Discard unused blocks once a week.
[ OK ] Started Refresh fwupd metadata regularly.
[ OK ] Started Daily rotation of log files.
[ OK ] Started Daily man-db regeneration.
[ OK ] Started Message of the Day.
[ OK ] Started Daily Cleanup of Temporary Directories.
[ OK ] Started Ubuntu Advantage update messaging.
[ OK ] Reached target Paths.
[ OK ] Reached target Timers.
[ OK ] Listening on ACPID Listen Socket.
[ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[ OK ] Listening on CUPS Scheduler.
[ OK ] Listening on D-Bus System Message Bus Socket.
[ OK ] Listening on UUID daemon activation socket.
[ OK ] Reached target Sockets.
[ OK ] Reached target Basic System.
Starting Accounts Service.
[ OK ] Started ACPI event daemon.
Starting Save/Restore Sound Card State.
[ OK ] Started Run anacron jobs.
Starting Avahi mDNS/DNS-SD Stack.
[ OK ] Started Regular background program processing daemon.
[ OK ] Started CUPS Scheduler.
[ OK ] Started D-Bus System Message Bus.
Starting Network Manager.
[ OK ] Started Save initial kernel messages after boot.
Starting Remove Stale Onli…t4 Metadata Check Snapshots.
Starting Detect the availa…eal with any system changes.
Starting LSB: Record successful boot for GRUB.
Starting LSB: disk temperature monitoring daemon.
[ OK ] Started irqbalance daemon.
Starting Tool to automatic…mit kernel crash signatures.
Starting Initialize hardware monitoring sensors.
[ OK ] Started mintsystem.service.
Starting Dispatcher daemon for systemd-networkd.
Starting NVIDIA Persistence Daemon.
[ OK ] Started Set the CPU Frequency Scaling governor.
Starting Authorization Manager.
Starting Restore /etc/reso… the ppp link was shut down.
Starting System Logging Service.
Starting Secure Boot updates for DB and DBX.
Starting Login Service.
Starting Thermal Daemon Service.
Starting Ubuntu system adjustments.
Starting Disk Manager.
Starting WPA supplicant.
[ OK ] Finished Remove Stale Onli…ext4 Metadata Check Snapshots.
[ OK ] Finished Restore /etc/reso…re the ppp link was shut down.
[ OK ] Started System Logging Service.
[ OK ] Finished Initialize hardware monitoring sensors.
[ OK ] Finished Save/Restore Sound Card State.
[ OK ] Reached target Sound Card.
[ OK ] Started Tool to automatica…ubmit kernel crash signatures.
[ OK ] Started NVIDIA Persistence Daemon.
[ OK ] Started LSB: disk temperature monitoring daemon.
[ OK ] Finished Secure Boot updates for DB and DBX.
[ OK ] Started Login Service.
[ OK ] Started Avahi mDNS/DNS-SD Stack.
[ OK ] Started Make remote CUPS printers available locally.
[ OK ] Started WPA supplicant.
[ OK ] Started LSB: Record successful boot for GRUB.
Starting GRUB failed boot detection.
[ OK ] Started Authorization Manager.
Starting Modem Manager.
[ OK ] Finished Detect the availa… deal with any system changes.
[ OK ] Started Thermal Daemon Service.
[ OK ] Finished GRUB failed boot detection.
[ OK ] Started Network Manager.
[ OK ] Reached target Network.
Starting OpenVPN service.
Starting Permit User Sessions.
[ OK ] Finished OpenVPN service.
[ OK ] Finished Permit User Sessions.
Starting Light Display Manager.
Starting Hold until boot process finishes up.
Starting Hostname Service.
[ OK ] Started Hostname Service.
Hostname changes with appending incrementing numbers
This is a known bug that is caused by a hostname race condition. One possible workaround is disabling IPv6 to attempt to prevent the race condition. If multiple interfaces are present use allow-interfaces to limit Avahi to a single interface. Another possible workaround is to disable the cache to prevent Avahi from checking for host name conflicts altogether, but this prevents Avahi from performing lookups.
Installation
You can manage the Avahi daemon with avahi-daemon.service using systemd.
Note: systemd-resolved has a built-in mDNS service, make sure to disable systemd-resolved's multicast DNS resolver/responder (refer to resolved.conf(5) ) or disable systemd-resolved.service entirely before using Avahi.
AirPrint from Mobile Devices
This section is being considered for removal.
Avahi along with CUPS also provides the capability to print to just about any printer from airprint compatible mobile devices. In order to enable print capability from your device, simply create an Avahi service file for your printer in /etc/avahi/services/ . An example of a generic services file for an HP-Laserjet printer would be similar to the following with the name , rp , ty , adminurl and note fields changed.
Note: If your printer under http://localhost:631/printers is "Not Shared", this python script will not output any file to /etc/avahi/services; in that case, you will need to "Modify Printer" under one of the CUPS drop-down menus to turn sharing on. If that does not work, check out the ArchWiki on CUPS printer sharing.
File sharing
If you have an NFS share set up, you can use Avahi to be able to automount them in Zeroconf-enabled browsers (such as Konqueror on KDE and Finder on macOS) or file managers such as GNOME/Files.
Create a .service file in /etc/avahi/services with the following contents:
The port is correct if you have insecure as an option in your /etc/exports ; otherwise, it needs to be changed (note that insecure is needed for macOS clients). The path is the path to your export, or a subdirectory of it. For some reason the automount functionality has been removed from Leopard, however a script is available. This was based upon this post.
Samba
With the Avahi daemon running on both the server and client, the file manager on the client should automatically find the server.
Vsftpd
Create a .service file in /etc/avahi/services with the following contents:
Link-Local (Bonjour/Zeroconf) chat
Adding services
Avahi advertises the services whose *.service files are found in /etc/avahi/services . Files in this directory must be readable by the avahi user/group.
If you want to advertise a service for which there is no *.service file, it is very easy to create your own. As an example, let us say you wanted to advertise a quote of the day (QOTD) service operating per RFC:865 on TCP port 17 which you are running on your machine
The first thing to do is to determine the . avahi.service(5) indicates that the type should be "the DNS-SD service type for this service. e.g. '_http._tcp'". Since the DNS-SD register was merged into the IANA register in 2010, we look for the service name on the IANA register or in /etc/services file. The service name shown there is qotd . Since we are running QOTD on tcp, we now know the service is _qotd._tcp and the port (per IANA and RFC 865) is 17 .
Our service file is thus:
For more complicated scenarios, such as advertising services running on a different server, DNS sub-types and so on, consult avahi.service(5) .
Avahi comes with an example service file to advertise an SSH server. To enable it:
Obtaining IPv4LL IP address
This article or section is a candidate for merging with dhcpcd.
By default, if you are getting IP using DHCP, you are using the dhcpcd package. It can attempt to obtain an IPv4LL address if it failed to get one via DHCP. By default this option is disabled. To enable it, comment noipv4ll string:
Alternatively, run avahi-autoipd :
Firewall
Be sure to open UDP port 5353 if you are using a firewall.
Hostname resolution
Avahi provides local hostname resolution using a "hostname.local" naming scheme. To enable it, install the nss-mdns package and start/enable avahi-daemon.service .
Then, edit the file /etc/nsswitch.conf and change the hosts line to include mdns_minimal [NOTFOUND=return] before resolve and dns :
Configuring mDNS for custom TLD
The mdns_minimal module handles queries for the .local TLD only. Note the [NOTFOUND=return] , which specifies that if mdns_minimal cannot find *.local , it will not continue to search for it in dns , myhostname , etc.
In case you want Avahi to support other TLDs, you should:
- replace mdns_minimal [NOTFOUND=return] with the full mdns module. There also are IPv4-only and IPv6-only modules mdns[46](_minimal)
- customize /etc/avahi/avahi-daemon.conf with the domain-name of your choice
- whitelist Avahi custom TLDs in /etc/mdns.allow
Tools
Avahi includes several utilities which help you discover the services running on a network. For example, run
to discover services in your network.
The Avahi Zeroconf Browser ( avahi-discover – note that it needs Avahi's optional dependencies gtk3 , dbus-python and python-gobject ) shows the various services on your network. You can also browse SSH and VNC Servers using bssh and bvnc respectively.
Contents
Читайте также: