Introduction
This guide shows you how to enable Linux machines to be visible in the Windows 10/11 network neighborhood using WSD (Web Services for Devices).
If you can map a share via \\hostname\share
or \\ip_address\share
but it doesn’t show automatically under “Network,” you likely need WSD (Web Services for Devices) support on the Linux side.
While many examples here use Ubuntu/Debian commands, notes for other popular distributions (such as Fedora, Arch, or openSUSE) are included where applicable. This article focuses solely on using wsdd for network discovery, not a complete Samba setup guide—though having Samba installed is a prerequisite for file sharing.
Why You Need WSD for Windows Discovery
Microsoft disabled SMBv1 and NetBIOS-based browsing by default in Windows 10 and later versions. While you can still connect manually to SMB shares, they don’t appear automatically under “Network.” Instead, Windows expects devices to advertise themselves via WSD (Web Services for Devices). If your Linux system doesn’t run a WSD service, Windows won’t “see” it.
1. Install Samba (If Not Already Installed)
For Windows to access shared folders on Linux, Samba must be installed and running. On Ubuntu/Debian, run:
sudo apt update && sudo apt install samba
For Fedora users, try: sudo dnf install samba
. Arch Linux users can use: sudo pacman -S samba
. Also, ensure at least one folder is shared and verify your firewall isn’t blocking necessary Samba or WSD ports.
2. Install WSD (wsdd)
Starting with Ubuntu 22.04 LTS (and some prior releases), wsdd
is readily available in the default repository, so you can install it with a single command. This means no manual downloads or service file edits are typically required anymore.
On Ubuntu/Debian:
sudo apt update && sudo apt install wsdd
For Fedora, you may run: sudo dnf install wsdd
, and on Arch Linux: sudo pacman -S wsdd
(if available). Check your distro’s package repositories for details.
3. Check and Enable the wsdd Service
Verify that the wsdd
service is active:
systemctl status wsdd
If it’s not running, start and enable it:
sudo systemctl start wsdd
sudo systemctl enable wsdd
4. (Optional) Restrict wsdd to Specific Network Interfaces
If you want to restrict wsdd to specific network interfaces, edit the configuration file (usually /etc/default/wsdd
or /etc/systemd/wsdd.defaults
):
# List of interfaces (space-separated)
WSDD_INTERFACES="eth0 wlan0"
# Additional wsdd options (see 'man wsdd' or 'wsdd --help')
WSDD_OPTIONS="--shortlog"
Save and exit (press CTRL
+ X
, press Y
, then press ENTER
)
Then reload systemd and restart the service:
sudo systemctl daemon-reload
sudo systemctl restart wsdd
5. Firewall Considerations
Ensure your firewall permits the necessary WSD ports so Windows can detect your Linux machine. For example, on Ubuntu with ufw
:
sudo ufw allow 3702/udp
sudo ufw allow 5357/tcp
sudo ufw allow 5358/tcp
Keep in mind that Samba itself also requires ports 139/tcp
and 445/tcp
(and 137-138/udp
if you use NetBIOS).
6. Manual Installation for Older or Unsupported Distros
If your distribution does not offer wsdd
in its repositories (common on older releases or less common distros), you can manually install it from the wsdd GitHub repository. Follow the instructions there to compile and configure the service.
7. Testing and Usage
With wsdd running and your firewall properly configured, any Windows 10 or 11 PC on the same LAN should eventually detect your Linux machine under “Network.” You may need to refresh or reboot your Windows PC to expedite discovery.
Remember that even if your Linux machine appears, you still need valid Samba credentials (or guest access configured) to access shared folders.
8. Uninstalling wsdd
To remove wsdd
installed from your package manager (Ubuntu/Debian example):
sudo apt remove wsdd
If you manually installed wsdd, stop and disable the service, then remove the installed files:
sudo systemctl stop wsdd
sudo systemctl disable wsdd
sudo rm /usr/bin/wsdd
sudo rm /etc/systemd/system/wsdd.service
Reload systemd to finalize the uninstallation:
sudo systemctl daemon-reload
9. Conclusion
This guide focused on enabling WSD to allow Windows 10/11 systems to discover Linux machines on the network. Whether you are running Ubuntu, Fedora, Arch, or another Linux distribution, wsdd is a lightweight solution that bridges the gap between Linux and Windows network discovery. If you encounter any issues or have questions, feel free to leave a comment or visit the wsdd GitHub repository for more details. Happy networking!
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!