16.04 CIFS «Хост не работает», но это не так

27

У меня есть настройки CIFS в fstab, и они работают так, как они должны при загрузке. Они садятся так, как должны, и работают некоторое время. Кажется, из ниоткуда (возможно, после разблокировки компьютера и т. Д.) Я получаю сообщение об ошибке «Host is down» при попытке получить к нему доступ. У меня есть несколько, и они все вниз. Они также доступны с того же сервера. В это время я проверяю на компьютере с Windows и устаревшей машине 14.04, и они работают и работают, как они должны. После нажатия на акции в nautilus и получения повторяющихся ошибок они просто снова начнут работать. Чтобы получить доступ к общему ресурсу, который находится в состоянии «вниз», требуется 2-3 минуты, чтобы случайным образом щелкнуть разные монтирования и вернуться к первому, когда он автоматически показывает данные в точке монтирования.

У меня нет этой проблемы на 14.04 машинах, которые не обновлялись некоторое время. Все эти машины полностью работоспособны, и CIFS никогда не выключаются. 16 апреля они не были проблемой до недавнего времени.

Я удостоверился, что обновляю через день и убрал старые заголовки linux (задним числом я, вероятно, должен был вернуться). Я делаю это, потому что я умоляю, чтобы исправление появилось, но это были недели сражений с монтировками CIFS без какого-либо решения.

DevinM
источник
У меня точно такая же проблема. Совсем недавно началось несколько недель назад. При удаче?
Ян Х
Нет, все еще сталкиваюсь с той же проблемой. Вы случайно используете gnome-shell? Я начинаю задаваться вопросом, был ли это поворотный момент, потому что у меня есть ноутбук, который был в порядке до оболочки gnome
DevinM
Нет, я использую urxvt. Я думаю, что это ошибка в предохранителе.
Ян Х
Связанные - serverfault.com/a/842686/301458
Дэвид Рефуа

Ответы:

14

Я сталкиваюсь с той же проблемой. Кажется, это как-то связано с новейшими версиями Kernel и samba.

Мне удалось решить эту проблему, добавив vers = 2.0 в командах монтирования (или в конце каждой строки fstab)

josepcoves
источник
3
Не могли бы вы попытаться сделать это более понятным для других? Покажите строку из вашего fstab или shell и объясните, почему это помогает?
Занна
Привет! Я применил этот обходной путь, выполнив следующие шаги, указанные на панели запуска: bugs.launchpad.net/ubuntu/+source/cifs-utils/+bug/1687273
josepcoves
Я сейчас тестирую это исправление. Все идет нормально. Если это все еще работает к завтрашнему дню, я приму это как ответ. Спасибо за информацию!
ДевинМ
У меня не работает - можете ли вы опубликовать то, что вы сделали? Как вы скажете, какой номер версии использовать?
hippyjim
4
Поскольку это общепринятый ответ, возможно, следует упомянуть, что проверка допустимых значений versдаст лучшие результаты вместо рекомендации одной конкретной версии протокола (которая не будет работать на устаревших серверах). Начните с высокой версии протокола и спускайтесь по очереди. Если вы в конечном итоге с vers=1.0удаленным сервером, возможно, придется обновить (если это возможно) или иным образом защищены.
0xC0000022L
38

После многих тестов добавление vers=1.0в строку монтирования, похоже, решает проблему. Монтирование теперь работает в Ubuntu 17.10, как это было в течение многих лет в старых версиях Ubuntu.

Стефан ПИОТРОВСКИЙ
источник
3
После многих попыток х 10 это единственное решение, которое сработало. vers=2.0не работал
Оливье Понс
Я не знаю о версии = 1,0 против 2,0 или 3,0, и я не могу найти упоминаний на страницах руководства, но это сработало для меня.
Грег Чабала
3
//192.168.1.222/volume_1 / media / nas cifs имя пользователя = ****, пароль = ****, верс = 1.0
Стивен
@GregChabala: возможно проверить mount.cifs(8)то есть с man 8 mount.cifs? В mount.cifsверсии 6.8 (из cifs-utilsпакета) на странице руководства есть упоминание о vers=arg.
0xC0000022L
vers=1.0работал в моем случае.
Сохель Патан
7

