Monitor Zeroconf advertisements:
avahi-browse --all --resolve
To look for just SSH services use the following command. Note the rather cryptic type name that you must use. You may also find it useful to add the --resolve option.
avahi-browse _ssh._tcp avahi-browse --resolve _ssh._tcp
The --dump-db option is almost totally useless since it lists the human readable names of the service types, but it does not give you the actual name that you need to use to browse that service. For example, --dump-db will list SSH Remote Terminal as one of the service types, but to actually browse for that service you need to use the type name of _ssh._tcp, which is a name I will never remember. You can't use --dump-db to remind yourself of this.
The avahi-discover package has a simple GUI browser. This is the equivalent of the command-line tool avahi-browse.
If you want to temporarily publish or annouce a service you can use the avahi-publish.
The following example shows how to publish that a VNC server is available for a KVM guest on port 5900.
avahi-publish -s "KVM guest VNC for $(hostname)" _rfb._tcp 5900 "KVM guest with VGA screen via RFB (VNC)."
You would look for this announcement from another machine with the following command.
avahi-browse _rfb._tcp --resolve
If the avahi-publish is running then you should see something like the following (assume the publishing machine's hostname is vmhost-1).
+ eth3 IPv4 KVM guest VNC for vmhost-1 VNC Remote Access local = eth3 IPv4 KVM guest VNC for vmhost-1 VNC Remote Access local hostname = [vmhost-1.local] address = [10.0.0.151] port =  txt = ["KVM guest with VGA screen via RFB (VNC)."]
If you want Avahi to publish your SSH service you must create a service config for it. You can usually just copy the example one and use it without editing it.
cp /usr/share/doc/avahi-daemon/examples/ssh.service /etc/avahi/services/.
If that example is not available then the following should work if copied to /etc/avahi/services/ssh.service.
<?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name replace-wildcards="yes">%h</name> <service> <type>_ssh._tcp</type> <port>22</port> </service> </service-group>
Avahi daemon won't start
If you look in /var/log/syslog you may see errors like the following when trying to start or restart avahi-daemon.
Oct 23 20:09:55 vmhost-1 avahi-daemon: avahi-daemon 0.6.31 starting up. Oct 23 20:09:55 vmhost-1 avahi-daemon: dbus_bus_get_private(): Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory Oct 23 20:09:55 vmhost-1 avahi-daemon: WARNING: Failed to contact D-Bus daemon.
This can happen if you updated your network settings. This causes D-Bus to crash without logging any information. The solution is to start D-Bus again.
service dbus start