Как мне смонтировать общие ресурсы Windows Server 2016 NFS и SMB 2.0+ в Raspbian Linux, используя mount и cifs.utils? - PullRequest
0 голосов
/ 30 августа 2018

Резюме

Я пытаюсь смонтировать удаленные общие папки с сервера Windows 2016 с необходимыми учетными данными в каталог Raspbian.

протокол SMB

Монтирование с помощью команды mount и cifs.utils

Я хочу подключиться по протоколу SMB2.0 или новее. Windows Server 2016 явно не указывает где-либо в своем интерфейсе, какую версию он использует (спасибо, Микро $ oft).

В Raspbian я добавил запись в файл / etc / fstab для монтирования общего ресурса в локальный каталог.

//192.168.1.31/ /home/pi/windowsshare/  cifs  credentials=/home/pi/.smbcredentials,vers=2.0,sec=ntlm,iocharset=utf8  0  0

Он использует этот файл учетных данных (.smbcredentials):

username=Administrator
password=[REDACTED]
domain=AASERVER-1

Мне неясно, что означает "домен" в этом контексте. Домен и сервер одно и то же для меня. Я поместил имя сервера в поле домена, так как я предполагаю , что парсер учетных данных попытается найти пользователя Administrator, зарегистрированного на компьютере AASERVER-1. Большинство других сетевых инструментов просто позволяют указать пользователя как AASERVER-1/Administrator. Мне нужно уточнить, следует ли мне использовать это поле.

После запуска mount -a для монтирования общих ресурсов, перечисленных в / etc / fstab, я наткнулся на mount error(22): Invalid argument. Я запустил dmesg, чтобы проверить системный журнал. dmesg вывод:

CIFS VFS: Unable to select appropriate authentication method!
CIFS VFS: Send error in SessSetup = -22
CIFS VFS: cifs_mount failed w/return code = -22

Я избавился от опции sec=ntlm, и она снова не удалась. dmesg

CIFS VFS: session b9093700 has no tcon available for a dfs referral request
CIFS VFS: cifs_mount failed w/return code = -22

Затем я избавился от опции vers=2.0. Не удалось снова. dmesg

No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount.
CIFS VFS: session b030a800 has no tcon available for a dfs referral request
CIFS VFS: cifs_mount failed w/return code = -22

Очевидно, версия должна быть явно объявлена, поэтому удаление этой опции не улучшило мои результаты.

Я также попробовал ntlm , ntlmssp и ntlmsspi протоколы аутентификации (опции, перечисленные в man mount.cifs, это ntlm, ntlmi, ntlmv2, ntlmv2i, ntlmssp, ntlmsspi)

Тестирование конфигурации сервера

Поскольку Windows Server 2016 явно не указывает где-либо в своей программе настройки, какая версия SMB используется, я использовал эту команду в PowerShell:

Get-SmbServerConfiguration | Select EnableSMB2Protocol

Возвращает True, что означает, что SMBv2.0 работает (но это не гарантирует, что более новая версия не работает, afaik).

Тестирование конфигурации SMB с smbclient

Я скачал smbclient для тестирования протокола SMB, чтобы исключить возможность ошибок конфигурации сети, вызывающих эту проблему.

sudo apt-get install smbclient

Затем я использовал опцию -L, чтобы перечислить все общие ресурсы («технически»), доступные через протокол SMB на сервере.

smbclient -L \\\\AASERVER-1 --user=AASERVER-1/Administrator%REDACTEDPASSWORD -W workgroup

Примечание: символы \ в '\\ AASERVER-1' должны быть экранированы для передачи в качестве аргументов, таким образом, \\ \\ в начале.

Он успешно подключается к серверу и отображает список «служб» (принтеры и папки, а также интерфейс межпроцессного взаимодействия IPC).

NFS:

Я также пытался подключиться через NFS, так как SMB не работает.

192.168.1.31:/  /home/pi/windowsshare  nfs  credentials=/home/pi/.smbcredentials,iocharset=ANSI  0  0

Я изменил utf8 на ANSI, потому что сервер NFS настроен на использование ANSI. Ошибка с сообщением об ошибке:

mount.nfs: an incorrect mount option was specified

dmesg В журнале не было ошибок.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

В вашем файле fstab есть ошибки.

//192.168.1.31/ /home/pi/windowsshare/  cifs  credentials=/home/pi/.smbcredentials,vers=2.0,sec=ntlm,iocharset=utf8  0  0

вам нужно указать долю. Если вы хотите поделиться своим целым диском c, укажите его так:

//192.168.1.31/c$ /home/pi/windowsshare cifs [options redacted]

Обратите внимание на «c $», сообщающее Samba о монтировании диска C из общего ресурса администратора. Добавьте несколько записей, если есть несколько дисков, которые вы хотите поделиться. Ваш файл учетных данных выглядит хорошо. Кроме того, чтобы общий ресурс c $ работал, учетная запись, используемая для монтирования общего ресурса, должна находиться в локальной группе администраторов на компьютере Windows.

Если было определенное имя общего ресурса, которое вы хотели бы увидеть, например, "myshare", замените "c $" на "myshare". У вас должно получиться уточнить SMB версии 3 вместо версии 2 для подключения к Server 2016.

0 голосов
/ 12 декабря 2018

Вы пробовали добавить vers=2.1?

У меня была похожая проблема, когда я сделал обновление на этой неделе при Redhat и CentOS обновлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...