Я сам столкнулся с той же проблемой, я хотел выполнить автоматическое монтирование, используя метод, описанный в вики Ubuntu ( 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

Так что кажется, что это работает только сейчас, если вы обходите SMB1 и используете другой указанный, SMB3 работал для меня, поэтому я больше ничего не пробовал.

Я использовал локальную учетную запись на машине с Windows, а не с доменным именем outlook.com, так как я прочитал кое-что, что также может вызвать конфликты.

user695658
источник
Похоже, что недавнее обновление 16232.rs_prerelease.170624-1334 для предварительного просмотра инсайдерской версии Windows 10 Pro включило изменение, которое я должен был добавить, vers=3.0чтобы смонтировать общий ресурс, который ранее работал без него.
Дилан Оливер
6

Другие уже намекали на решение, но, возможно, стоит кратко объяснить причину.

mount.cifs в Ubuntu 16.04 по умолчанию используется протокол SMB1.

В более поздних версиях mount.cifsверсия SMB по умолчанию - 2.1 или 3.0.

Текущие серверы Windows больше не поддерживают протокол SMB 1.0, если они специально не настроены в их реестре для его принятия. Поэтому по умолчанию они отклоняют соединения от клиентов, использующих протокол SMB1. Что приводит к вводящему в заблуждение сообщению «Хост не работает».

Но некоторые старые системы (чаще всего NAS) не поддерживают протоколы 2.1 или 3.

Решение состоит в том, чтобы указать mount.cifsиспользовать правильный протокол для подключения к вашему серверу, используя vers=опцию. Например, чтобы подключиться к машине с Windows 10:

mount -t cifs ... -o vers=3.0,...

или к старому NAS из Ubuntu 18.04 или новее:

mount -t cifs ... -o vers=1.0,...

Из 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.

Если вы определите свое монтирование /etc/fstab, оно может выглядеть примерно так:

//server/share  /mnt/share  cifs  defaults,vers=3.0,...your_other_options...,nofail,x-systemd.device-timeout=15 0 0
mivk
источник
cifs vers = 1.0, учетные данные = / root / .smbcredentials, работали для меня в 18.04 LTS. Включение «значений по умолчанию» в fsatb вызвало ошибку разбора, поэтому удаление этого текста позволило избежать ошибки.
Грэм
@Graham smb1 чрезвычайно устарел и опасен. Это также медленнее. Попробуй хотя бы добратьсяvers=2.1
Джоэл Коухорн
@JoelCoehoorn, но vers = 1.0 работал, в то время как более поздние версии не работали ... Я начал с 3 и изменил верс до тех пор, пока 1.0 не заработал. С тех пор абсолютно никаких проблем.
Грэм
@Graham Тогда вам нужно исправить хост, к которому вы подключаетесь, чтобы он поддерживал smb2.1 или новее. SMB1.0 действительно плохо .
Джоэл Кохорн
@JoelCoehoorn Я следовал совету, содержащемуся в этой теме: serverfault.com/questions/414074/mount-cifs-host-is-down, чтобы решить эту проблему. Только что попробовал vers = 3.0 снова, и та же ошибка сохраняется, и диск не монтируется. Что такого ужасного в версии = 1.0?
Грэм
0

У меня возникла та же проблема после обновления клиентом cifs-utils до 6.7-2. И в принципе у меня сработало решение от josepcoves и user695658. Но у меня работало только значение 1.0 для опции монтирования 'vers'. Кажется, что значение по умолчанию для параметра 'vers' больше не равно 1.0.

DEV-нуль
источник
Это дубликат принятого ответа.
Карел