[problem help] 今天全新安装了b3,还是不能smb1.0广州局域网中的网盘
Tofloor
poster avatar
sunny
deepin
2024-02-02 22:37
Author

有个Airdisk的网盘,有手机和WIN的客户端,用deepin的V20可以文件管理器挂载局域网上的网盘,V23的时候总是挂载失败,今天安装了V23的B3,还是挂载不上。

Reply Favorite View the author
All Replies
sunny
deepin
2024-02-02 22:40
#1

微信图片_20240202224018.jpg
微信图片_20240202224006.jpg

Reply View the author
kludge
deepin
2024-02-02 22:58
#2

同样的情况。。。。。。。还以为B3会修复这个问题

Reply View the author
kludge
deepin
2024-02-02 23:19
#3

我用命令指定SMB1.0挂载成功了

sudo mount -t cifs //192.168.xx.xx/xxx /media/xxx/xxxx -o username="xxxx",password="xxxxxx",iocharset=utf8,vers=1.0

Reply View the author
babyfengfjx
Super Moderator
CQA
2024-02-03 09:32
#4

是因为协议太低了么?我这一直用还没遇到过这种情况,这个搭建细节还有印象没,看我们是不是可以模拟一下。

Reply View the author
kludge
deepin
2024-02-03 11:24
#5
babyfengfjx

是因为协议太低了么?我这一直用还没遇到过这种情况,这个搭建细节还有印象没,看我们是不是可以模拟一下。

搭建什么的细节?NAS?

我的就是局域网内群晖,DSM 6.2.3-25426 Update 2

情况详见我以前的贴子

无法挂载NAS上的共享文件夹-论坛-深度科技 (deepin.org)

Reply View the author
最帅的那位
deepin
2024-02-04 10:23
#6
kludge

我用命令指定SMB1.0挂载成功了

sudo mount -t cifs //192.168.xx.xx/xxx /media/xxx/xxxx -o username="xxxx",password="xxxxxx",iocharset=utf8,vers=1.0

拔了一下文管的代码 https://github.com/linuxdeepin/dde-file-manager:

if (opts.contains(MountOptionsField::kVersion))
param += QString(",vers=%1").arg(opts.value(MountOptionsField::kVersion).toString());

他们文管的cifs挂载已经支持传参这种方式的挂载。

继续拔了一下如下代码,发现文件管理用smb来做的协议补充,这个需要本地smb的支持。

libSmbc = new QLibrary("libsmbclient.so.0");

static QMap mapper {
{ "SMB3_11", "3.11" },
{ "SMB3_10", "3.02" },
{ "SMB3_02", "3.02" },
{ "SMB3_00", "3.0" },
{ "SMB2_24", "2.1" },
{ "SMB2_22", "2.1" },
{ "SMB2_10", "2.1" },
{ "SMB2_02", "2.0" },
{ "NT1", "1.0" },
{ "DEFAULT", "default" },
};

cifs 是内核态的smbclient, gvfs是用户态的smbclient实现,服务端一样,估计出现在客户端上。

从当前代码来看,社区版本当前smb挂载采用的是cifs挂载。我电脑是deepin 20.9 还是用的gvfs挂载(可以支持smb1.0的挂载,我验证过了),gvfs smb挂载采用的是smbclient的方式,smbclient 是支持smb1.0的,而cifs挂载估计需要参数配置,这个参数适配又来至smb自身,估计smb需要提供cifs挂载的能力。

当前社区samba版本是 4.19.3,我本地是4.9.5.37-deepin37。我估计是smb 本地没有适配的原因,需要等待官方进一步证明和适配吧。

Reply View the author
kludge
deepin
2024-02-04 11:21
#7
最帅的那位

拔了一下文管的代码 https://github.com/linuxdeepin/dde-file-manager:

if (opts.contains(MountOptionsField::kVersion))
param += QString(",vers=%1").arg(opts.value(MountOptionsField::kVersion).toString());

他们文管的cifs挂载已经支持传参这种方式的挂载。

继续拔了一下如下代码,发现文件管理用smb来做的协议补充,这个需要本地smb的支持。

libSmbc = new QLibrary("libsmbclient.so.0");

static QMap mapper {
{ "SMB3_11", "3.11" },
{ "SMB3_10", "3.02" },
{ "SMB3_02", "3.02" },
{ "SMB3_00", "3.0" },
{ "SMB2_24", "2.1" },
{ "SMB2_22", "2.1" },
{ "SMB2_10", "2.1" },
{ "SMB2_02", "2.0" },
{ "NT1", "1.0" },
{ "DEFAULT", "default" },
};

cifs 是内核态的smbclient, gvfs是用户态的smbclient实现,服务端一样,估计出现在客户端上。

从当前代码来看,社区版本当前smb挂载采用的是cifs挂载。我电脑是deepin 20.9 还是用的gvfs挂载(可以支持smb1.0的挂载,我验证过了),gvfs smb挂载采用的是smbclient的方式,smbclient 是支持smb1.0的,而cifs挂载估计需要参数配置,这个参数适配又来至smb自身,估计smb需要提供cifs挂载的能力。

当前社区samba版本是 4.19.3,我本地是4.9.5.37-deepin37。我估计是smb 本地没有适配的原因,需要等待官方进一步证明和适配吧。

agree

Reply View the author