我们有两台机器运行 Ubuntu,其中一台大约一周前从 19.10 升级到 20.04,另一台昨天升级。当第一台升级时,我们经历了 SMB 问题学习曲线,发现我们的路由器现在无法访问,因为它运行已停用的 SMB1 协议(这是我们的 ISP 提供的协议)。我们不得不添加
客户端最小协议 = NT1
到 20.04 机器上的 smb.conf 以使此访问再次正常工作。然后我们发现 19.10 机器无法再访问 20.04 机器上的共享磁盘,与路由器访问问题的症状相同。使用
服务器最小协议 = NT1
在 20.04 机器上修复了这个问题,但留下了不安全的访问。很糟糕,但我们正准备将另一台机器升级到 20.04,希望这样能解决问题。但事实并非如此——两台机器都使用 20.04,没有服务器最小协议参数,我们仍然收到相同的错误。在托管共享的机器上恢复服务器最小协议 = NT1 设置解决了问题,但我们又回到了不安全的访问。
我们还尝试添加
服务器最大协议 = SMB3
到主机上的 sbm.conf,但这并没有什么区别,因此为了安全起见,我们不得不删除服务器最小协议参数并失去对共享的访问权限。这是一个大问题。
我想了解的是,smb 协议参数中是否有错误或缺失,或者某个地方是否真的限制了所使用的协议为 SMB1(又名 NT1)。我认为两台 20.04 机器应该协商两者都可以支持的最高协议(或最大协议设置允许的最高协议)。根据我们的设置,我认为这应该是 SMB3。
答案1
您有两个问题:
[1] 访问只能使用 SMB1 的服务器(在您的情况下是路由器)。
Samba 禁用了客户端 SMB1,因此如果您想使用 Nautilus,唯一的解决方法是编辑“客户端最小协议 = NT1”。当然,您可以使用指定 smb1 的 CIFS 安装,这样只有对路由器的访问才会受到影响。
[2] 访问已在服务器端禁用 SMB1 的服务器。(Win10、Ubuntu20 等...)
这实际上是一个 GVFS 错误( gvfsd-smb-browse ),而不是 samba 错误。但它涉及“发现 - 然后访问”服务器,而不是自行访问。您仍然可以访问服务器,但必须绕过该错误并直接访问它。例如在“连接到服务器”中:
smb://hostname.local/share-name
或者:
smb://server-ip-address/share-name
再次,您可以完全绕过 gvfs 并执行 CIFS 挂载,然后您可以指定您想要的任何方言版本的 samba。