sudo apt update
sudo apt install wsdd
sudo systemctl enable --now wsdd
sudo apt install wsdd2
sudo systemctl enable --now wsdd2
systemctl status wsdd # or wsdd2
sudo ufw allow 3702/udp
sudo ufw allow 5357/tcp
sudo ufw allow 5358/tcp
[global]
workgroup = WORKGROUP
server string = Lenovo Samba
security = user
map to guest = Bad User
# Modern dialects
client min protocol = SMB2
server min protocol = SMB2
# Optional hardening on recent Samba:
# disable netbios = yes
# (keep your shares as-is)
[downloads]
path = /srv/data/downloads
browseable = yes
read only = no
guest ok = no
valid users = user
force user = user
sudo testparm
sudo systemctl restart smbd nmbd
systemctl status wsdd*
and you’ll likely see its wsdd service—this is the “magic” you observed.sudo systemctl edit wsdd
and add an override like ExecStart=/usr/bin/wsdd -i eth0 -H LENOVO
(replace interface/hostname), then systemctl daemon-reload && systemctl restart wsdd
.sudo ufw disable
(test, then re‑enable).Implemented Suggestions from the AI ForumShort answer
To make your Debian Trixie box show up automatically under Network in Windows 10/11 like OMV does, you need WS‑Discovery (WSD) on the Linux side. OMV runs a wsdd/wsdd2 service out of the box. Avahi/mDNS helps name resolution (hostname.local), but it’s wsdd that actually makes “Computer” entries appear in File Explorer on modern Windows (NetBIOS/SMB1 browsing is deprecated).
Do this on Debian Trixie
1) Install and enable wsdd (or wsdd2)
2) Open firewall for WSD
- Option A (wsdd, most common):
Code:sudo apt update sudo apt install wsdd sudo systemctl enable --now wsdd
- Option B (if your repo offers wsdd2):
Code:sudo apt install wsdd2 sudo systemctl enable --now wsdd2
- Verify it’s running:
systemctl status wsdd # or wsdd2
3) Keep Avahi if you like
- If you use UFW:
(If you don’t run a firewall, nothing else to do.)Code:sudo ufw allow 3702/udp sudo ufw allow 5357/tcp sudo ufw allow 5358/tcp
4) Fix your Samba security baseline (remove SMB1)
- Avahi is optional for Windows. It gives you hostname.local and helps Macs, but Windows “Network” listing comes from wsdd. No harm leaving Avahi enabled.
Your current min protocol lines enable SMB1 (NT1). Replace them:
Then:Code:[global] workgroup = WORKGROUP server string = Lenovo Samba security = user map to guest = Bad User # Modern dialects client min protocol = SMB2 server min protocol = SMB2 # Optional hardening on recent Samba: # disable netbios = yes # (keep your shares as-is) [downloads] path = /srv/data/downloads browseable = yes read only = no guest ok = no valid users = user force user = user
Code:sudo testparm sudo systemctl restart smbd nmbd
What to expect and how to verify
If it still doesn’t appear:
- Within 10–90 seconds after wsdd starts, your server should appear under “Network” in File Explorer without needing manual \LENOVO first.
- Quick checks:
- On OMV: run
systemctl status wsdd*
and you’ll likely see its wsdd service—this is the “magic” you observed.- On Windows (already works for OMV, so you’re fine): ensure “Network discovery” is on and Services “Function Discovery Provider Host” and “Function Discovery Resource Publication” are running (they usually are by default in Win11).
That setup will duplicate OMV’s behavior while keeping modern, secure SMB.
- Ensure the hostname is unique on your LAN (no other device named LENOVO).
- Try forcing the interface:
sudo systemctl edit wsdd
and add an override likeExecStart=/usr/bin/wsdd -i eth0 -H LENOVO
(replace interface/hostname), thensystemctl daemon-reload && systemctl restart wsdd
.- Temporarily stop UFW to rule out firewall:
sudo ufw disable
(test, then re‑enable).
wget https://github.com/christgau/wsdd/archive/refs/tags/v0.7.0.tar.gz
tar -xzf v0.7.0.tar.gz
cd wsdd-0.7.0
sudo cp src/wsdd.py /usr/bin/wsdd
sudo chmod +x /usr/bin/wsdd
[Units]
Description=Web Services Dynamic Discovery host
After=network. target
[Service]
Type=simple
ExecStart=/usr/bin/wsdd -i eth0 -4
Restart=always
RestartSec=5
Open the WSDD port
sudo ufw allow 3702/udp
sudo ufw allow 5357/tcp
sudo ufw allow 5358/tcp
wsdd.service - Web Services Dynamic Discovery host
Loaded: loaded (/etc/systemd/system/wsdd.service; enabled; preset: enabled)
Active: active (running)
Port Listening: SUCCESS
text
tcp [ipaddress]:5357 0.0.0.0:* LISTEN
udp [ipaddress]:3702 0.0.0.0:*
Firewall: SUCCESS
Ports 3702/udp, 5357/tcp, 5358/tcp are open
Great progress—you’ve got the hard parts done. When wsdd is “running” but the PC still doesn’t show under Network, it’s almost always one of these: wrong NIC binding, IPv6-only probes being ignored, or a flaky custom systemd unit.
Try this clean, known‑good setup (no interface pinning, no IPv4‑only):
1) Remove your handcrafted service (to avoid conflicts)
Quick diagnostics (watch these while opening File Explorer > Network):
- sudo systemctl disable --now wsdd
- sudo rm /etc/systemd/system/wsdd.service
- sudo systemctl daemon-reload
2) Install a packaged daemon (recommended: wsdd2, same idea OMV uses)- sudo apt update
- sudo apt install wsdd2
- sudo systemctl enable --now wsdd2
3) Or, if you prefer christgau’s wsdd, use this minimal unit- sudo nano /etc/systemd/system/wsdd.service
[Unit]
Description=WS-Discovery host daemon
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/bin/wsdd --hostname LENOVO --workgroup WORKGROUP -v
Restart=on-failure
[Install]
WantedBy=multi-user.target- sudo systemctl daemon-reload && sudo systemctl enable --now wsdd
Notes:- Don’t force “-i eth0” unless you’re sure that’s the real name (use ip -o link). Let it bind to all ifaces first.
- Don’t force “-4”; Windows often probes via IPv6. Keep IPv6 enabled on both ends.
- Keep UFW allows for 3702/udp and 5357/tcp (5358/tcp optional).
If it still won’t list:
- sudo journalctl -u wsdd* -f → You should see “Probe from <Windows IP>”.
- sudo tcpdump -ni <iface> udp port 3702 → You should see multicast to 239.255.255.250.
- ip maddr show dev <iface> → Ensure 239.255.255.250 is listed.
If you see probes hitting OMV but not Debian, it’s either the wrong iface (-i) or the daemon didn’t join the multicast group (fixed by the unit above). If probes are seen and replies are logged, refresh Windows’ discovery: ensure the network profile is Private and the services “Function Discovery Provider Host” and “Function Discovery Resource Publication” are Running, then close all Explorer windows and re-open Network (or restart those two services). Give it 30–90 seconds—your “LENOVO” should appear under Computers without first doing \LENOVO.
- Ensure hostname uniqueness (only one LENOVO on the LAN).
- Try the other daemon (switch wsdd ↔ wsdd2; don’t run both).
- On multi-NIC or Docker hosts, pin the correct NIC only after you’ve confirmed its name (ExecStart=/usr/bin/wsdd -i enp3s0 …).
[global]
workgroup = WORKGROUP
netbios name = LENOVO
security = user
map to guest = Bad User
client min protocol = SMB2
server min protocol = SMB2
[downloads]
path = /srv/data/downloads
browseable = yes
read only = no
guest ok = no
valid users = muthi
force user = muthi
# Installation
sudo apt install wsdd2
sudo systemctl enable --now wsdd2
# Firewall rules
sudo ufw allow 3702/udp
sudo ufw allow 5357/tcp
sudo ufw allow 5358/tcp
# WSDD2 sending multicast packets
$ sudo tcpdump -ni enp0s31f6 udp port 3702
09:37:40.800285 IP 192.168.100.25.33262 > 239.255.255.250.3702: UDP, length 651
# Samba connection successful
PS> Test-NetConnection -ComputerName 192.168.100.25 -Port 445
TcpTestSucceeded : True
# ARP resolution working
PS> Get-NetNeighbor -AddressFamily IPv4 | Where-Object IPAddress -like "192.168.100.25"
IPAddress LinkLayerAddress State
--------- ---------------- -----
192.168.100.25 6C-4B-90-32-70-23 Reachable