Make Linux Machines Discoverable in Windows 10/11 Network View with wsdd

A flat minimalist vector illustration. Text: ENABLE WSDD ON LINUX

We may earn a referral fee at no additional cost to you when you shop through the links on this page.

Your Linux server is happily sharing files over Samba, but it never shows up in the Network view of Windows File Explorer. This DevAnswers guide fixes that in about five minutes: install the WS-Discovery daemon that matches your release, open the firewall ports it needs, and check the two Windows settings that hide the Network view in the first place.

Quick Fix: Install the WSD Daemon 

Modern Windows finds network machines with the WS-Discovery (WSD) protocol, and Samba does not answer WSD requests on its own. A small daemon does that job for it. Connect to your Linux server via SSH and install the package for your release; the name changed in Ubuntu 24.04, so check the package table if you are unsure.

On Ubuntu 22.04 or Debian 12:

Terminal
sudo apt install wsdd

On Ubuntu 24.04 or 26.04 (yes, the package name is different; the table below explains):

Terminal
sudo apt install wsdd-server

On Debian 13:

Terminal
sudo apt install wsdd2

On Rocky Linux or AlmaLinux 9, wsdd comes from EPEL, and unlike the Debian-family packages it does not start automatically:

Terminal
sudo dnf install epel-release
sudo dnf install wsdd
sudo systemctl enable --now wsdd

If your server runs ufw, allow the ports for your daemon (each command confirms with a Rule added line, plus a v6 twin). For wsdd or wsdd-server:

Terminal
sudo ufw allow 3702/udp
sudo ufw allow 5357/tcp

For wsdd2 on Debian 13, which listens on UDP and TCP 3702:

Terminal
sudo ufw allow 3702/udp
sudo ufw allow 3702/tcp

On the RHEL family, which uses firewalld instead of ufw:

Terminal
sudo firewall-cmd --permanent --add-port=3702/udp --add-port=5357/tcp
sudo firewall-cmd --reload

Give it a minute, then open File Explorer on the Windows PC and click Network. Your server appears under its hostname. If the Network view is empty or the server is missing, work through the Windows-side checks and the troubleshooting list below.

Why Windows Can’t See Your Linux Machine 

For two decades the Network view was populated by the Computer Browser service, which depends on the ancient SMBv1 protocol. Microsoft removed both from Windows 10 and 11, and its documentation is blunt about why:

The Computer Browser service relies on the SMBv1 protocol to populate the Windows Explorer Network node (also known as ‘Network Neighborhood’). This legacy protocol is long deprecated, doesn’t route, and has limited security. Because the service cannot function without SMBv1, it is removed at the same time.

learn.microsoft.com: SMBv1 is not installed by default in Windows

Its replacement is WS-Discovery. Windows machines announce themselves over WSD and listen for others doing the same. Samba does not implement WSD natively, so a Samba host stays invisible no matter how correctly its shares are configured. The wsdd daemon fills the gap: it answers WSD probes on Samba’s behalf, and your server reappears in the Network view under its hostname.

wsdd vs wsdd-server vs wsdd2: Pick the Right Package 

Three package names serve the same purpose across recent releases, and installing the wrong one is the single most common failure. Match your release to the row:

ReleaseInstall this packageService unit
Ubuntu 22.04wsddwsdd.service
Ubuntu 24.04 / 26.04wsdd-serverwsdd-server.service
Debian 12wsddwsdd.service
Debian 13wsdd2wsdd2.service
Rocky / Alma 9wsdd (EPEL)wsdd.service

Ubuntu 24.04 split the original package in two. The wsdd package now provides the gvfsd-wsdd backend, a client component that lets the GNOME file manager discover Windows machines. The daemon that makes your server visible to Windows moved into wsdd-server, with a unit named wsdd-server.service. Installing wsdd-server pulls in wsdd as well; they run as two separate processes. This is why sudo systemctl start wsdd fails with “Unit wsdd.service not found” on a fresh 24.04 or 26.04 install.

Debian 13 ships wsdd2, a separate C implementation of the same idea. It reads your Samba config at /etc/samba/smb.conf and derives the machine name and workgroup from it via testparm, so it usually needs no configuration at all. It also answers LLMNR name lookups, and it listens on TCP port 3702 in addition to UDP.

