除了使用 SMBv1 之外,还有其他方法可以让 Linux 共享出现在网络(Win10-Home 和 Prof)中吗?
我正在运行带有 Samba 4.11.6 的 20.04,当使用 SMBv2 或 3 时,我无法通过网络从 Windows 10 访问我的 Linux 共享。我可以通过映射 \name\share 访问我的共享,或者在 Windows 上启用 SMBv1 时没有任何问题。
我不想使用 SMBv1 或使用 \name\share 方法。
我取消选中 Windows 中的所有 SMBv1 框,并在我的 smb.conf 文件中尝试了以下各种组合,但 SMB2 或 3 不起作用。
客户端最小协议 = SMB2
客户端最大协议 = SMB3
最小协议 = SMB2
最大协议 = SMB3
协议 = SMB2
协议 = SMB3
服务器最小协议 = SMB2
服务器最大协议 = SMB3
我还关闭了所有防火墙(Win/Linux)以进行故障排除,并尝试了不同的注册表破解,但到目前为止,唯一能使其发挥作用的方法是使用不安全的 SMBv1。我在 Win 或 Linux 上需要启用什么吗?
答案1
Win10 无法通过 NetBIOS 名称“发现”共享,因为这需要 SMB1。
如果需要,您可以使用 \linux-host-name.local 连接到服务器。
或者您可以在 Linux 服务器上配置 WS-Discovery:
我在启动板中将此作为错误/功能请求提交: https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1831441
github 上已经存在一些已经创建好的内容。可以在 Ubuntu 中使用它,但需要做一些工作来实现:
[1]下载文件:
wget https://github.com/christgau/wsdd/archive/master.zip
[2] 解压:
unzip master.zip
[3] 重命名python脚本
sudo mv wsdd-master/src/wsdd.py wsdd-master/src/wsdd
[4] 复制到/usr/bin
sudo cp wsdd-master/src/wsdd /usr/bin
[5] 软件包中已经提供了 systemd 服务文件,只需将其复制到正确的位置即可:
sudo cp wsdd-master/etc/systemd/wsdd.service /etc/systemd/system
[6] 需要编辑 wsdd.service 文件( /etc/systemd/system/wsdd.service )来删除对 nobody 用户的引用:
#User=nobody
#Group=nobody
[7]然后启用服务:
sudo systemctl daemon-reload
sudo systemctl start wsdd
sudo systemctl enable wsdd
现在Win10可以使用自己的原生WSD协议发现Ubuntu服务器,无需启用smb1。