Introduction
Modern Windows 10/11 systems no longer use legacy SMBv1/NetBIOS for network discovery, meaning your Linux machines may not show up automatically in File Explorer’s Network view. Instead, Windows relies on Web Services for Devices (WSD) to locate devices. This guide explains how to use the lightweight wsdd
daemon on Linux so your Samba shares are discoverable by Windows.
Prerequisites
- A Linux system with administrative (sudo) access.
- Samba installed and configured with at least one shared folder.
- A Windows PC set to a Private Network with Network Discovery enabled.
Step 1: Install and Configure Samba
Samba is essential for sharing files between Linux and Windows. If you haven’t installed Samba yet, follow the instructions below for your distribution:
Ubuntu/Debian:
sudo apt update && sudo apt install samba
Fedora: sudo dnf install samba
Arch Linux: sudo pacman -S samba
openSUSE: sudo zypper install samba
After installation, configure a Samba share by editing /etc/samba/smb.conf
or using a GUI tool. Ensure that Samba’s services are running and that the firewall allows access to ports 445
and 139
(plus UDP 137-138
if needed).
Step 2: Install the WS-Discovery Daemon (wsdd)
The wsdd
daemon advertises your Linux system on the network so Windows can discover it. Install it using your package manager:
Ubuntu 22.04+/Debian:
sudo apt update && sudo apt install wsdd
Fedora: sudo dnf install wsdd
Arch Linux: sudo pacman -S wsdd
openSUSE: sudo zypper install wsdd
If wsdd
is not available in your repository, refer to the wsdd GitHub repository for manual installation.
Step 3: Enable and Verify the wsdd Service
Check that the wsdd
service is active:
systemctl status wsdd
If the service isn’t running, start and enable it:
sudo systemctl start wsdd
sudo systemctl enable wsdd
You can monitor its logs with sudo journalctl -u wsdd -f
to ensure it’s working properly.
Step 4: (Optional) Limit wsdd to Specific Interfaces
If your Linux system has multiple network interfaces and you prefer to limit wsdd
to one (for example, eth0
), edit its configuration file. On Debian/Ubuntu, this is typically /etc/default/wsdd
(on RPM-based systems, it might be /etc/sysconfig/wsdd
):
# Specify network interfaces (space-separated)
WSDD_INTERFACES="eth0"
# Optional: additional wsdd options
WSDD_OPTIONS="--shortlog"
Save and exit (press CTRL
+ X
, press Y
, then press ENTER
)
Reload systemd and restart wsdd
:
sudo systemctl daemon-reload
sudo systemctl restart wsdd
Step 5: Configure Firewall Rules
Allow the necessary ports for WSD discovery. The wsdd
daemon uses:
3702/udp
for multicast discovery5357/tcp
for HTTP responses5358/tcp
for HTTPS responses (if used)
For example, on Ubuntu with ufw
:
sudo ufw allow 3702/udp
sudo ufw allow 5357/tcp
sudo ufw allow 5358/tcp
Also ensure Samba’s ports (TCP 445 and 139, plus UDP 137-138 if required) are open. If your network uses VLANs or multicast filtering, verify that multicast addresses (239.255.255.250 for IPv4 and ff02::c for IPv6) are not blocked.
Step 6: Testing and Troubleshooting
With wsdd
running and your firewall configured, open Windows File Explorer and click on Network. Your Linux machine should appear within a few minutes. If it doesn’t:
- Ensure the Windows PC is on a Private Network with Network Discovery enabled.
- Verify the
wsdd
service status withsystemctl status wsdd
and review logs usingsudo journalctl -u wsdd -f
. - Temporarily disable firewalls on both Linux and Windows to check for blocking issues.
- Confirm that Samba is properly configured and that you can access the share manually (e.g., via
\\hostname\share
).
Step 7: Manual Installation for Older or Unsupported Distros
If your distribution doesn’t include wsdd
in its repositories, you can install it manually:
- Download the latest source from the wsdd GitHub repository.
- Extract the archive and copy the
wsdd.py
script to/usr/bin/wsdd
(renaming it towsdd
) and make it executable. - Copy the provided
wsdd.service
file to/etc/systemd/system/
. - Reload systemd and enable the service:
sudo systemctl daemon-reload
sudo systemctl enable wsdd
sudo systemctl start wsdd
Conclusion
This guide has shown you how to enable Linux machine discovery in Windows 10/11 using WS-Discovery (WSD) via the wsdd
daemon. With Samba sharing and wsdd
in place, your Linux server will be visible in Windows File Explorer’s Network section—making cross-OS file sharing both seamless and secure.
Let me know if this helped. Follow me on Twitter, Facebook and YouTube, or 🍊 buy me a smoothie.
Wow – As a brand new user to Linux after days of searching I found your instructions that were easy to follow to connect my Win 10 pc to my newly installed Linux Mint 20. Thank you – my headache is gone 🙂
did not work
someuser@somedevice:~ $ sudo service wsdd status
● wsdd.service – Web Services Dynamic Discovery host daemon
Loaded: loaded (/etc/systemd/system/wsdd.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2021-06-29 20:35:41 -04; 29min ago
Main PID: 2085 (code=exited, status=1/FAILURE)
jun 29 20:35:41 microdispositivos wsdd[2085]: File “/usr/lib/python3.5/sysconfig.py”, line 546, in get_config_vars
jun 29 20:35:41 microdispositivos wsdd[2085]: _CONFIG_VARS[‘userbase’] = _getuserbase()
jun 29 20:35:41 microdispositivos wsdd[2085]: File “/usr/lib/python3.5/sysconfig.py”, line 205, in _getuserbase
jun 29 20:35:41 microdispositivos wsdd[2085]: return joinuser(“~”, “.local”)
jun 29 20:35:41 microdispositivos wsdd[2085]: File “/usr/lib/python3.5/sysconfig.py”, line 184, in joinuser
jun 29 20:35:41 microdispositivos wsdd[2085]: return os.path.expanduser(os.path.join(*args))
jun 29 20:35:41 microdispositivos wsdd[2085]: File “/usr/lib/python3.5/posixpath.py”, line 238, in expanduser
jun 29 20:35:41 microdispositivos systemd[1]: wsdd.service: Main process exited, code=exited, status=1/FAILURE
jun 29 20:35:41 microdispositivos systemd[1]: wsdd.service: Unit entered failed state.
jun 29 20:35:41 microdispositivos systemd[1]: wsdd.service: Failed with result ‘exit-code’.
I was able to “see” my ubuntu share but i got an error when i tried to click the folder from my windows 10 machine: Network Error
Windows cannot access \\Asqrd\10tb-hdd You do not have permission to access \\Asqrd\10TB-HDD. Contact your network administrator to request access.
I had made sure to change permissions but since its several terabytes it was taking FOREVER.
So what do I do?
Hi there.
excellent post. Must confess I am quite new to this and when I do sudo service wsdd status
I get this:
May 11 07:51:00 webinterno.xx systemd[11684]: wsdd.service:
Failed to determine group credentials: No such process
May 11 07:51:00 webinterno.xx systemd[11684]:
wsdd.service: Failed at step GROUP spawning /usr/bin/wsdd: No such process
Any idea how to fix this?
Please let me know.
Regards,
Paco
Worked perfectly ! Thanks so much !
So far Win 10 doesn’t ‘see’ the machine or share. Can map it manually using IP address.
Ubuntu 20.04
getting this error message in addition to the others already mentioned
when running the query sudo service wsdd status
Apr 11 16:52:05 odroid wsdd[2566]: WARNING: cannot unset all_multicast: [Errno 92] Protocol no>
Thanks so much for this!
Finally – something that worked. I appreciate your time in making this article.
A bit of a warning. Your way here can cause other network related issues. Its also not as easy as just following what is found on github.
github Ubuntu install:
“deb https://pkg.ltec.ch/public/ distro main
Replace distro with the name of your distro, e.g. buster or xenial (issue lsb_release -cs if unsure). After an apt update you can install wsdd with apt install wsdd.
You also need to import the public key of the repository like this apt-key adv –fetch-keys https://pkg.ltec.ch/public/conf/ltec-ag.gpg.key.”
And that’s it. It should be running plus no network conflicts that your way creates.
Thanks, Jran. I may consider updating the article to simplify the install. However, my method works across many distributions and I’m hoping that distributions like Ubuntu will eventually include wsdd in future releases by default. I will monitor this article and update in due course.
Thanks for that worked perfectly…How many days fighting with …never mind your solution was the answer
I want to THANK YOU immensely for providing this information. It was flawless and worked perfectly. I cannot thank you enough.
Thanks so much for this … have struggled forever with trying to figure out why windows (again!) stopped being able to see — let alone connect to — samba shares.
This. Made. My. Day.
Thank you very much for this clear and concise solution. It works perfectly on my Ubuntu Mate 20.04LTS media server. Now to try this on my Centos v7 dbms server.
OMFG! Thank you!! Thanks you so much!!!
This worked great! Thanks!
Thank You, Thank You, Thank You so much!!!
It’s woriking 🙂
How to See Ubuntu Machines and Samba Shares on a Windows 10 Network
works like a charm windows 10 sees linux mint Yesssssssssssssss
ps would it be possible to have a printer friendly link 🙂
Your instructions worked great and I have now set things up on both of my machines. But now I have the same problem as jp2558: My Windows machine (Win10) can now ‘see’ the share on my Ubuntu machine but when I try to open that folder, I’m asked to “Enter network credentials” so I provide my Ubuntu machine user name and password. But I get back “Access is denied”. Stuck.
The way I fixed this was adding my outlook.com user. I found this
Linux windows 10 credentials
>> sudo useradd [email protected]
>> sudo passwd [email protected]
>> sudo usermod -G users [email protected] [the group users is configured in Samba as valid access group]
>> sudo service samba restart
for shares I installed webmin on my ubuntu server and added shared folder’s with outlook.com user and my linux user as well.
I’ve followed all the instructions and everything seems to be in order however when I try to map a drive in win10 it says access denied.. I do have one folder mapped in ubuntu and the smbclient service is running. I can see the share, but just can’t access it. One thing I did notice is if I look at the share in nautilus the share doesn’t seem to be there but if I run sudo nautilus I can see the share…. I’m stumped at this point….?
Thank you so much. 2 days of @#$%&%$ around after upgrade 20.04 stopped me being able to see Samba shares on all my windows 10 machines, this was one of the the simplest fixes I found and it is the only one that worked. 🙂
👍
Exellent guide worked flawlessly on ubuntu 20.10
Thank’s a lot DevAnswers, please share this on stackoverflow or comment cause I’ve gone ahead and shared I’m sure many other people will need this service 🙂
https://stackoverflow.com/questions/64525643/how-to-see-ubuntu-20-04-machines-and-samba-shares-on-a-windows-10-network
Perfect guide – thanks and congratulation!
Let me leave a small hint: please correct the swapped letters in headlines for wsd “WDS”.
Ah! Thanks for letting me know. 🙂
Great, I am often frustrated by Linux procedures which are for other versions, depend on specifics of an intstallation, omit details assumed to be known by all -but not by me-: This is precise, complete and it works!