Ekc*_*kci 6 nautilus samba networking
自 18.04 升级以来,我无法使用 Nautilus 窗口连接到 Samba 服务器。我发现我必须为 SMB1.0 指定协议(-o vers=1.0
在控制台中)。我尝试添加以下命令:
max protocol = SMB1
client max protocol = SMB1
Run Code Online (Sandbox Code Playgroud)
to/etc/samba/smb.conf
但它没有帮助,仍然打印Function not implemented
。
任何想法如何做到这一点?
的SMBv1协议是从1983年,它是不安全的,因此一个很好的理由禁用。SMBv2 协议自 2006 年开始可用。
我来到这个问题试图找到以下两个问题的解决方案:
我尝试使用 Nautilus 在我自己的 Ubuntu 系统上浏览网络共享。我收到一条错误消息,显示无法访问位置 无法从服务器检索共享列表:无效参数:
在/etc/samba/smb.conf
文件中使用不同的值多次尝试后,我终于能够使用这两个值解决这些问题:
client min protocol = NT1
server min protocol = NT1
Run Code Online (Sandbox Code Playgroud)
我还发现了建议添加第三个参数的帖子:
ntlm auth = ntlmv1-permitted
Run Code Online (Sandbox Code Playgroud)
但是,在我的系统上,这不是必需的。
据我了解,该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'
Run Code Online (Sandbox Code Playgroud)
可用于将客户端协议设置为 SMBv1。这对于测试smb.conf
文件更改的效果很有用。
我在带有 samba 版本的 Ubuntu 20.04 上试过这个4.11
。我尚未在较旧的 Ubuntu 发行版上测试此解决方案。
注意:这个答案与 samba 4.7.6 版本有关,并且适用于特殊情况。当前版本的 Samba 工作方式不同,将客户端最大值设置为 NT1 会使最大值小于最小值。要在较新版本的 Samba(例如 Ubuntu 20.04 中的版本)上启用 SMB1 ( NT1 ),请使用下面 lanoxx 提供的答案
客户端最大协议 = SMB1
为了迷惑尽可能多的人,samba 中的 SMB1 被称为 NT1。因此,将您的行更改为:
client max protocol = NT1
Run Code Online (Sandbox Code Playgroud)
并且根本不要添加max protocol = SMB1行。如果您在 18.04 机器上设置服务器,它将与客户端协商使用正确的级别,默认情况下上限为 SMB3。已经很多年了。
归档时间: |
|
查看次数: |
11812 次 |
最近记录: |