On the RHEL family, wsdd lives in the EPEL repository, and the packaged unit is tied to Samba: if smb.service does not exist on the machine, the daemon refuses to start (you will already have it if the server shares files, which is the whole point). It also follows the usual RHEL convention of not starting on install, which is why the quick fix runs systemctl enable --now.

On anything else, the daemon is still an option: Fedora and Arch package wsdd too, and the upstream wsdd project ships sample systemd units plus ready-made ufw and firewalld profiles. The commands in this guide were tested on Ubuntu, Debian, and Rocky; elsewhere substitute your package manager and keep the same ports.

Verify the Service Is Running 

The Debian and Ubuntu packages start and enable their service automatically on install; the RHEL family does not, which the quick fix’s systemctl enable --now already handles. Confirm it, substituting the unit name from the table:

Terminal
systemctl is-active wsdd-server
Output
active

If it prints inactive or failed, read the last log lines with journalctl -u wsdd-server -n 20 (again substituting your unit name) and look for the environment-file error covered in troubleshooting below. One behaviour worth knowing: the wsdd daemon runs in host mode by default, which announces your machine to the network. Its separate client (discovery) mode, the side of the protocol Ubuntu 24.04’s gvfsd-wsdd integration uses to find Windows machines, must be enabled explicitly, and both modes can run at the same time.

Open the Firewall Ports 

The ports depend on the daemon. For wsdd and wsdd-server, two openings: UDP 3702 for the multicast discovery probes (multicast groups 239.255.255.250 on IPv4 and ff02::c on IPv6), and TCP 5357, where Windows fetches the host’s metadata over HTTP after discovering it. wsdd2 on Debian 13 listens on UDP and TCP 3702 instead, which is why the quick fix gives it its own pair of rules. If your firewall blocks IGMP, allow it too; IPv4 multicast does not work without it. On a host managed with firewalld instead of ufw, the equivalent is sudo firewall-cmd --permanent --add-port=3702/udp --add-port=5357/tcp followed by sudo firewall-cmd --reload (on a wsdd2 host, open 3702/udp and 3702/tcp instead).

WSD exposes your machine’s hostname to the network, so keep ports 3702 and 5357 restricted to your LAN and never open them on an internet-facing interface. The risk is contained by design on the multicast side: wsdd’s hop limit defaults to 1, which keeps discovery packets from leaving the local network segment.

Check the Windows Side 

Two different Windows settings control whether the Network view works, and they live in two different places. Windows 11 sets every new network to the Public profile by default, which deliberately hides the PC from other devices and suppresses browsing. First, switch the profile:

  1. Open Settings, then Network & internet.
  2. Select Wi-Fi or Ethernet and click your active connection.
  3. Under Network profile type, select Private.

Second, make sure Network discovery itself is on. This is a separate toggle:

  1. In Settings > Network & internet, open Advanced network settings.
  2. Click Advanced sharing settings.
  3. Expand Private networks and switch Network discovery on; turn on File and printer sharing too if you share from this PC.

On Windows 10 the discovery toggles live under Control Panel > Network and Sharing Center > Change advanced sharing settings; expand the Private profile and turn on network discovery there. The network profile itself is not in that menu: switch it in Settings > Network & Internet by selecting your connection and setting it to Private, the same idea as on Windows 11.

Restrict wsdd to One Interface 

On a host with several interfaces (Docker bridges, VPN tunnels, a second NIC), announce only on the LAN that has your Windows machines. The daemon’s -i flag does exactly that: it accepts an interface name or an IP address, can be given multiple times to allow more than one interface, never uses loop-back interfaces, and on IPv6 announces only link-local addresses. Bonus: pinning the interface also stops bridge and tunnel interfaces from generating duplicate replies to Windows.

Where to put the flag depends on your unit. The stock Debian and Ubuntu wsdd unit reads options from /etc/default/wsdd through the $WSDD_PARAMS variable. Check where your unit reads options with systemctl cat plus your unit name from the table (wsdd-server on Ubuntu 24.04+, wsdd on Ubuntu 22.04, Debian 12 and the RHEL family, wsdd2 on Debian 13) and look for an EnvironmentFile line. Then edit the file that line names; on the stock wsdd unit:

