1. 问题缘由
我的一台openwrt路由可以在Win11的网络中看到,另一台自己刷的openwrt 19.07 nas却在win11网络中看不到,但直接用IP 可以访问其samba 3.6共享的文件夹。为何这台不能被Windows发现呢?
2. 问题解决
自己搜索了下,找不到解决方案,问了下Google gemini,回答不能解决,有点答非所闻。再问Microsoft Copilot[ChatGPT 4.0], 给出以下答案:
这个问题可能与多个因素有关,以下是一些可能的原因和解决方法:
- SMB版本:Windows 10和11默认使用SMBv2或SMBv3,而OpenWrt 19.07上的Samba 3.6可能默认使用SMBv1。你可以尝试在Samba配置文件中启用SMBv2或SMBv3。
[global] smb protocol = SMB2
- 网络发现:确保在OpenWrt上启用了网络发现功能。你可以通过安装并配置wsdd2(Web Services for Devices)来实现这一点。
opkg update
opkg install wsdd2
/etc/init.d/wsdd2 start
/etc/init.d/wsdd2 enable
- 防火墙设置:检查OpenWrt的防火墙设置,确保允许相关的网络流量通过。你可以在防火墙配置中添加允许UDP 137、138和TCP 139、445端口的规则。
uci add firewall rule
uci set firewall.@rule[-1].name='Allow-Samba'
uci set firewall.@rule[-1].src='lan'
uci set firewall.@rule[-1].dest_port='137 138 139 445'
uci set firewall.@rule[-1].proto='tcp udp'
uci set firewall.@rule[-1].target='ACCEPT'
uci commit firewall
/etc/init.d/firewall restart
- UPnP:有些用户报告在OpenWrt 19.07上UPnP功能存在问题1。虽然UPnP不直接影响Samba共享,但它可能影响设备在网络中的可见性。你可以尝试禁用UPnP,看看是否有帮助。
我确认SMB版本3.6,支持SMB2没有问题。防火墙没有问题。然后按照2的方法,安装了wsdd2, 然后Windows网络中立即显示出来了OpenWRT NAS。
3. 总结
wsdd2简介
设备 Web 服务或设备上的 Web 服务 (WSD),是一种 Microsoft API,用于简化与支持 Web 服务的设备(例如打印机、扫描仪和文件共享)的编程连接
此守护进程会通告并响应来自寻找文件共享的 Windows 客户端的探测请求。
它还实现了 LLMNR 多播名称查找服务。