Differences between revisions 6 and 10 (spanning 4 versions)
Revision 6 as of 2021-11-18 09:17:42
Size: 1313
Comment:
Revision 10 as of 2023-04-03 12:50:42
Size: 2175
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
'''Avahi''' is an implementation of '''Zeroconf''', the zero-configuration method for network services. This would otherwise be accomplished through local DNS resolution. '''Avahi''' is an implementation of Zeroconf and mDNS.

The project began with Lennart Poettering's implementation of mDNS and DNS-SD.
Line 13: Line 15:
Most [[Linux]] distributions offer an `avahi` package. For [[BSD]] distributions, try `avahi-daemon`.

For `systemd`-capable systems, [[Linux/Systemd|start and enable]] `avahi-daemon.service`.

The daemon binary is named `avahi-daemon(8)`.
Line 17: Line 25:
== Advertising Services == == Configuration ==
Line 19: Line 27:
Avahi 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: [[Linux/SystemdNetworkd|networkd]] has a competing mDNS implementation that will need to be disabled before `avahi` can be made to work.

Alternatively, [[Linux/Systemd|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|ufw]] or [[Awall|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:
Line 35: Line 73:
=== Networking === === Discovery ===
Line 37: Line 75:
Avahi broadcasts over port 5353. A common pitfall is failing to account for this in the firewall. See details in the articles for [[UFW|UFW]]. In a terminal, use `avahi-browse(1)`.

{{{
avahi-browse --all
}}}

Alternatively there is the graphical client `avahi-discover(1)`.
Line 43: Line 87:
== Inspecting Services == == See also ==
Line 45: Line 89:
=== Name Resolution === [[https://man.archlinux.org/man/extra/avahi/avahi-daemon.8.en|avahi-daemon(8)]]
Line 47: Line 91:
To make use of the `.local` domain, an additional dependency (commonly named `nss-mdns`) is required. [[https://man.archlinux.org/man/extra/avahi/avahi-browse.1.en|avahi-browse(1)]]
Line 49: Line 93:
Insert `mdns_minimal [NOTFOUND=return]` into `/etc/nsswitch.conf`, as below.

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



=== Terminal ===

{{{
avahi-browse --all
}}}
[[https://man.archlinux.org/man/extra/avahi/avahi-discover.1.en|avahi-discover(1)]]

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)