免责声明

免责声明

自 18.04 升级以来,我无法使用 Nautilus 窗口连接到 Samba 服务器。我发现我必须将协议指定为 SMB1.0(-o vers=1.0在控制台中)。我尝试添加以下命令:

max protocol = SMB1
client max protocol = SMB1

/etc/samba/smb.conf它没有帮助,仍然打印Function not implemented

有什么想法可以做到这一点吗?

答案1

免责声明

SMBv1 协议源自 1983 年,它不安全,因此被禁用是有原因的。SMBv2 协议自 2006 年起就已可用。

问题描述

我提出这个问题是为了尝试找到以下两个问题的解决方案:

  1. 我有一台只能使用旧版 SMBv1 协议的 HP 打印机(HP OfficeJet Pro 8620)。因此,我的打印机拒绝连接到网络共享,并且扫描到网络功能已停止工作。
  2. 我尝试使用 Nautilus 浏览我自己的 Ubuntu 系统上的网络共享。我收到了一条错误消息无法访问位置 无法从服务器检索共享列表:参数无效

    在此处输入图片描述

解决方案

尝试使用/etc/samba/smb.conf文件中的不同值多次后,我终于能够使用这两个值解决这些问题:

client min protocol = NT1
server min protocol = NT1

我还发现建议添加第三个参数的帖子:

ntlm auth = ntlmv1-permitted

然而,在我的系统上这不是必需的。

解释

据我了解,该client min protocol选项控制您的系统如何与其他 SMB 服务器通信,如果您的 Ubuntu 系统作为客户端工作并且您想使用 SMBv1 访问服务器,则更改此选项可能很有用。默认情况下(使用 Samba 4.11),您的本地 Samba 安装配置为需要 SMBv2 或更高版本的连接。

另一方面,如果您的 Ubuntu 系统充当需要 SMBv2 或更高版本的服务器,并且您有一个只能理解旧版 SMBv1 协议的远程客户端(例如打印机),那么更改 似乎client min protocol没有效果。相反,您需要更改server min protocol。这样,客户端就可以与在 Ubuntu 系统上运行的 Samba 守护程序协商 SMBv1。

附注:您还可以将client min protocol选项传递给以下工具smbclient,例如:

smbclient -L //<hostname>/<folder> --option='client min protocol=NT1'

可用于将客户端协议设置为 SMBv1。这对于测试文件更改的效果很有用smb.conf

我在带有 Samba 版本的 Ubuntu 20.04 上尝试过此方法4.11。我尚未在较旧的 Ubuntu 发行版上测试过此解决方案。

答案2

注意:此答案与 Samba 4.7.6 版本有关,适用于特殊情况。当前版本的 Samba 工作方式不同,将客户端最大值设置为 NT1 将使最大值小于最小值。要在较新版本的 Samba(例如 Ubuntu 20.04 中的版本)上启用 SMB1(NT1),请使用下面由 lanoxx 提供的答案

客户端最大协议 = SMB1

为了尽可能迷惑人们,samba 中的 SMB1 被称为 NT1。因此,请将您的行更改为:

client max protocol = NT1

不要添加最大协议 = SMB1根本不行。如果您在 18.04 机器上设置服务器,它将与其客户端协商使用正确的级别,默认情况下上限为 SMB3。多年来一直如此。

相关内容