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

报文如下:

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

相关推荐
ulias2123 小时前
Linux系统中的权限问题
linux·运维·服务器
振浩微433射频芯片4 小时前
433MHz在智能家居中的应用大全(二):智能安防篇——安全不容“信号死角”
网络·单片机·嵌入式硬件·物联网·智能家居
mzhan0174 小时前
Linux: lock: preempt_count 是一个线程级别的变量
linux·lock
韭菜钟5 小时前
WIndows下一键切换网卡IP脚本
windows·网络协议·tcp/ip
Dream of maid5 小时前
Linux(下)
linux·运维·服务器
齐鲁大虾5 小时前
统信系统UOS常用命令集
linux·运维·服务器
weixin_446023565 小时前
C语言:面向过程、应用底层开发、跨平台的通用程序设计语言
c语言·跨平台·数据类型·底层开发·面向过程
ZzzZZzzzZZZzzzz…5 小时前
Nginx 平滑升级:从 1.26.3 到 1.28.0,用户无感知
linux·运维·nginx·平滑升级·nginx1.26.3·nginx1.28.0
fengfuyao9856 小时前
基于STM32的4轴步进电机加减速控制工程源码(梯形加减速算法)
网络·stm32·算法
无敌昊哥战神7 小时前
深入理解 C 语言:巧妙利用“0地址”手写 offsetof 宏与内存对齐机制
c语言·数据结构·算法