Since Windows 10 version 1709 (“Fall Creators Update”) neither SMB1 nor NetBios device discovery is supported anymore.
Due to this change a Samba share which is hosted on a Linux machine may no longer show up in the Network view of Windows Explorer.
Although the Samba share can still be reached by it’s hostname or IP address (and share name) this is a slight inconvenience.
Luckily there is a small Python tool called wsdd which provides a Web Service Discovery (host) daemon. What follows is a short guide on how to install and use wsdd on Ubuntu Server 20.04 (works similar for other Debian based distributions).
Begin by adding the PPA for wsdd to the apt sources and add the corresponding key.
$> sudo sh -c 'echo "deb https://pkg.ltec.ch/public/ focal main" > /etc/apt/sources.list.d/wsdd-ubuntu-focal.list' $> sudo apt-key adv --fetch-keys https://pkg.ltec.ch/public/conf/ltec-ag.gpg.key
Then update the package list and install wssd. The appropriate systemd service will be installed automatically on Ubuntu.
$> sudo apt update $> sudo apt install wsdd
Since wsdd does not require any special privileges, ownership can be changed to nobody.
$> sudo chown nobody:nogroup /bin/wsdd $> sudo chmod 775 /bin/wsdd
The configuration file for wsdd is located at /etc/wsdd.conf
and is empty by default. The only change I needed, was to restrict wsdd to one of my local network interfaces.
# command line parameters for wsdd (consult man page) WSDD_PARAMS="--interface eno1"
Let’s check on the status of the wsdd
service.
$> sudo service wsdd status wsdd.service - Web Services Dynamic Discovery host daemon Loaded: loaded (/lib/systemd/system/wsdd.service; enabled; vendor preset: enabled) Active: inactive (dead)
The wsdd service is not running yet and Samba shares from this Linux machine will not show up in Windows 10 at the moment. But that shall change very soon.
Regarding firewall settings, the documentation of wsdd says:
Both incoming and outgoing multicast traffic on port 3702 must be allowed. For IPv4, the multicast address is 239.255.255.250, for IPv6 the link local SSDP multicast address (ff02::c) is used. Outgoing unicast UDP traffic from port 3702 must be allowed too.
wsdd documentation
Incoming TCP traffic (and related outgoing traffic) on port 5357 must be allowed.
At this time I’m not going into the firewall settings, but keep that topic for later, until my system is completely up and working.
All that remains to be done is to (re)start the wsdd service.
$> sudo service wsdd start $> sudo service wsdd status ● wsdd.service - Web Services Dynamic Discovery host daemon Loaded: loaded (/lib/systemd/system/wsdd.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-01-24 13:56:09 UTC; 1s ago Main PID: 5837 (python3) Tasks: 1 (limit: 18764) Memory: 10.8M CGroup: /system.slice/wsdd.service └─5837 python3 /usr/bin/wsdd --interface eno1 Jan 24 13:56:09 someone.example.com systemd[1]: Started Web Services Dynamic Discovery host daemon.
At this point the Linux machine should appear in the Network View of Windows Explorer in Windows 10.
References:
- https://askubuntu.com/questions/661611/make-samba-share-visible-in-windows-network
- https://github.com/christgau/wsdd
- https://pkg.ltec.ch/public/dists/
- https://fitzcarraldoblog.wordpress.com/2020/06/16/using-ws-discovery-to-enable-windows-10-to-browse-smb-shares-in-my-home-network-of-linux-computers/
- https://www.debacher.de/ublog/2018/12/ufw-und-multicast/
Leave a Reply