Terminal
sudo nano /etc/default/wsdd
/etc/default/wsdd
WSDD_PARAMS="-i eth0"

Save and exit (press CTRL + X, press Y, then press ENTER)

Then restart the service (sudo systemctl restart wsdd, or your unit name from the table). If your unit has no environment file, or you prefer not to rely on one, a systemd drop-in is the clean alternative: sudo systemctl edit wsdd-server creates an override.conf that is merged with the packaged defaults at runtime. The same applies to wsdd2, which accepts the same -i flag on its command line.

Troubleshooting 

  • “Failed to load environment files: No such file or directory.” The unit references /etc/default/wsdd and the file does not exist. Create it with sudo touch /etc/default/wsdd and start the service again. This mostly bites hand-installed upstream units; if that is your setup, the more permanent fix is changing the unit line to EnvironmentFile=-/etc/default/wsdd (the leading dash makes a missing file non-fatal), then running sudo systemctl daemon-reload before restarting.
  • “Failed to start wsdd.service: Unit smb.service not found” on the RHEL family. EPEL’s wsdd unit requires Samba’s smb.service to exist. Install Samba (sudo dnf install samba) and start wsdd again.
  • “Unit wsdd.service not found” on Ubuntu 24.04 or newer. You installed the wsdd package, which no longer ships the host daemon’s unit. Install wsdd-server and start wsdd-server.service instead.
  • The server shows up, but double-clicking it fails. Discovery has done its job; the error is on the SMB side (credentials, share permissions, or guest access). See our guide to fixing “Windows cannot access \\hostname” on Samba guest shares.
  • It never appears from another subnet or VLAN. WSD discovery is multicast and link-local, so machines on a different network segment will not see the announcement. You can still connect directly: discovery and file sharing are independent, so \\hostname or \\192.168.1.20 in the File Explorer address bar works even when the Network view shows nothing. If the hostname does not resolve, add it to the Windows hosts file.

Summary 

Windows dropped SMBv1 browsing and discovers machines over WS-Discovery, which Samba does not speak. Install the right daemon for your release (wsdd, wsdd-server on Ubuntu 24.04+, wsdd2 on Debian 13, or wsdd from EPEL on Rocky/Alma, started with enable --now), allow its ports on the LAN firewall (UDP 3702 plus TCP 5357, or UDP and TCP 3702 for wsdd2), and set the Windows network profile to Private with Network discovery on. Your server then appears in the Network view under its hostname. And if it ever does not, remember that discovery is cosmetic: your shares keep working by direct \\hostname or IP access either way.

Support DevAnswers
Written, tested and maintained by one developer. Your support keeps these guides accurate and ad-light.
Buy me a coffee

101 replies

