我全新安装了 Ubuntu 20.04,并启用了 Samba 共享。当我尝试通过文件管理器浏览访问共享时,出现错误“无法从服务器检索共享列表:参数无效”。
这发生在共享 samba 共享的 PC 上,也发生在另一台 Linux 机器上。从 Windows 10 PC 浏览运行正常。
我看到了很多解决方案,但没有一个适合我:我知道我可以在 smb.conf 中启用 NT1 (SMB1) 协议,但我不想使用它,因为它不安全。我可以使用 ip 地址访问共享(这对我来说不起作用)或可以使用 cifs 安装共享。
但我希望能够通过在文件管理器中浏览来访问共享。如何配置 Ubuntu 20.04 框以能够访问 SMB2(或更高版本)共享?
答案1
简短回答:在解决此错误之前,您无法这样做:https://bugs.launchpad.net/gvfs/+bug/1828107
gvfs 后端进程 ( gvfsd-smb-browse ) 下降到 SMB1 ( NT1 ) 以获取 SMB 主机及其共享的列表,然后卡在那里。当它尝试访问已禁用 SMB1 的 SMB 服务器(如 Ubuntu 20)时,它无法访问,因为没有 SMB1 - 这是“无效参数”。
您仍然可以访问主机及其共享,但无法浏览或发现它。您必须在“连接到服务器”中通过主机名和共享名明确访问它。
从 Windows 10 电脑浏览运行正常。
Win10 客户端只有两种方法可以发现任何 Linux samba 服务器:
** 您在 Ubuntu 机器上启用了 WS-Discovery,您会记得这样做,因为它有点复杂。
** 或者您在 Win10 机器上启用了客户端 SMB1。您可以通过以下方式在 Win10 中验证:
输入“Windows功能“在搜索中然后展开SMB 1.0/CIFS 文件共享支持
在这种情况下,Win10 将使用 SMB1 获取共享列表,然后使用 SMB2/SMB3 建立实际连接。这是 Ubuntu 20 客户端无法做到的。
我有一台在客户端启用了 SMB1 的 Win10 机器。在 Explorer 中,我可以看到使用 NetBIOS 的非 smb1 Ubuntu 服务器:
如果我连接到其中一个共享,我将使用 SMB3 进行连接:
$ sudo smbstatus -b
Samba 版本 4.11.6-Ubuntu PID 用户名 组 机器 协议 版本 加密 签名
------------------------------------------------------------------------------------------------------------------------------------------------ 1443 nobody nogroup
2605:a601:a1a4:d000:30e3:5dca:a90c:1fea (ipv6:2605:a601:a1a4:d000:30e3:5dca:a90c:1fea:49761) SMB3_11
- -
答案2
我的错误是尝试从我的 ubuntu 桌面访问 TrueNas 服务器。这是一个 SAMBA 兼容性问题。在 truenas 中转到服务、samba、编辑并选择“启用 SMB1 支持”。还在高级部分勾选了“启用 Apple SMB2/3 协议扩展”。