Ste*_*4x4 4 linux mount cifs ubuntu smb3
我在 VMWare ESXi 6.5 管理程序上运行 Ubuntu Server 16.04.3 LTS 64 位并安装了 cifs-utils 作为 VM。
我在 Windows Server 2016 上有一个常规的网络共享设置。
目标是利用 Veeam Linux Agent 通过 CIFS 将此 Linux VM 备份到 Windows 共享。
问题:
当我配置 Veeam 以使用 CIFS 时,(查看日志)veeam 正在执行此命令以连接到网络共享:
mount -t cifs -o username=MyUsername,password=*,rw,soft //MyServerIP/MyShare /tmp/veeam/MyServerIPMyShare
Run Code Online (Sandbox Code Playgroud)
它给了我错误:安装错误(112):主机已关闭。
当我手动运行命令时,它会做同样的事情。
但是,当我像这样运行命令时:
mount -t cifs -o vers=3.0,username=MyUsername,password=*,rw,soft //MyServerIP/MyShare /tmp/veeam/MyServerIPMyShare
Run Code Online (Sandbox Code Playgroud)
如果我也使用 2.0,它安装也没有问题。
问题是,无法在 Veeam 中强制使用 3.0 版。因此,我需要能够以某种方式在 Linux 中强制执行此操作。
我看到其他人也遇到了这个问题,但没有提出解决方案。
我尝试了以下操作(根据我的发现):
将以下行添加到 /etc/samba/smb.conf
server min protocol = SMB2
server max protocol = SMB3
client min protocol = SMB2
client max protocol = SMB3
min protocol = SMB2
max protocol = SMB3
client ipc min protocol = SMB2
Run Code Online (Sandbox Code Playgroud)
我混合并匹配了重新启动的变体,但无济于事。
小智 8
我意识到这已经很老了,但我在搜索同样的东西时被带到这里:在 Ubuntu 16.04 上使用 veeam (linux 4.0 的免费代理) 备份到 Windows Server 2016 上托管的现代 SMB 共享。与 OP 相同,通过 veeam 向导进行配置失败,并且当我测试安装命令时,配置失败,但是将“vers=3.02”添加到安装命令中可以正常工作(如预期)。
这很令人沮丧,因为我的 18.04 机器连接良好,并且从阅读来看,较新版本的 cifs-utils 似乎将 SMB3 设置为默认值。
不过,我确实找到了解决方案。我试图找到 veeam 使用的安装脚本,但它们不使用您可以编辑的任何传统类型的脚本。我决定尝试在 smb 配置的向导字段之一中添加“vers=3.02”选项,假设它只是接受我的输入并形成安装命令,并且它有效!我将其添加到用户名后面,例如“entered_username,vers=3.02”。
对于给定的mount.cifs
版本,除了添加vers=3.0
到命令行(或添加到 )之外,我不知道其他方法/etc/fstab
。该mount.cifs
驱动程序忽略smb.conf
。从历史上看,它似乎mount.cifs
无法自动协商,只是尝试了一个协议版本 - 2017 年 7 月之前是 1.0,之后是 3.0。(2017 年 7 月是代码更改为 cifs 4.13 的日期,而不是早期版本在运行时查看该日期!)从2017年9 月开始,它看起来可以自动协商,默认为 2.1 或更高版本(无论最高的是服务器可以提供)。
因此,如果您可以升级您的 cifs 版本,即使没有明确指定,您也应该能够获得不同的结果协议版本。
这是 mount.cifs、smb.conf 和 Windows 协议版本的映射:
vers=3.0 是 SMB3 即 Windows 8,Windows Server 2012
vers=2.1 是 SMB2_10 即 Windows 7,Windows Server 2008 R2
vers=2.0 是 SMB2_02 即 Vista SP1 , Windows Server 2008
vers=1.0 是 NT1 即 Windows 95, NT 4.0