openwrt wsdd模块介绍

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 地址和端口号了。

报文如下:

点击查看,基于看到该设备提供的服务有哪些:

相关推荐
小陈phd11 分钟前
Vscode LinuxC++环境配置
linux·c++·vscode
是阿建吖!15 分钟前
【Linux】进程状态
linux·运维
hzyyyyyyyu28 分钟前
内网安全隧道搭建-ngrok-frp-nps-sapp
服务器·网络·安全
明明跟你说过44 分钟前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump
qystca1 小时前
洛谷 B3637 最长上升子序列 C语言 记忆化搜索->‘正序‘dp
c语言·开发语言·算法
刽子手发艺1 小时前
WebSocket详解、WebSocket入门案例
网络·websocket·网络协议
Komorebi.py2 小时前
【Linux】-学习笔记05
linux·笔记·学习
Mr_Xuhhh2 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
速盾cdn5 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip