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.
ahh, what a pleasure to follow a perfectly created guide and see success right away
Ty it helped me out a lot
hi,
i am an absolute linux/ubuntu noob. after 3 days of following different guides for connection problems between ubuntu and win10 (without success except loosing my mind) i found this awesome explanation. Thank you so much for your effort.
I sitting at my Windows desktop following this guide using super putty to cycle through my long-missing SAMBA shares R-pi’s and and Ubuntu server running my Ubiquiti controller and video services. No sooner I’m done with each SAMBA servers config from this guide, BAM, it’s populating my Win10 network explorer. KUDOS!
Finally I found the greatest step by step guide!!! Thank you Author, you’ve done an amazing work!!!
Let me just describe in short my problem and what result I wished to achieve:
What steps shall I have to do???
Thanks in advance
Hi
I have the same problem as you .
Could you fix it?
Thanks
Hey,
I did the master branch install and the Samba share didn’t show up in Win10 or the server either. I then uninstalled and installed the feat-discovery branch and installed fine. But when I ran the wsdd status command at the end, I had the following errors.
wsdd.service – Web Services Dynamic Discovery host daemon
Loaded: loaded (/etc/systemd/system/wsdd.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-08-15 16:15:41 EDT; 40s ago
Main PID: 30179 (python3)
Tasks: 1 (limit: 18918)
Memory: 10.1M
CGroup: /system.slice/wsdd.service
└─30179 python3 /usr/bin/wsdd –shortlog
Aug 15 16:15:41 devastator systemd[1]: Started Web Services Dynamic Discovery host daemon.
Aug 15 16:15:41 devastator wsdd[30179]: WARNING: no interface given, using all interfaces
Aug 15 16:15:41 devastator wsdd[30179]: /usr/bin/wsdd:989: DeprecationWarning: The ‘warn’ method is deprecated, use ‘warning’ instead
Aug 15 16:15:41 devastator wsdd[30179]: logger.warn(‘new address {} on {}’.format(addr, interface.name))
Aug 15 16:15:41 devastator wsdd[30179]: WARNING: new address 127.0.0.1 on lo
Aug 15 16:15:41 devastator wsdd[30179]: /usr/bin/wsdd:992: DeprecationWarning: The ‘warn’ method is deprecated, use ‘warning’ instead
Aug 15 16:15:41 devastator wsdd[30179]: logger.warn(‘ignoring address on {}’.format(interface.name))
Aug 15 16:15:41 devastator wsdd[30179]: WARNING: ignoring address on lo
What do I need to edit to remove or fix those errors?
Also wanted to include the feat-discovery branch, I dont’ see the share or the server in Win10. I’m running Ubuntu 20.04
You shouldn’t need the feat-discovery branch anymore, and by the way, those errors are “normal” – but they are removed in the master branch.
I would recommend removing it and reinstalling master branch. Then I would make sure sharing and enabled correctly in Win 10. Check firewall, etc. Can you see other Win 10 shares for example? (if you have another machine to test).
I reinstalled the master branch, rebooted Win10, checked over my Win10 FW and I can’t see anything that would stop the Samba server/shares from showing up. I really haven’t played with the Win10 FW I have my advanced sharing option set to “Private” vs “Public”. Network Discovery is enabled on Private and so is “Turn on automatic setup of network connected devices”. Other than that, I don’t see what else to change that would prevent the shares/server from showing up. On another note, I have an app called CX Explorer on android and it can see my Samba server name just find. I also checked on my 2 Nvidia Shields and they are not seeing the shares/server under the SMB mounting section in Kodi.
One other note, I’m able to reach the share by mapping a network drive, using the server IP address.
So I setup my 2 laptops with a share on each and I can access them and see the “Computer names” under the Network section in explorer. However I don’t see the folder or “Computer name” for my desktop on either of the laptops. Not sure if that would cause any problems with seeing the Samba share. I also don’t see the Samba share or server name on either of the laptops.
I also am able to see the computer names and shares of each laptop on one another.
So my desktop is seeing the other Win10 laptops, but still not showing Samba. Not concerned about the laptops not being able to see my desktop at this point. Just want that Samba server and share to show up on all the computers at this point.
Any suggestions?
Have you set up a shared folder in Ubuntu? You can list them with
smbclient -L localhost
Mine looks like:
Yup they do:
Sharename Type Comment
SMB1 disabled — no workgroup available
LTS is the one I’m sharing
I noticed something funny happening. So I can’t see the server. I can Map a network drive to the share. Now if I goto “Map Network Drive section and type in \LTS and then click browse, I see the server ip address under the Network tree.
Network
v
192.168.1.101 (ubuntu server)
Laptop 1 (laptop shares are still accessible)
Laptop 2
If I expand the server 192.168.1.101, I then see the LTS share, and I can map the drive or specific directory on the sharew I want. But still no luck on it showing up under Explorer – > Network.
I posted a couple messages yesterday, they were pending review. When I refreshed the pending messages were gone. Not sure if you got them or not. Let me know and I can re-post.
UPDATE: I’m now able to see my desktop computer and shares on my Laptops and vice versa. Still no luck with the Ubuntu Samba server or share showing up. Except on my cellphone.
Fixed. I had switched from /home/username/sambashare to /home/samba/sambashare and needed to run
the following series of (sudo) commands: service smb stop; vi /etc/smb.conf (to make certain the new path was changed); service smb restart; service smb force-reload; service smb status. I can see the non-empty files now. My first files (in the old sambashare path) had the same names (as the ones in the new sambashare path) and were created with touch (so were empty). I wish I could’ve merely edited my original comments so these added ones are not separate, however, the “waiting for approval is the slowdown and I didn’t want to bother anyone with my mistakes, as one comment would’ve allowed. That’s life. Best to all. chris
Leave it to me to misspell my own name as chrisd rather than chris. I must have daemons on my mind.
I am seeing the Ubuntu 18.04 sambashare folder and its files (in both This PC and Network/ubuntu-ipAddress) however, when opening or editing the one-liner test files, they have no lines in them at all. I must have missed an ironically-described “intuitive step” along the way. Does the issue sound familiar? Thanks.
Worked perfectly. Now just have to figure out how to connect as a different user
Well Done. Thanks a lot. You did my day! My Xubuntu changed interface name(Ill try later discover why). My ip was changed, also interface name and I couldnt reconnect my win10 to samba server on Xubuntu 18.04. I found this wsdd package and suppose, may be later, will be included on next version of Ubuntu.
Thank You SO Much!
I followed the instructions without success.
All services are available and running (samba & wsdd), in Windows Explorer I can see the Ubuntu machine but I get an error when I try to open it. Windows displays a “Windows cannot access \MYSERVER. I run the diagnostics but all I get is this message: “Troubleshooting couldn’t identify the problem”.
I’m running Windows 10 Version 2004 (19041.329) and Ubuntu Desktop 20.04.
Any help will be appreciated.
Can you check this article?
https://devanswe.rs/network-error-problem-windows-cannot-access-hostname-samba/
regarding the Ubuntu 20.04 related issue, I opened an issue on Github and the answer is: use v0.6
I replaced the /usr/bin/wsdd file with the v0.6 wsdd.py and everything is OK now. Most warnings have also vanished.
It would be great if you could update your post here, because your detailed step by step instructions are very helpful for people like me.
I would not have even tried without your guide.
Thanks again!
Hi Pat. Many thanks for the update and kind comments.
I have now updated the guide to use the master branch as these CPU and race issues seem to be resolved in 0.6.
I have kept the instructions for installing the feat-disovery branch at the bottom of the guide just in case anyone is having issues with the master branch.
Same as Boandlgramer 🙁
Didn’t work for me. No discovery and the service puts a 100% load on one core permanently. No special warning, looked like it’s working but it didn’t.
Ubuntu 20.04 – fresh install.
Did you have Samaba installed and working before following this guide? To check if it’s working ok, run
sudo systemctl status smbd
If we can gather some more information about this issue, we can submit an issue on the GitHub.
After a bit of “guesstroubleshooting” (I am not python fluent, by far!) I managed to make it work (samba server visible and no more 100% CPU load), by editing the wsdd file in the
def handle_request(self):
part to add a break statement as shown below (100% load was created by a never ending loop)While at it, I also replaced 6 occurences of
logger.warn(
bylogger.warning(
to get rid of related warning messages.Now I don't have the message about "using all interfaces" or something similar any more, but I have warnings about
invalid resolve request:
…Not sure what they mean but they don't seem to hurt… in my own case 😉
This is not a clean fix, I don't have the required knowledge, it's just an opportunistic fix.
HTH
Thanks for the response. Hopefully it can help others.
(And sorry for the comments system, it’s still a bit buggy when handling code but I will have it fixed soon)
Same problem as described by others. The process uses one core at 100% all the time.
Ubuntu 20.04? Can you check your Samba service status?
sudo systemctl status smbd
Guide has now been updated and this issue should be resolved.
very clear steps, thanks!
That has to be the fastest I’ve ever seen windows network neighborhood respond.
Thanks.
Best solution that I have seen. Works great. Now I can see the ubuntu servers.
Sorry – didn’t work for me. No discovery and the service puts a 100% load on one core permanently. No special warning, looked like it’s working but it didn’t.
Ran it on ubuntu server 20.04 – nearly clean install.
Not sure what that could be. Perhaps raise the issue on GitHub https://github.com/christgau/wsdd
Best solution that I have seen. Works great. Now I can see the ubuntu servers.
👍
Installed this morning following guide above with the “feat-discovery” changes. Everything worked as advertised except the status numbers were different and I had an extra line of warnings. I was using ssh on Windows Powershell to install and after the sucessful installation I jumped to my Windows File Explorer and opened then after a few seconds the Network section showed all of my Windows machines and the Linux server. I clicked on the server and it then showed my Linux shares which I opened a previous saved text document and watched a clip of a video from the server on the Windows machine.
Next I used Powershell to reboot the Linux server and closed the File Expolrer window. Linux server has a fast bootup and after waiting a minute I opened a new File Explorer window and again after a few seconds all Windows machines and Linux server appeared in the Network section.
Wonderful and thank you. I have a 3 drive ZFS pool on the Linux server. To get the shares setup using the ZFS wrapper, Samba configuration, and Windows Discovery has taken me quite a while in which weeks were spent using Duck Duck Go and Google to almost finally end this journey. Hopefully the Samba gurus will get their socks on and implement this discovery process soon. Kind of silly for the “Next Operating System” to be behind M$ Windows instead of leading.
Thanks again,
Rich
Delighted it worked! Thanks for the comment.
Any update about the boot issue?
The guide has now been updated to use a different branch (feat-discovery), which will resolve that reboot issue.
If you had already installed the master branch, please follow section “How to Uninstall wsdd” and then reinstall by following section “Installing WDS on Ubuntu”. Let me know if it works.
It’s works until reboot, then the
wsdd
service fails to start. I have to start it manually myself. Any ideas?There is a problem with the master branch of wsdd, which causes a race issue on Ubuntu after reboot. The guide has now been updated to use a different branch (feat-discovery), which will resolve that reboot issue. If you had already installed the master branch, please follow section “How to Uninstall wsdd” and then reinstall by following section “Installing WDS on Ubuntu”. Let me know if it works.
A note from the wsdd dev on this issue:
Thank you so much this had been driving me crazy !! i had even tried smb1 and it still wasnt working but i followed your instructions and tada worked like a charm!!
Great!