Many system administrators have grown to love Samba, a piece of Linux software that allows to use Linux machines as file and print servers compatible with Windows networking. There is, however, an annoying problem with Samba machines: they are not automatically discovered on a Windows network (in other words, when a user clicks on the Network icon in File Explorer, Samba machines do not appear on the list, although they are accessible via “manual” addressing). To fix this problem, administrators can use wsdd:
https://github.com/christgau/wsdd
To install wsdd on Debian and derivatives, follow these simple steps.
Before installing, check for the latest version of the package by going to https://pkg.ltec.ch/public/pool/main/w/wsdd/. As of this writing, the latest version available there is wsdd_0.6.1_all.deb, so we will install it on our system
Once you know which version you are about to install, issue these commands from the terminal (assuming you are logged in as root; if not, simply add sudo at the beginning of each command):
wget https://pkg.ltec.ch/public/pool/main/w/wsdd/wsdd_0.6.1_all.deb dpkg --install wsdd_0.6.1_all.deb systemctl start wsdd systemctl enable wsdd systemctl status wsdd
Assuming everything went well, the last command will produce output that looks like this:
● wsdd.service - Web Services Dynamic Discovery host daemon Loaded: loaded (/lib/systemd/system/wsdd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-09-28 15:46:16 PDT; 22h ago Main PID: 16146 (python3) Tasks: 1 (limit: 4915) Memory: 7.8M CGroup: /system.slice/wsdd.service └─16146 python3 /usr/bin/wsdd
Be sure that the Loaded: line contains the word enabled; it indicates that the service you just installed will start again when the entire system restarts.
A few months later…
WSDD can be started with a variety of command-line options. Those options are specified in /etc/wsdd.conf. Here’s what I ended up using based on my local situation:
# command line parameters for wsdd WSDD_PARAMS="-i wlan0 -p -4 -w MYWORKGROUP"
-i wlan0 tells WSDD to listen on the wireless interface (my Samba server sits on a wireless network)
-p instructs WSDD to announce the server’s name as is (i.e., without converting it to upper or lower case)
-4 tells WSDD to work with IPv4 addresses only (i.e., not to worry about IPv6)
-w MYWORKGROUP indicates that the server belongs to MYWORKGROUP (obviously, the name of the actual workgroup has been changed to protect the innocent…)