我的 Ubuntu 22.04 一直运行 SMB1 协议

我的 Ubuntu 22.04 一直运行 SMB1 协议

我购买了 Synology DS723+ NAS(DSM 7.2-64570 下)。我可以从运行 Ubuntu 22.04 的华为 MateBook 14s 毫无问题地访问它。

但是,我无法从同样运行 Ubuntu 22.04 的 Acer Swift 5 上执行此操作。从这台电脑上看到,我收到以下消息:

Unable to access location
Failed to get list of shares from server: Invalid argument.

当我查看 NAS 日志时,连接尝试显示以下消息:

Host [192.168.1.22] failed to connect via [SMB] due to [SMB1 not permitted].

而与另一台PC连接成功后得到的消息如下:

User [xxx] from [xxx(192.168.1.36)] via [CIFS(SMB3)] accessed shared folder [Photos].

我尝试比较两台运行 Ubuntu 22.04 的 PC 之间的差异,但没有成功。最初,Acer Swift 5 上没有安装 Samba,但安装后问题并没有得到解决。阅读不同的帖子后,我了解到从 Ubuntu 20.04 开始,SMB1 连接默认被禁用:因此,我不明白为什么 Acer Swift 5 似乎会这样连接。

当我journalctl -f在 Acer 上运行并尝试连接到 NAS 时,我得到的结果如下:

oct. 09 21:56:32 xxx gvfsd[9205]: smbXcli_negprot_smb1_done: No compatible protocol selected by server.
oct. 09 21:56:47 xxx gvfsd[9205]: smbXcli_negprot_smb1_done: No compatible protocol selected by server.

答案1

在文件(Nautilus)中,转到连接到服务器并明确请求服务器及其共享。例如:

smb://192.168.1.22/Photos

问题在于 gvfsd-smb-browse 的设计缺陷。尽管 SMBv1 在 samba 本身中被禁用,但它仍然允许强制设置该方言,gvfs 使用该方言“发现”(浏览)网络上的可用主机。

gvfs 开发人员认为这是发现网络上主机的唯一方法。这不是真的,但事实就是如此。

相关内容