Avahi

Avahi is an implementation of Zeroconf and mDNS.

The project began with Lennart Poettering's implementation of mDNS and DNS-SD.


Installation

Most Linux distributions offer an avahi package. For BSD distributions, try avahi-daemon.

For systemd-capable systems, start and enable avahi-daemon.service.

The daemon binary is named avahi-daemon(8).


Configuration

networkd has a competing mDNS implementation that will need to be disabled before avahi can be made to work.

Alternatively, disable systemd-resolved.service entirely.

Name Resolution

For Avahi to insert domain name resolution for discovered services, an additional dependency (commonly named nss-mdns) is required.

Insert mdns_minimal [NOTFOUND=return] into /etc/nsswitch.conf, as below.

hosts: files mymachines myhostname mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

Firewalls

avahi-daemon(8) binds to port 5353. Firewalls such as ufw or awall must be reconfigured to open it.


Usage

Advertising Services

avahi-daemon(8) uses all /etc/avahi/services/*.service files that are readable by the avahi user and group. These take the form of structured XML. For example, an FTP service:

<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name>FTP</name>
  <service>
    <type>_ftp._tcp</type>
    <port>21</port>
  </service>
</service-group>

Discovery

In a terminal, use avahi-browse(1).

avahi-browse --all

Alternatively there is the graphical client avahi-discover(1).


See also

avahi-daemon(8)

avahi-browse(1)

avahi-discover(1)


CategoryRicottone

Avahi (last edited 2023-04-03 12:50:42 by DominicRicottone)