Leave a reply

  1. ms

    There are two wsdd packages thanks to Debian in Ubuntu 24.04:
    wsdd which is called by a new gvfsd-wsdd backend that enables the file manager in Ubuntu to discover Windows SMB hosts. It does not create a service.
    wsdd-server which enables samba host discovery by Windows clients. This does create a service.
    wsdd-server.service

  2. jorge

    Thanks

  3. Jim Avera

    In 2023 with Ubuntu:

    sudo apt install wsdd

    just works by default on all interfaces. You can edit /etc/default/wsdd to restrict which interfaces it listens on.

    (Ubuntu 22.04.2 LTS)

  4. Walter Horowitz

    wsdd is in the Ubuntu repositories as of version 22. “apt install wsdd” did the job for me.

  5. Le_Nincha

    Hello.
    Last version of wsdd need a file wsdd.defaults that is located in /etc/systemd.
    You can see in wsdd.service that a variable ‘EnvironmentFile’ in the bloc Service point to this file.
    This file must be under /etc/default and called wsdd.

    sudo cp wsdd-master/etc/systemd/wsdd.defaults /etc/default
    cd /etc/default
    sudo mv wsdd.defaults /etc/default/wsdd

    Then you can reload daemon, start and enable wsdd like it is described in this present ‘how to’

    My original purpose was to detect my ubuntu pc in my printer/scanner ‘wsd’ discovery mode, but, at the moment, it doesn’t work.
    I tried apt install wsdd, same result, doesn’t seen the ubuntu pc in my scanner menu

    1. Alagrad81

      THANK YOU! I followed the original instructions but ran into an error starting the WSDD service. I then saw and followed your additional instructions and they worked perfectly. I can now see my ubuntu machine and shares on my Windows 10 machine.

  6. CZAK_Games

    dont work on ubuntu 16.04 LTS

    1. DevAnswers

      Dang. Any error?

  7. Andre

    Work great for me. Thanx a lot for such great tutorial.

  8. Simon

    Worked fine for me, replace your ENTIRE wsdd.service file with that in the original post, then the resource problem goes away. It did for me.

    1. ernie

      Simon I apologize but am a little ignorant on the structure and commands of Linux. Can you send me exactly what you did to replace the entire wsdd.service file?
      Thank you for your time and help,
      ernie

  9. Martin

    Totally failed for me unfortunately. No idea where i went wrong as i followed each step.
    wsdd.service – Web Services Dynamic Discovery host daemon
    Loaded: loaded (/etc/systemd/system/wsdd.service; enabled; vendor preset: enabled)
    Active: failed (Result: resources)
    Docs: man:wsdd(8)
    CPU: 0

    Jul 06 10:42:32 taze-Satellite-Pro-L500 systemd[1]: wsdd.service: Failed to load environment files: No such file or directory
    Jul 06 10:42:32 taze-Satellite-Pro-L500 systemd[1]: wsdd.service: Failed to run ‘start’ task: No such file or directory
    Jul 06 10:42:32 taze-Satellite-Pro-L500 systemd[1]: wsdd.service: Failed with result ‘resources’.
    Jul 06 10:42:32 taze-Satellite-Pro-L500 systemd[1]: Failed to start Web Services Dynamic Discovery host daemon.

    1. Greg

      Same problem here.

  10. Art

    Worked great. Thanks for the instruction. I did modify the config file to match what was shown in the instructions. I can now see my samba server in Windows file explorer. However, since updates to Samba and Windows 10 this week, I cannot access the shares on this server. I ge the Windows security Enter nerwork credentials “the user name or passwork is incorrect”. I have checked numerous settings and changes, but nothing has resolved this. Has anyone else experienced this?

  11. Ed

    Well it seemed to go ok until I keep getting this error.
    Job for wsdd.service failed because of unavailable resources or another system error.
    I do not have the firewall running, during testing, and the edit I commented out had wdss as a user and group.. should I use the other computer or just comment it out?

    1. chris

      Ed, I had the same error. I noticed the code in the wsdd.service file (shown above) was dramatically different from the wsdd.service file I downloaded from Github. As a test, I copied the code for wsdd.service shown above and pasted it over (deleting) the code in the new wsdd.service file, and it suddenly worked! Hopefully this helps someone else.

      1. Albert

        Great article. And great hint Chris, I had the same problem and this fixed it. On windows I then found my shared folder, but I still had no authentication. It was because I had to create a samba user on the Ubuntu machine with `sudo smbpasswd -a albert` and then I was good to go.

      2. Gary

        Yes it did. Got the same error on my Debian 11 server.

      3. Michael

        Thank you so much. This worked for me as well.

  12. Ray

    Great article. You might want to consider adding that firewall needs to have the following opened:

    outgoing unicast traffic from udp/3702
    incoming to tcp/5357

    In Ubuntu:
    sudo ufw allow 3702/udp
    sudo ufw allow 5357/tcp

    I don’t know about other distros.

    It took me a while to figure out why it wasn’t working despite following your instructions to the letter.

    1. JD

      That was fantastic help. It took me a while to find this post and your advice. Thank you. I also had to open up port 445/tcp as well, in order to be able to log in. I couldn’t see my laptop before that though.

      **running Debian 11 on fresh install… forgot I had installed ufw.

  13. Sei

    I installed it on latest, updated Raspbian OS (ubuntu), it works perfect, thank you for your effort to gradually explain everything how to install this WSD service, thanks !

  14. koodoo

    I’ll not bore you with my noobness, what am I supposed to do from here:
    Open wsdd.service in nano and comment out User=nobody and Group=nobody with a ; semicolon.
    sudo nano /etc/systemd/system/wsdd.service

    When I open wsdd.service it shows a blank page. Is that right? Do I just type in ; User=nobody, ; Group=nobody, Save & Exit?

  15. Werner

    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 🙂

  16. someuser

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

  17. mike

    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?

  18. paco

    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

  19. JeeP

    Worked perfectly ! Thanks so much !

  20. HRB

    So far Win 10 doesn’t ‘see’ the machine or share. Can map it manually using IP address.

  21. HRB

    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>

  22. Jimw

    Thanks so much for this!

  23. R T

    Finally – something that worked. I appreciate your time in making this article.

  24. Jran

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

      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.

  25. R Kolegraff

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

  26. jonathan

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

  27. Rolf

    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.

  28. Steven Davies Morris

    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.

  29. Ali Raza

    OMFG! Thank you!! Thanks you so much!!!

  30. Heston

    This worked great! Thanks!

  31. Peter Sipos

    Thank You, Thank You, Thank You so much!!!
    It’s woriking 🙂

  32. David Chapman

    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 🙂

  33. Donald Halsey

    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. David Chapman

      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.

  34. jp2558

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

  35. Paul

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

    1. DevAnswers

      👍

  36. Ryan Gage

    Exellent guide worked flawlessly on ubuntu 20.10

  37. Regori

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

    1. DevAnswers

      Ah! Thanks for letting me know. 🙂

  38. Pete

    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!

  39. juerg

    ahh, what a pleasure to follow a perfectly created guide and see success right away

  40. chris

    Ty it helped me out a lot

  41. Harry

    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.

  42. mIKES

    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!

  43. Rexnon

    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:

    1. I have a wi-fi router to which there are several laptops connected without any special “pro level”, “upper level” network setting stuff. Just from time to time buying a new device, “search for wlan”, “enter the password”, “connected” – that’s all.
    2. All the laptops I connected before were with Windows and all of them just “see” each other without any “magic”. Once I “Share a folder” on any Windows laptop it’s seen and accessable from the other Win laptops.
    3. Recently I purchased a laptop without an OS and decided to use Linux Mint the latest Cinnamon (20) flavor of Ubuntu. Clean installation. And the same scenario — “search wlan”→”enter password”=”Connected”. OK. But this device was unseen by the Windows laptops and it does not detect any Windows device. In fact it just sees itself in its “network” window…
    4. So in order to change that situation I just installed SAMBA, updated all the apps, then added WDS in accordance with your instructions. Now there’s a great result: my Mint laptop is seen on all the Windows devices. I can create a shared folder on my Linux device and Windows has an instant access to its content. Super!
    5. But I have to state that it’s the half of the path as the Linux device itself does not see any Windows device in its “Network”. So I have to do some additional actions in the opposite direction: to make my Linux Mint laptop “see” or “discover” the other Windows laptops.

    What steps shall I have to do???
    Thanks in advance

    1. RDE

      Hi
      I have the same problem as you .
      Could you fix it?

      Thanks

  44. Adam

    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?

    1. Adam

      Also wanted to include the feat-discovery branch, I dont’ see the share or the server in Win10. I’m running Ubuntu 20.04

    2. DevAnswers

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

      1. Adam

        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.

        1. Adam

          One other note, I’m able to reach the share by mapping a network drive, using the server IP address.

      2. Adam

        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?

        1. DevAnswers

          Have you set up a shared folder in Ubuntu? You can list them with smbclient -L localhost

          Mine looks like:

          Sharename       Type      Comment
          ---------       ----      -------
          Public          Disk      
          Media           Disk      
          IPC$            IPC       IPC Service (Samba 4.11.6-Ubuntu)
          SMB1 disabled -- no workgroup available
          1. Adam

            Yup they do:

            Sharename Type Comment


                print$          Disk      Printer Drivers
                LTS             Disk
                IPC$            IPC       IPC Service (devastator server (Samba, Ubuntu))

            SMB1 disabled — no workgroup available

            LTS is the one I’m sharing

          2. Adam

            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.

          3. Adam

            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.

      3. Adam

        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.

  45. Chris

    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

  46. Chris

    Leave it to me to misspell my own name as chrisd rather than chris. I must have daemons on my mind.

  47. Chrisd

    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.

  48. Max

    Worked perfectly. Now just have to figure out how to connect as a different user

  49. Arlindo

    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.

  50. Marshall Simmons

    Thank You SO Much!

  51. Javier Piedragil

    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.

  52. Pat

    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!

    1. DevAnswers

      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.

  53. Pat

    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.

    1. DevAnswers

      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.

      1. Pat

        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)

        addr = None
                    i = offset + IFA_MSG_LEN
                    while i - offset < msg_len:
                        attr_len, attr_type = struct.unpack_from('HH', buf, i)
                        logger.warning('ligne1171 attr_type:{}'.format(attr_type))
                        if attr_type == IFA_LABEL:
                            name, = struct.unpack_from(str(attr_len - 4 - 1) + 's',
                                                       buf, i + 4)
                            self.add_interface(name.decode(), ifa_idx, ifa_scope)
                        break # exit the loop once an interface has been added
                        elif attr_type == IFA_LOCAL and ifa_family == socket.AF_INET:
                            addr = buf[i + 4:i + 4 + 4]
                        elif (attr_type == IFA_ADDRESS and
                                ifa_family == socket.AF_INET6):
                            addr = buf[i + 4:i + 4 + 16]
                        elif attr_type == IFA_FLAGS:
                            _, ifa_flags = struct.unpack_from('HI', buf, i)
                        i += ((attr_len + 1) // RTA_ALIGNTO) * RTA_ALIGNTO
                        logger.debug('rt_attr {} {}'.format(attr_len, attr_type))

        While at it, I also replaced 6 occurences of logger.warn( by logger.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

        1. DevAnswers

          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)

  54. angel

    Same problem as described by others. The process uses one core at 100% all the time.

    1. DevAnswers

      Ubuntu 20.04? Can you check your Samba service status? sudo systemctl status smbd

    2. DevAnswers

      Guide has now been updated and this issue should be resolved.

  55. bwat47

    very clear steps, thanks!

  56. Kevin

    That has to be the fastest I’ve ever seen windows network neighborhood respond.
    Thanks.

  57. 1eqdqd

    Best solution that I have seen. Works great. Now I can see the ubuntu servers.

  58. Boandlgramer

    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.

  59. Satish

    Best solution that I have seen. Works great. Now I can see the ubuntu servers.

    1. DevAnswers

      👍

  60. Rich

    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

    1. DevAnswers

      Delighted it worked! Thanks for the comment.

  61. Rich

    Any update about the boot issue?

    1. DevAnswers

      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.

  62. ramesh

    It’s works until reboot, then the wsdd service fails to start. I have to start it manually myself. Any ideas?

    ● 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 Sun 2020-05-03 12:48:08 CEST; 35min ago
        Process: 1398 ExecStart=/usr/bin/wsdd --shortlog (code=exited, status=1/FAILURE)
       Main PID: 1398 (code=exited, status=1/FAILURE)
    
    may 03 12:48:08 ubuntu wsdd[1398]:     self.server_bind()
    may 03 12:48:08 ubuntu wsdd[1398]:   File "/usr/bin/wsdd", line 64, in server_bind
    may 03 12:48:08 ubuntu wsdd[1398]:     super().server_bind()
    may 03 12:48:08 ubuntu wsdd[1398]:   File "/usr/lib/python3.8/http/server.py", line 138, in server_bind
    may 03 12:48:08 ubuntu wsdd[1398]:     socketserver.TCPServer.server_bind(self)
    may 03 12:48:08 ubuntu wsdd[1398]:   File "/usr/lib/python3.8/socketserver.py", line 466, in server_bind
    may 03 12:48:08 ubuntu wsdd[1398]:     self.socket.bind(self.server_address)
    may 03 12:48:08 ubuntu wsdd[1398]: OSError: [Errno 99] Cannot assign requested address
    may 03 12:48:08 ubuntu systemd[1]: wsdd.service: Main process exited, code=exited, status=1/FAILURE
    may 03 12:48:08 ubuntu systemd[1]: wsdd.service: Failed with result 'exit-code'.
    1. DevAnswers

      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:

      I haven’t looked into the package, but I assume the user-contributed Ubuntu/Debian package does not include the development version but an officially released one from the master branch. The master branch version is still affected from the race condition. Nothing has been merged/rebased into master so far. So, if you want to try the latest version from the development branch (feat/discovery), you have to clone/download it from Github and install it manually.

  63. don

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

    1. DevAnswers

      Great!