使用 SMB 2.1 或更高版本安装 Windows 共享

使用 SMB 2.1 或更高版本安装 Windows 共享

我正在尝试使用 Ubuntu 12.04(使用内核 3.13.0-117-generic)安装 Windows 托管的 SMB 共享(CIFS)。使用 SMB1 安装可以,但这是不能接受的,我们必须使用 SMB2.1 或更高版本进行安装。

下面是我通过传递 ver= 参数尝试执行此操作的输出

root@----:/# mount -t cifs //SERVER/smbtest /mnt/smbtest --verbose -o ver=2.1,user=administrator
Password:
mount.cifs kernel mount options: 
ip=10.16.0.40,unc=\\server.domain.net\smbtest,ver=2.1,ver=1,user=administrator,pass=********
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

如您所见,mount.cifs 内核挂载选项中有两个 ver 参数,一个是我指定的,另一个是默认值 (1)。如果我为 ver 指定除 1 或 1.0 以外的任何值,就会发生这种情况。

安装了 cifs-utils 版本 5.1,cifs.ko 版本为 2.02。从 Samba wiki 上的 SMB3 内核状态页面来看,https://wiki.samba.org/index.php/SMB3_kernel_status

"The minimum version for use of the Linux kernel SMB3 support is kernel version 3.12 (or backport of cifs.ko module version 2.02 or later) but kernel version 3.18 or later (or equivalent, ie cifs module version 2.04 or later) is recommended for best SMB3 support."

有人能帮我找到正确的方向吗?我肯定漏掉了什么。还有哪些方法可以强制 SMB2+ 连接?这是我在这里的第一篇帖子,我尽量简短,如果我漏掉了什么,请告诉我,我会将信息添加到我的帖子中。

据我所知,这应该可行,但如果我误解了某些东西并且 SMB2+ 不受支持,我不会感到惊讶。

谢谢

编辑:我知道 12.04 是 EOL。明天我会更新这篇文章,提供 14.04 的相关信息,它有同样的问题。如果有人能回答关于 12.04 的问题,我还是会很感激。

答案1

如果我使用 ver,它实际上会输入“无效参数”,但 man mount.cifs 说选项名称是“vers”,而不是“ver”。

       vers=
       SMB protocol version. Allowed values are:

       ·   1.0 - The classic CIFS/SMBv1 protocol. This is the default.

       ·   2.0 - The SMBv2.002 protocol. This was initially introduced in
           Windows Vista Service Pack 1, and Windows Server 2008. Note
           that the initial release version of Windows Vista spoke a
           slightly different dialect (2.000) that is not supported....

它对我在 Mint 18.1 中有效:

mount -t cifs //192.168.1.1/public /home/user/Desktop/share --verbose -o vers=2.1,user=winuser

答案2

我在本地手册页中找到了可用的选项。在您自己的机器上检查一下,看看它支持哪些选项。进入手册页后,键入/vers=以快速找到该参数。

man mount.cifs

然后我按如下方式安装了我的份额:

sudo mount -t cifs //nas/homes/mike /media/mike/nashome -o vers=3.11,credentials=/home/mike/.ssh/.smb_nas

这需要一个在 /home/mike/.ssh/.smb_nas 中包含以下内容的凭证文件,这样我就不需要在命令中输入我的密码(导致它以纯文本形式存储在您的命令历史记录中)或在提示符下输入(很麻烦)。

username=mike
password=[REAL PASSWORD]
domain=WORKGROUP

我正在从支持 SMB 版本 3.11 的 Synology NAS 进行安装。您必须检查您的视窗(或通过 CIFS/SMB 托管文件的任何内容)版本,以查看它在服务器端支持什么。

答案3

奇怪的是,如果共享计算机不在该 IP 地址上,您可能会收到相同的错误。对 DHCP 的更改“移动”了我们的 NAS,这就是我的问题的根源。一旦共享回到正确的 IP,错误就会停止。

答案4

您可能需要添加 Windows 域。如果您认为“我不使用域”……那么,微软并不这么认为。您可以将domain=[your ip here]其添加到

  1. 您的凭证文件(类似于这个答案确实如此,但使用你的 IP 而不是WORKGROUP)
  2. 将其添加到-o您的坐骑的一部分

    mount -t cifs //192.168.1.10/someshare /var/www/user/myshare -o vers=3.0,rw,nounix,file_mode=0777,dir_mode=0777,sec=ntlmsspi,user=username,password=somepassword,domain=192.168.1.10
    

相关内容