16.04 CIFS“主机已关闭”但它们没有

Dev*_*inM 30 fstab mount samba cifs 16.04

我在 fstab 中有我的 CIFS 设置,它们在启动时正常工作。它们按应有的方式安装并工作一段时间。似乎无处不在(可能是在解锁机器等之后)我在尝试访问它时收到“主机已关闭”错误。我有多个,他们都倒下了。它们也从同一台服务器共享。此时,我检查了一台 Windows 计算机和一台过时的 14.04 计算机,它们已启动并按预期运行。在 nautilus 中单击共享并收到重复错误后,他们将再次开始工作。要访问“关闭”的共享大约需要 2-3 分钟随机单击不同的安装并在自动显示安装点中的数据时返回到第一个。

我在 14.04 的机器上有一段时间没有更新没有这个问题。所有这些机器都功能齐全,CIFS 永远不会“停机”。在 16.04 上,直到最近才出现问题。

我确保每隔一天更新一次并清理旧的 linux 头文件(事后看来我可能应该恢复)。我这样做是因为我乞求一个修复程序才出现,但它已经与 CIFS 安装进行了数周的斗争而没有任何解决方案。

小智 38

经过多次测试,添加vers=1.0安装线似乎可以解决问题。该安装现在可以在 Ubuntu 17.10 上运行,就像多年来在较旧的 Ubuntu 版本上一样。

  • 经过多次 x 10 尝试后,这是唯一有效的解决方案。`vers=2.0` 不起作用。 (3认同)
  • //192.168.1.222/volume_1 /media/nas cifs username=****,password=****,vers=1.0 (3认同)

小智 17

我面临同样的问题。似乎它与最新的内核版本和 samba 有关。

我设法通过在挂载命令(或每个 fstab 行的末尾)添加 vers=2.0 来解决这个问题

  • 由于这是公认的答案,因此可能应该提到尝试`vers` 的有效值会产生最佳结果,而不是推荐一个特定的协议版本(它不适用于过时的服务器)。从高协议版本开始,一一往下。如果你最终得到 `vers=1.0`,远程服务器可能需要升级(如果可能)或以其他方式保护。 (4认同)
  • 您能否尝试让其他人更清楚地了解这一点?显示 fstab 或 shell 中的行并解释为什么它有帮助? (3认同)

小智 7

我自己也遇到过同样的问题,我想使用 Ubuntu wiki ( https://wiki.ubuntu.com/MountWindowsSharesPermanently ) 中的方法自动挂载,尽管我遇到了与上述相同的问题:mount error(112): Host is down

事情是帮助我vers=3.0在选项中添加的东西:

//servername/sharename /media/windowMBsshare cifs credentials=/home/ubuntuusername/.smbcredentials,iocharset=utf8,sec=ntlm,vers=3.0 0 0
Run Code Online (Sandbox Code Playgroud)

所以看起来它现在只有在你绕过 SMB1 并使用其他指定的时才有效,SMB3 对我有用,所以我没有尝试过其他任何东西。

我在 Windows 机器上使用了一个本地帐户,而不是 Outlook.com 域名,因为我读过一些这也可能导致冲突的内容。


miv*_*ivk 7

其他人已经暗示了解决方案,但可能值得简要解释原因。

mount.cifs 在 Ubuntu 16.04 中默认使用 SMB1 协议。

在更高版本中mount.cifs,默认的 SMB 版本是 2.1 或 3.0。

当前的 Windows 服务器不再支持 SMB 1.0 协议,除非在其注册表中专门配置为接受它。因此,默认情况下,它们使用 SMB1 协议拒绝来自客户端的连接。这会导致误导性消息“主机已关闭”。

但是一些较旧的系统(通常是 NASes)不支持协议 2.1 或 3。

解决方案是mount.cifs使用vers=选项告诉使用正确的协议连接到您的服务器。例如,要连接到 Windows 10 计算机:

mount -t cifs ... -o vers=3.0,...
Run Code Online (Sandbox Code Playgroud)

或从 Ubuntu 18.04 或更高版本到旧 NAS:

mount -t cifs ... -o vers=1.0,...
Run Code Online (Sandbox Code Playgroud)

来自man mount.cifs(在 Ubuntu 16.04 中):

   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.

       ·   2.1 - The SMBv2.1 protocol that was introduced in Microsoft
           Windows 7 and Windows Server 2008R2.

       ·   3.0 - The SMBv3.0 protocol that was introduced in Microsoft
           Windows 8 and Windows Server 2012.

       Note too that while this option governs the protocol version used,
       not all features of each version are available.
Run Code Online (Sandbox Code Playgroud)

如果你在 中定义你的挂载/etc/fstab,它可能看起来像这样:

//server/share  /mnt/share  cifs  defaults,vers=3.0,...your_other_options...,nofail,x-systemd.device-timeout=15 0 0
Run Code Online (Sandbox Code Playgroud)