wsdd简介
wsdd是一个实现Web服务发现主机守护进程的工具。这使得(如Samba)主机,像你的本地网络存储设备,能够被Windows这样的Web服务发现客户端找到。
目的
由于Windows不再支持NetBIOS发现,wsdd使用Web服务发现方法使主机再次出现在Windows中。这对运行Samba的设备特别有用,比如你的局域网中的NAS或文件共享服务器。发现模式则会在本地子网内搜索其他WSD服务器。
背景
自Windows 10版本1511起,默认情况下禁用了对SMBv1的支持,因此也禁止了通过NetBIOS发现设备。从1709版开始的后续Windows版本,具体取决于发行版,可能根本不允许安装SMBv1客户端。这意味着运行Samba的主机不会在资源管理器的“网络”视图中列出。尽管连接没有问题,Samba仍能正常工作,但用户可能希望Samba主机能自动显示在Windows中。
你可能会问:Samba本身呢?这项功能不应该包含在Samba里吗!?是的,也许应该。然而,即使Samba主机不在网络邻居列表中,使用Samba作为文件共享服务仍然是可能的。你可以使用主机名(前提是名称解析有效)或IP地址来连接,并且仍然可以设置网络驱动器和使用共享文件夹。
应用案例和最佳实践
文件共享服务器
wsdd2 常用于文件共享服务器,使得 Windows 客户端能够轻松发现并连接到服务器上的共享文件夹。通过配置适当的权限和共享设置,可以实现高效且安全的文件共享。
打印机服务
在打印服务器上部署 wsdd2,可以使 Windows 客户端自动发现并连接到网络打印机。这简化了打印机的管理和使用,提高了工作效率。
典型生态项目
Samba
Samba 是一个开源的 SMB/CIFS 文件、打印和登录服务器,广泛用于 Unix 和 Linux 系统。wsdd2 与 Samba 结合使用,可以提供完整的文件和打印服务解决方案。
ksmbd-tools
ksmbd-tools 是用于管理 ksmbd 内核服务器的用户空间工具。与 wsdd2 一起使用,可以进一步增强文件共享服务的安全性和性能。
通过以上教程,你应该能够快速启动并使用 wsdd2 项目,并了解其在文件共享和打印服务中的应用案例和最佳实践。
总结:
wsdd是可用来发现设备,让我们windows电脑在网络里面能够发现设备。
源码地址为:
github.comhttps://github.com/tobiaswaldvogel/openwrt-addpack/blob/master/wsdd/src/wsdd.c
那么windows电脑是怎么发现设备呢?
是以组播的形式让别人发现,具体协议为mdns协议
组播地址: 组播地址使用的是D类地址,地址范围为:224.0.0.0—239.255.255.255
mac地址前三个字节固定为:01:00:5E,后三个字节是组播IP的最后三个字节
mDNS 工作原理简单描述
mdns 使用组播地址为: 224.0.0.251 (ipv6: FF02::FB) 端口为5353,mdns 是用于局域网内部的,并且主机的域名为.local 结尾,每个进入局域网的主机,如果开启了mDNS服务的话,都会向局域网内的所有主机组播一个消息,我是谁(域名),和我的IP地址是多少。然后其他有mdns服务的主机就会响应,也会告诉你,它是谁(域名),它的IP地址是多少。 当然设备需要服务时,就是使用mdns 查询域名对对应的ip地址,对应的设备收到该报文后同样通过组播方式应答,此时其他主机设备也是可以收到该应答报文,其他主机也会记录域名和ip 以及ttl 等,更新缓存。
比如,A主机进入局域网,开启了 mDNS 服务,并向 mDNS 服务注册以下信息:我提供 FTP 服务,我的IP是 192.168.1.101,端口是 21。当B主机进入局域网,并向 B 主机的 mDNS 服务请求,我要找局域网内 FTP 服务器,B主机的 mDNS 就会去局域网内向其他的 mDNS 询问,并且最终告诉你,有一个IP地址为 192.168.1.101,端口号是 21 的主机,也就是 A 主机提供 FTP 服务,所以 B 主机就知道了 A 主机的 IP 地址和端口号了。
报文如下:
点击查看,基于看到该设备提供的服务有哪些: