Ubuntu machine visible in Windows file explorer

How To View Linux Machines from a Windows 10 Network using the WSD Service

Last updated on | 99 replies

In this guide we will install a WSD service on Ubuntu, which will allow Windows 10 machines to see other Ubuntu machines and Samba shares in Windows File Explorer.

Prerequisites

This guide is for Windows 10 users who cannot see other Ubuntu machines in the Windows File Explorer, but can access them directly with the network path either by using the hostname (\\hostname\share) or IP (\\192.168.1.10\share).

You will need sudo privileges on the Ubuntu machine to install the wsdd service.

You should also make sure Samba is already installed and running on Ubuntu. You can find out by checking the service with:

sudo systemctl status smbd

If not installed, install with:

sudo apt update && sudo apt install samba

Also make sure you have at least one folder shared in Ubuntu.

The Problem with Ubuntu 18.04/20.04 and Windows 10 Network Discovery

SMB 1.0 (SMBv1)

Several guides and YouTube videos I’ve researched suggest manually enabling SMB 1.0 in Windows 10 in order to make other Ubuntu machines visible in Windows File Explorer. While this may work on older editions of Windows 10, it is not advised due to the security implications.

From Microsoft:

“Hi folks, Ned here again and today’s topic is short and sweet: Stop using SMB1. Stop using SMB1 . STOP USING SMB1!” source

With Windows 10 version 1511, support for SMBv1 and thus NetBIOS device discovery was disabled by default. Depending on the actual edition, later versions of Windows starting from version 1709 (“Fall Creators Update”) do not allow the installation of the SMBv1 client anymore.

This causes hosts running Samba not to be listed in the Explorer’s “Network (Neighborhood)” views. While there is no connectivity problem and Samba will still run fine, users might want to have their Samba hosts to be listed by Windows automatically.

mDNS

Ubuntu 18.04/20.04 automatically register your samba server to the rest of the network using mDNS (Avahi). All other Linux machines as well as macOS can discover this registration automatically.

The reason Windows 10 cannot discover Ubuntu network shares is because although it can use mDNS it does not know how to scan the network for them automatically.

WSD

Web Services for Devices (WSD) is a Microsoft API to enable programming connections to web service enabled devices, such as printers, scanners and file shares. It serves as a replacement for older Windows networking functions such as NetBIOS.

With the addition of a WSD service in Ubuntu, Windows 10 will discover the Linux Samba server using its native WSD protocol.

Why Doesn’t Ubuntu Support WSD Natively?

This issue has been raised in the Samba bug tracker since 2015. So it may happen that this feature gets integrated into Samba at some time in the future. But for now, we have to manually install a patch ourselves.

Installing WSD on Ubuntu

wsdd is a service by christgau on GitHub, which implements a Web Service Discovery host daemon for Ubuntu. This enables Samba hosts to be found by Web Service Discovery Clients like Windows 10.

If you are experiencing any issues with this service, please let us know in the comments or submit an issue on GitHub.

Change to /tmp directory.

cd /tmp

Download and unzip the archive.

wget https://github.com/christgau/wsdd/archive/master.zip
unzip master.zip

Rename wsdd.py to wsdd.

sudo mv wsdd-master/src/wsdd.py wsdd-master/src/wsdd

Copy to /usr/bin.

sudo cp wsdd-master/src/wsdd /usr/bin

Copy wsdd to /etc/systemd/system.

sudo cp wsdd-master/etc/systemd/wsdd.service /etc/systemd/system

Open wsdd.service in nano and comment out User=nobody and Group=nobody with a ; semicolon.

sudo nano /etc/systemd/system/wsdd.service
/etc/systemd/system/wsdd.service
[Unit]
Description=Web Services Dynamic Discovery host daemon
; Start after the network has been configured
After=network-online.target
Wants=network-online.target
; It makes sense to have Samba running when wsdd starts, but is not required
;Wants=smb.service

[Service]
Type=simple
ExecStart=/usr/bin/wsdd --shortlog
; Replace those with an unprivledged user/group that matches your environment,
; like nobody/nogroup or daemon:daemon or a dedicated user for wsdd
; User=nobody 
; Group=nobody
; The following lines can be used for a chroot execution of wsdd.
; Also append '--chroot /run/wsdd/chroot' to ExecStart to enable chrooting
;AmbientCapabilities=CAP_SYS_CHROOT
;ExecStartPre=/usr/bin/install -d -o nobody -g nobody -m 0700 /run/wsdd/chroot
;ExecStopPost=rmdir /run/wsdd/chroot

[Install]
WantedBy=multi-user.target

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

Reload daemon.

sudo systemctl daemon-reload

Start and enable wsdd.

sudo systemctl start wsdd
sudo systemctl enable wsdd

Output:

Created symlink /etc/systemd/system/multi-user.target.wants/wsdd.service → /etc/systemd/system/wsdd.service.

Now check that the service is running.

sudo service wsdd status

Output:

 wsdd.service - Web Services Dynamic Discovery host daemon
     Loaded: loaded (/etc/systemd/system/wsdd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-06-10 10:51:39 CEST; 8s ago
   Main PID: 40670 (python3)
      Tasks: 1 (limit: 6662)
     Memory: 10.8M
     CGroup: /system.slice/wsdd.service
             └─40670 python3 /usr/bin/wsdd --shortlog

jun 10 10:51:39 ubuntu systemd[1]: Started Web Services Dynamic Discovery host daemon.
jun 10 10:51:40 ubuntu wsdd[40670]: WARNING: no interface given, using all interfaces

You should now be able to browse your Ubuntu machines and Samba shares in the Windows 10 file explorer. You may need to restart the Windows 10 machines to force discovery.

You may also want to reboot the Ubuntu server just to make sure the wsdd service starts up automatically without issue.

How to Uninstall wsdd

If you want to completely uninstall wsdd, stop and disable the service.

sudo systemctl stop wsdd
sudo systemctl disable wsdd

Remove wsdd from /usr/bin.

sudo rm /usr/bin/wsdd

Remove service file.

sudo rm /etc/systemd/system/wsdd.service

Let me know if this helped. Follow me on Twitter, Facebook and YouTube, or 🍊 buy me a smoothie.

99 replies

Leave a reply

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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