Ubuntu 20.xx SAMBA 问题

Ubuntu 20.xx SAMBA 问题

我使用 SAMBA 访问网络共享已经有一段时间了。它在 19.xx 中运行良好,但我认为它在 20.04 和 20.10 中可能出现故障(我使用的是 20.10)。

我无法访问我自己本地计算机上的共享,尽管我似乎可以访问路由器上的共享。它弹出一个错误对话框,显示“无法从服务器检索共享列表”的消息?抱歉,我不记得确切的错误消息了。

思考我知道问题可能出在哪里。看来 SMB1 可能出于安全原因被禁用,但 SMB2/3 可能仍然存在。我不知道如何找出这个问题。

testparm通过了。findsmb并且smbtree没有起作用(但是在以下修补之后,它们现在可以起作用了)。

我编辑了 /etc/samba/smb.conf 并将以下内容添加到网络部分...

client min protocol = NT1
server min protocol = NT1
name resolve order = bcast host lmhosts wins

重新启动了 smbd 和 nmbd,似乎已经修复了问题。我思考这将重新启用 SMB1...但我不是 SAMBA 专家。

现在smbstatus显示...

Samba version 4.12.5-Ubuntu
PID     Username     Group        Machine                                   Protocol Version  Encryption           Signing              
----------------------------------------------------------------------------------------------------------------------------------------
24943   nobody       nogroup      satellite-e55 (ipv6:fe80::c433:26d6:91d2:3475:59876) NT1               -                    -                    
19177   nobody       nogroup      satellite-e55 (ipv4:192.168.0.100:57868)  NT1               -                    -                    

Service      pid     Machine       Connected at                     Encryption   Signing     
---------------------------------------------------------------------------------------------
IPC$         19177   satellite-e55 Sat Mar 20 07:17:40 PM 2021 PDT  -            -           
IPC$         24943   satellite-e55 Sun Mar 21 07:56:25 AM 2021 PDT  -            -           

No locked files

这是发生了什么吗?我是否实施了正确/最佳修复?20.xx 中发生了什么可能导致此问题?

更新#1:

nmap --script smb-protocols IPofServer/32

我的路由器...

~$ nmap --script smb-protocols 192.168.0.1/32
Starting Nmap 7.91 ( https://nmap.org ) at 2021-03-22 07:01 PDT
Nmap scan report for caspurr.local (192.168.0.1)
Host is up (0.012s latency).
Not shown: 986 closed ports
PORT      STATE SERVICE
53/tcp    open  domain
80/tcp    open  http
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
548/tcp   open  afp
631/tcp   open  ipp
5000/tcp  open  upnp
8200/tcp  open  trivnet1
9100/tcp  open  jetdirect
9101/tcp  open  jetdirect
9102/tcp  open  jetdirect
9103/tcp  open  jetdirect
20005/tcp open  btx
49152/tcp open  unknown

Host script results:
| smb-protocols: 
|   dialects: 
|     NT LM 0.12 (SMBv1) [dangerous, but default]
|     2.02
|     2.10
|     3.00
|     3.02
|_    3.11

Nmap done: 1 IP address (1 host up) scanned in 4.21 seconds

我的电脑…

~$ nmap --script smb-protocols 192.168.0.100/32
Starting Nmap 7.91 ( https://nmap.org ) at 2021-03-22 07:03 PDT
Nmap scan report for ubuntu-eth0.local (192.168.0.100)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT    STATE SERVICE
80/tcp  open  http
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
631/tcp open  ipp

Host script results:
| smb-protocols: 
|   dialects: 
|     NT LM 0.12 (SMBv1) [dangerous, but default]
|     2.02
|     2.10
|     3.00
|     3.02
|_    3.11

答案1

这里有两个问题 - 实际上是三个 - 它们结合在一起导致了您所报告的问题。

一个是 gvfs( gvfsd-smb-browse )中的一个错误,当您在文件管理器中浏览服务器及其共享时,该错误硬连线为使用 SMB1( NT1 )来获取服务器及其共享的列表。

第二个是 Sambas 决定在客户端和服务器端禁用(但不删除)SMB1。

您的 samba 服务器可以在 SMB2.02 到 SMB3 之间运行。gvfs 中的错误导致 samba 客户端尝试使用服务器无法理解的 SMB1 访问该服务器,因此它会抛出错误:

无法从服务器检索共享列表:参数无效

有三种方法可以解决这个问题:

[1] 通过在“连接到服务器”中请求服务器及其共享来绕过 gvfsd-smb-browse:smb://server-host-name.local/share-name

Samba 客户端和服务器将使用 SMB3 连接。

[2] 或者按照你刚才的操作,将最小服务器和客户端设置为 SMB1 (NT1)。IT 也将使用 SMB3 进行连接,因为在初始 SMB1 连接后,服务器和客户端会相互协商以确定要使用的最佳方言。

[3] 或者使用 mount.cifs 挂载,该挂载也将使用 SMB3 进行连接。必须在 fstab 中设置才能自动执行。

如果这能让您感觉好一点,那么新安装的 Win10 计算机将无法“发现”您的 samba 服务器,因为它也禁用了 SMB1。那里的解决方案与您的 Linux 系统相同:使用连接\\server-host-name.local或在 Win10 的客户端启用 SMB1,而微软真的不希望任何人这样做。

答案2

同样的问题。我的 Windows 机器可以很好地与本地 Samba 服务器配合使用,但我的 Ubuntu 20.04.4 机器却不能。通常,在我的 Ubuntu 文件浏览器中,我会使用以下命令访问服务器:

smb://server-host-name.local/share-name

但它不起作用。

对我而言有效的解决方案是用服务器的 IP 地址替换服务器名称。示例:

smb://14.15.16.17/share-name

相关内容