avahi-daemon.conf(5)
π avahi-daemon.conf β the config file, bestie π
okay so this is avahi-daemon.conf(5) straight out of the File Formats Manual section, and it's literally the whole personality of avahi-daemon in one little text file. no cap. π
β¨ NAME β¨
avahi-daemon.conf β the configuration file for avahi-daemon. that's it, that's the vibe. π¦
πΈ SYNOPSIS πΈ
/etc/avahi/avahi-daemon.conf
that path. that's the one. write it down bestie π
π DESCRIPTION π
avahi-daemon.conf is the configuration file for avahi-daemon. she's the main character, everything else is just supporting cast. β¨
π SECTION [SERVER] π
this is where the server stuff lives. let's get into it π
host-name=β sets the host nameavahi-daemontries to register on the LAN. if you just... don't set it, it defaults to the system host name, like the one set with thesethostname()system call. lowkey it'll just figure itself out. π¦host-name-from-machine-id=β takes a boolean value ("yes"or"no"). if it's"yes",avahi-daemonwill usemachine-id(5)as its name on the LAN. β οΈ important though: that ID uniquely identifies the host, so it should be considered"confidential", and it must not be exposed in untrusted environments. defaults to"no". πdomain-name=β sets the default domain name thatavahi-daemontries to register its host name and services in, on the LAN. leave it out and it defaults to".local". cute, iconic, classic. β¨browse-domains=β a comma separated list of browsing domains, on top of the default one and the ones announced inside the default browsing domain. also psst: the user can specify extra browsing domains on the client side, either by setting$AVAHI_BROWSE_DOMAINSto a list of colon separated domains, or by adding them to the XDG config file~/.config/avahi/browse-domains(separated by newlines). options on options, we love that πuse-ipv4=β boolean ("yes"or"no"). set it to"no"andavahi-daemonwill not use IPv4 sockets. default is"yes". πuse-ipv6=β boolean ("yes"or"no"). set it to"no"andavahi-daemonwill not use IPv6 sockets. default is"yes". π¦allow-interfaces=β a comma separated list of allowed network interfaces thatavahi-daemonshould use. traffic on any other interface gets ignored, periodt. if you set it to an empty list, then all local interfaces get used except loopback and point-to-point. πdeny-interfaces=β a comma separated list of network interfaces thatavahi-daemonshould just ignore entirely. any other interface that you didn't specify will still be used, unlessallow-interfaces=is set. and heads up: this option takes precedence overallow-interfaces=. she wins the argument πcheck-response-ttl=β boolean ("yes"or"no"). set it to"yes"and an extra security check kicks in: incoming IP packets get ignored unless the IP TTL is255. earlier mDNS specifications required this check, but since this feature may be incompatible with newer implementations of mDNS, it defaults to"no". on the other hand π it provides extra security. your call bestie. π₯use-iff-running=β boolean ("yes"or"no"). if"yes",avahi-daemonmonitors theIFF_RUNNINGflag bit, which some (modern) network drivers use to tell user space whether a network cable is plugged in (copper ethernet case) or whether the network card is associated with some kind of network (WLAN case). ifIFF_RUNNINGis set,avahi-daemonwill automatically announce its services on that network. unfortunately, far too many network drivers don't support this flag at all, or support it in a broken way. π so this option defaults to"no".enable-dbus=β takes either"yes","no"or"warn". if"yes",avahi-daemonconnects to D-Bus and offers an object oriented client API. it's only available if Avahi has been compiled with--enable-dbus, in which case it defaults to"yes"."warn"behaves like"yes", but the daemon starts up even when it fails to connect to a D-Bus daemon. plus, if the connection to the D-Bus daemon is terminated, we try to reconnect. (unless we're in achroot()environment, where this definitely will fail. rip π)disallow-other-stacks=β boolean ("yes"or"no"). if"yes", no other process is allowed to bind to UDP port5353. this effectively impedes other mDNS stacks from running on the host. use it as a security measure to make sure only Avahi is responsible for mDNS traffic. also please note: we do not recommend running multiple mDNS stacks on the same host simultaneously β it hampers reliability and is a waste of resources. however, to not annoy people, this option defaults to"no". π«Άallow-point-to-point=β boolean ("yes"or"no"). if"yes",avahi-daemonwill make use of interfaces with thePOINTOPOINTflag set. this defaults to"no"because it might make mDNS unreliable (usually large latencies with such links) and it opens a potential security hole by allowing mDNS access from Internet connections. use with care and YMMV! β οΈcache-entries-max=β takes an unsigned integer specifying how many resource records are cached per interface. bigger values let mDNS work correctly in large LANs, but they also increase memory consumption. tradeoffs, tradeoffs πclients-max=β takes an unsigned integer. the maximum number of concurrent D-Bus clients allowed. if the max is reached, further clients get refused until at least one existing client disconnects. π«objects-per-client-max=β takes an unsigned integer. the maximum number of objects (entry groups, browsers, resolvers) that may be registered per D-Bus client at a time. if the max is reached, further object creation gets refused until at least one object is freed. πentries-per-entry-group-max=β takes an unsigned integer. the maximum number of entries (resource records) per entry group registered by a D-Bus client at a time. if the max is reached, further resource records may not be added to an entry group. β¨ratelimit-interval-usec=β takes an unsigned integer. sets the per-interface packet rate-limiting interval parameter. together withratelimit-burst=this may be used to control the maximum number of packets Avahi will generated in a specific period of time on an interface. π₯ratelimit-burst=β takes an unsigned integer. sets the per-interface packet rate-limiting burst parameter. together withratelimit-interval-usec=this may be used to control the maximum number of packets Avahi will generated in a specific period of time on an interface. (yes, they're besties, they work as a pair π«Ά)
π SECTION [WIDE-AREA] π
enable-wide-area=β boolean ("yes"or"no"). enables wide-area DNS-SD, aka DNS-SD over unicast DNS. if this is enabled, only domains ending in.localget resolved on mDNS, and all other domains get resolved via unicast DNS. when it's enabled, unless explicitly specified, reverse lookups will go over unicast DNS and fall back to mDNS if unicast DNS lookups fail. and if you want to maintain multiple different multicast DNS domains even with this option enabled, we encourage you to use subdomains of.local, such as"kitchen.local". this option defaults to"no". π¦
π SECTION [PUBLISH] π
the "what do we tell the LAN about ourselves" section. let's go π
disable-publishing=β boolean ("yes"or"no"). if"yes", no record will be published by Avahi, not even address records for the local host. Avahi will be started in a querying-only mode. use this as a security measure. this option defaults to"no"πdisable-user-service-publishing=β boolean ("yes"or"no"). if"yes", Avahi will still publish address records and suchlike, but will not allow user applications to publish services. use this as a security measure. this option defaults to"no"πadd-service-cookie=β boolean ("yes"or"no"). if"yes", an implicit TXT entry gets added to all locally registered services, containing a cookie value which is chosen randomly on daemon startup. this can be used to detect if two services on two different interfaces/protocols are actually identical. defaults to"no". πͺ (a cookie!! literally)publish-addresses=β boolean ("yes"or"no"). if"yes",avahi-daemonwill register mDNS address records for all local IP addresses. unless you want to useavahi-daemonexclusively for browsing, it's recommended to enable this. and if you plan to register local services, you need to enable this option. defaults to"yes". πpublish-hinfo=β boolean ("yes"or"no"). if"yes",avahi-daemonwill register an mDNS HINFO record on all interfaces, containing information about the local operating system and CPU, which might be useful for administrative purposes. this is recommended by the mDNS specification but not required. for the sake of privacy you might choose to disable this feature. defaults to"no". πpublish-workstation=β boolean ("yes"or"no"). if"yes",avahi-daemonwill register a service of type"_workstation._tcp"on the local LAN. this might be useful for administrative purposes (i.e. browse for all PCs on the LAN), but it's not required or recommended by any specification. newer MacOS X releases register a service of this type. defaults to"no". π»publish-domain=β boolean ("yes"or"no"). if"yes",avahi-daemonwill announce the locally used domain name (see above) for browsing by other hosts. defaults to"yes". π£publish-dns-servers=β takes a comma separated list of IP addresses for unicast DNS servers. you can use this to announce unicast DNS servers via mDNS. when used in conjunction withavahi-dnsconfdon the client side, this allows DHCP-like configuration of unicast DNS servers. β¨publish-resolv-conf-dns-servers=β boolean ("yes"or"no"). if"yes",avahi-daemonwill publish the unicast DNS servers specified in/etc/resolv.confin addition to those specified withpublish-dns-servers. sendavahi-daemonaSIGHUPto have it reload this file. defaults to"no". πΈpublish-aaaa-on-ipv4=β boolean ("yes"or"no"). if"yes",avahi-daemonwill publish an IPv6 AAAA record via IPv4, i.e. the local IPv6 addresses can be resolved using an IPv4 transport. only useful when IPv4 is enabled withuse-ipv4=true. defaults to"yes". π₯publish-a-on-ipv6=β boolean ("yes"or"no"). if"yes",avahi-daemonwill publish an IPv4 A record via IPv6, i.e. the local IPv4 addresses can be resolved using an IPv6 transport. only useful when IPv6 is enabled withuse-ipv6=true. defaults to"no". π¦
β¨ SECTION [REFLECTOR] β¨
ok so this is the mirror dimension section, bestie πͺ
enable-reflector=β takes a boolean value ("yes"or"no"). Set it to"yes"and avahi-daemon will reflect incoming mDNS requests to all local network interfaces, which effectively lets clients browse mDNS/DNS-SD services on every network connected to the gateway. The gateway is somewhat intelligent and should work with all kinds of mDNS traffic, though some functionality is lost β specifically the unicast reply bit, which is used rarely anyway so it's giving minor loss π . Make sure you do NOT run multiple reflectors between the same networks, because they might start playing Ping Pong with mDNS packets and that is not the slay we're going for π. Defaults to"no".reflect-ipv=β takes a boolean value ("yes"or"no"). If you set it to"yes"andenable-reflectoris enabled, avahi-daemon will forward mDNS traffic between IPv4 and IPv6, which is usually not recommended π. Defaults to"no".reflect-filters=β set a comma separated list of allowed service names to be reflected. Every single service that's seen has to match an entry in this list to get reflected to other networks. This list can match the type of service or the name of the machine providing the service. Defaults to allowing all services, generous queen behavior π.
β¨ SECTION [RLIMITS] β¨
This section is where you define system resource limits for the daemon. See setrlimit(2) for more info, bestie π. If any of the options is not specified in the configuration file, avahi-daemon does not change it from the system defaults β it just leaves it alone, respectfully.
rlimit-as=β value in bytes forRLIMIT_AS(maximum size of the process's virtual memory). Sensible values are heavily system dependent, so likeβ¦ it depends, fr fr π€·ββοΈ.rlimit-core=β value in bytes forRLIMIT_CORE(maximum core file size). Unless you want to debug avahi-daemon, it is safe to set this to0.rlimit-data=β value in bytes forRLIMIT_DATA(maximum size of the process's data segment). Sensible values are heavily system dependent.rlimit-fsize=β value forRLIMIT_FSIZE(maximum size of files the process may create). Since avahi-daemon shouldn't write any files to disk, it is safe to set this to0.rlimit-nofile=β value forRLIMIT_NOFILE(open file descriptors). avahi-daemon shouldn't need more than15to20open file descriptors concurrently. modest queen π .rlimit-stack=β value in bytes forRLIMIT_STACK(maximum size of the process stack). Sensible values are heavily system dependent.rlimit-nproc=β value forRLIMIT_NPROC(max number of processes a user can launch). avahi-daemon forks off a helper process on systems wherechroot(2)is available, therefore this value should not be set below2β οΈ. Note that while the process limit only applies to this process, the total count of processes to reach that limit includes all processes on the system with the same UID, including any containers without UID remapping (such aslxdcontainers withsecurity.privileged=true). The default configuration of3was removed to prevent problems in this scenario β so don't come for it, it's gone for a reason π«Ά.
π AUTHORS π
The Avahi Developers <avahi (at) lists (dot) freedesktop (dot) org>; Avahi is available from http://avahi.org/ β iconic, legendary, no notes β¨.
π SEE ALSO π
avahi-daemon(8), avahi-dnsconfd(8) β go read those too bestie, they're linked in the group chat π«Ά
π¬ COMMENTS π¬
This man page was written using xml2man(1) by Oliver Kurth. shoutout to Oliver, king behavior π.
and that's a wrap on avahi-daemon.conf(5), bestie π β this Manuals / User page has been served to you fresh, and the date on it is the one in the footer of the original. go forth, configure your daemon, and slay ππ¦
π¦ where this page comes from
- alpine 3.24: avahi-doc 0.9_rc4-r0 Β· LGPL-2.1-or-later
- centos-stream 10: avahi 0.9~rc2-7.el10 Β· LGPL-2.1-or-later AND LGPL-2.0-or-later AND BSD-2-Clause-Views AND MIT
- fedora 43: avahi 0.9~rc2-6.fc43 Β· LGPL-2.1-or-later AND LGPL-2.0-or-later AND BSD-2-Clause-Views AND MIT
- fedora 43: avahi 0.9~rc2-6.fc43 Β· LGPL-2.1-or-later AND LGPL-2.0-or-later AND BSD-2-Clause-Views AND MIT
- fedora 44: avahi 0.9~rc2-8.fc44 Β· LGPL-2.1-or-later AND LGPL-2.0-or-later AND BSD-2-Clause-Views AND MIT
- fedora 44: avahi 0.9~rc2-8.fc44 Β· LGPL-2.1-or-later AND LGPL-2.0-or-later AND BSD-2-Clause-Views AND MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms