运行 Samba 服务器,我认为要求加密和 SMB3 是个好主意。因此我尝试在/etc/samba/smb.conf
()中设置这两个选项查看文档) 部分[global]
:
smb encrypt = mandatory
min protocol = SMB3
之后,sudo systemctl restart smbd.service
thunar 中无法再列出共享,并且我在命令行上收到以下错误:
$ smbclient -U myuser -L //myserver
Unable to initialize messaging context
Enter WORKGROUP\myuser's password:
Sharename Type Comment
--------- ---- -------
myshare1 Disk my comment1
myshare2 Disk my comment2
Reconnecting with SMB1 for workgroup listing.
smbXcli_negprot_smb1_done: No compatible protocol selected by server.
protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
Unable to connect with SMB1 -- no workgroup available
如果 smb.conf 中没有附加行,也会出现“无法初始化消息传递上下文”消息(不管这意味着什么......),但是没有 SMB1 警告:
$ smbclient -U myuser -L //myserver
Unable to initialize messaging context
Enter WORKGROUP\myuser's password:
Sharename Type Comment
--------- ---- -------
myshare1 Disk my comment1
myshare2 Disk my comment2
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP MYCLIENTHOSTNAME
经过很长时间的实验后,我注意到 SMB3_11 实际上是自动选择的:
$ smbclient -d10 -U myuser -L //myserver 2>&1 | grep SMB
negotiated dialect[SMB3_11] against server[myserver]
signed SMB2 message
Reconnecting with SMB1 for workgroup listing.
但似乎稍后会使用一些 SMB1 和 SMB2 的东西。我认为这只是用于列表之类的,因为 Thunar 可以通过smb://myserver/myshar1
直接输入 URL 毫无问题地连接。只有smb://myserver/
限制的 才是空的smb.conf
。
将这两行放入 smb.conf 中以避免大型 LAN 中的未加密连接(也允许外部用户连接)是个好主意吗?有没有针对 Linux 用户损坏列表的解决方案?这在 >= Windows 8 上有效吗?
更新:我想我稍微误解了症状。实际上,附加的行工作正常。smbclient 也可以列出共享,但 Thunar 出于某种原因不能。
更新 2:好像如果没有 SMB1,Thunar 就无法上市,但我不明白为什么。