我有一个媒体播放器,它可以毫无问题地连接到运行 Samba 的主计算机。它运行旧版本的嵌入式 Linux(内核 2.6.22.19-27)并具有 CIFS。
在某些时候,在我升级服务器上的 Samba 软件(目前在 FreeBSD-10.4 上运行的 samba-4.6.8)后,播放器失去了这种能力——它仍然可以列出相同的导出共享,但不能再打开任何东西:“错误的凭据”。
我手机上支持 SMB 的应用程序可以很好地打开相同的文件夹(使用相同的凭据)...
是否有一些选项我需要显式打开服务器以启用与旧客户端的某种兼容模式?
更新:根据@Tin 的建议,我在 - 部分添加了以下行[global]
:smb4.conf
不幸
的
max protocol = NT1
是,这并没有改变——除了媒体播放器,我仍然可以从大多数系统连接,它仍然告诉我,我的凭据都不好。
在服务器上使用tcpdump
我捕获了以下交换:
SMB PACKET: SMBnegprot (REQUEST)
SMB Command = 0x72
Error class = 0x0
Error code = 0 (0x0)
Flags1 = 0x0
Flags2 = 0x1
Tree ID = 0 (0x0)
Proc ID = 1283 (0x503)
UID = 0 (0x0)
MID = 1 (0x1)
Word Count = 0 (0x0)
smb_bcc=12
Dialect=NT LM 0.12
服务器响应的:
SMB PACKET: SMBnegprot (REPLY)
SMB Command = 0x72
Error class = 0x0
Error code = 0 (0x0)
Flags1 = 0x80
Flags2 = 0x3
Tree ID = 0 (0x0)
Proc ID = 1283 (0x503)
UID = 0 (0x0)
MID = 1 (0x1)
Word Count = 17 (0x11)
NT1 Protocol
DialectIndex=0 (0x0)
SecMode=0x3
MaxMux=50 (0x32)
NumVcs=1 (0x1)
MaxBuffer=16644 (0x4104)
RawSize=65536 (0x10000)
SessionKey=0xA4AA
Capabilities=0x80F3FD
ServerTime=Sun Oct 1 18:00:38 2017
TimeZone=240 (0xf0)
CryptKey=Data: (1 bytes)
...
然后客户说:
SMB PACKET: SMBsesssetupX (REQUEST)
SMB Command = 0x73
Error class = 0x0
Error code = 0 (0x0)
Flags1 = 0x0
Flags2 = 0x1
Tree ID = 0 (0x0)
Proc ID = 1283 (0x503)
UID = 0 (0x0)
MID = 2 (0x2)
Word Count = 13 (0xd)
Com2=0xFF
Res1=0x0
Off2=0 (0x0)
MaxBuffer=16644 (0x4104)
MaxMpx=50 (0x32)
VcNumber=0 (0x0)
SessionKey=0x0
CaseInsensitivePasswordLength=24 (0x18)
CaseSensitivePasswordLength=24 (0x18)
Res=0x0
Capabilities=0x80D0DC
Pass1&Pass2&Account&Domain&OS&LanMan=
smb_bcc=179
...
最后是服务器:
SMB PACKET: SMBsesssetupX (REPLY)
SMB Command = 0x73
Error class = 0x6D
Error code = 49152 (0xc000)
Flags1 = 0x80
Flags2 = 0x3
Tree ID = 0 (0x0)
Proc ID = 1283 (0x503)
UID = 0 (0x0)
MID = 2 (0x2)
Word Count = 0 (0x0)
NTError = STATUS_LOGON_FAILURE
smb_bcc=0
到底是怎么回事?
更新:我可以挂载任何东西的方法是创建一个密码为空的帐户 ( smbpasswd -n ...
) 并进行编辑smb.conf
以允许null passwords
。
我的猜测是新版本禁用了 SMB1。检查配置是否有类似于:“min protocol = SMB2”的行。
当我(故意)在我的家庭服务器上禁用 SMB1 时,我得到了类似的结果。所有 Kodi 媒体播放器都无法连接,并引发了有关身份验证的错误。
好的,这里是对 Samba-4.5 中引入的默认设置的更改列表。就我而言,我必须明确地将一件事改回“是”以允许我的媒体播放器访问服务器:
在互联网上花费了一些时间并尝试了各种建议,我设法找到了能够帮助我解决此问题的解决方案。解决方法是为FreeNAS下的SMB服务设置辅助参数server min protocol = NT1。重新启动 SMB 服务后,一切都像以前一样无缝运行。