Minimal illustration of two computer monitors with Windows and Linux icons connected by arrows, and the text ‘View Linux on Windows.’

Enable Linux Machine Discovery in Windows 10/11 Using WS-Discovery (WSD)

Last updated on | 100 replies

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):

/etc/default/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 discovery
  • 5357/tcp for HTTP responses
  • 5358/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 with systemctl status wsdd and review logs using sudo 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 to wsdd) 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.

100 replies

Leave a reply

Your email address will not be published. Required fields are marked *

  1. 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 🙂

  2. 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’.

  3. 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?

  4. 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

  5. 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>

  6. 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.

    1. 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.

  7. Thanks for that worked perfectly…How many days fighting with …never mind your solution was the answer

  8. I want to THANK YOU immensely for providing this information. It was flawless and worked perfectly. I cannot thank you enough.

  9. 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.

  10. 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.

  11. 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 🙂

  12. 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.

    1. 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.

  13. 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….?

  14. 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. 🙂

  15. Perfect guide – thanks and congratulation!
    Let me leave a small hint: please correct the swapped letters in headlines for wsd “WDS”.

  16. 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!