Вопрос или проблема
Я только что купил маршрутизатор ZTE F680, который использует сервер Samba 1.9. Я хочу поделиться USB-жестким диском через протокол SMB.
На маршрутизаторе диск правильно подключен, и путь к нему:
/mnt/usb3_1_1
Я отключил FTP-сервер. И включил сервис Samba. Пользователя и пароля нет. В маршрутизаторе не так много настроек.
С моего Windows 10 маршрутизатор найден в “Сети”. Я могу получить доступ к папке и видеть все файлы. Адрес выглядит примерно так:
//ROUTER/samba/usb3_1_1
Это подтверждает, что конфигурация маршрутизатора должна быть правильной.
Когда я запускаю свой компьютер с Ubuntu 16.04LTS, я пытаюсь смонтировать папку samba через терминал:
sudo mount -t cifs //192.168.1.254/samba/usb3_1_1 /mnt/smb/
И запрашивается пароль:
Password for root@//192.168.1.254/samba/usb3_1_1:
Какой бы пароль я ни ввел (пустой, случайный, от пользователя маршрутизатора и т.д.), всегда получается один и тот же результат. Папка смонтирована, но содержимое папки неправильное:
$ a b B B B C G L P S S
И если я попытаюсь перейти с помощью cd
в любую из этих папок, возникает ошибка, что папка не существует
. Конечно, если я изменю URL на неправильный, ничего не смонтируется.
Прежде всего, в Windows пароль не требуется, и все работает правильно. Также на моем компьютере с Ubuntu я могу подключаться к общим папкам Windows. Следовательно, не кажется, что на моем компьютере с Ubuntu чего-то не хватает. Ранее на моем старом маршрутизаторе (TP-Link) была аналогичная конфигурация, и она работала без проблем. Но теперь ни Ubuntu, ни Raspberry не могут к этому получить доступ.
Это проблема программного обеспечения маршрутизатора или проблема конфигурации Ubuntu/Raspberry?
Я предполагаю, что сервер Samba 1.9 на маршрутизаторе более или менее стандартный (но старый). Как я могу правильно подключиться, используя современный клиент SMB?
И почему я могу видеть некоторые недействительные папки в своей смонтированной папке? Это только проблема кодирования?
— ИЗМЕНЕНИЕ —
По крайней мере, с -o guest
при монтировании устройства, пароль не запрашивается.
У меня по-прежнему такая же проблема с тем же маршрутизатором ZTE F680 и Ubuntu 23.10. SMB-сервер, используемый этим маршрутизатором, похоже, является версией SMB1, которая по умолчанию не используется в Ubuntu (или Windows) из-за проблем с безопасностью.
Тем не менее, мы можем заставить использовать версию SMB1, добавив эти строки в файл /etc/samba/smb.conf.
client min protocol = NT1
ВАЖНО: используйте min, а не MAX!!
А также
client ntlmv2 auth = No
client lanman auth = Yes
Затем в командной строке я использую:
smbclient //192.168.1.1/samba -U samba
Пользователь может быть любым, но мы используем “samba” (как рекомендовано маршрутизатором ZTE), и когда запрашивается пароль, можно использовать что угодно, кроме “пустого”
Но снова папки отображаются неправильно (только 1 буква, в моем случае “u”), и вы можете получить к ним доступ.
Чтобы получить доступ через nautilus, перейдите в “Другие расположения” и внизу, под адресом сервера, добавьте:
smb://[email protected]/samba
Или в моем случае USB на маршрутизаторе называется USBSMB (изначально “samba_share”)
smb://samba@USBSMB/samba
Кто-нибудь продвинулся в этой теме?
Мне удалось подключиться.
В /etc/smb.conf я добавил:
[global]
client min protocol = NT1
Затем из терминала просто тест:
salva@HPV:~$ smbclient -L //192.168.1.1
Пароль для [WORKGROUP\salva]:
Sharename Type Comment
--------- ---- -------
samba Disk samba share dir
IPC$ IPC IPC Service (Samba Server)
Переподключение с использованием SMB1 для списка рабочей группы.
Server Comment
--------- -------
Workgroup Master
--------- -------
Затем я попытался смонтировать:
salva@HPV:~$ sudo mount //192.168.1.1/samba /mnt/
Пароль для root@//192.168.1.1/samba:
ошибка монтирования: Сервер внезапно закрыл соединение. Это может произойти, если сервер не поддерживает версию SMB, которую вы пытаетесь использовать. По умолчанию версия SMB недавно изменилась с SMB1 на SMB2.1 и выше. Попробуйте смонтировать с vers=1.0. ошибка монтирования(112): Хост недоступен. Обратитесь к странице руководства mount.cifs(8) (например, man mount.cifs) и сообщениям журнала ядра (dmesg) salv@HPV:~$
И, наконец, мне удалось:
sudo mount //192.168.1.1/samba /mnt/ -o vers=1.0
o vers=1.0 была окончательной ключевой командой !!
Ответ или решение
Вопрос о подключении к папке Samba на маршрутизаторе ZTE F680 через Ubuntu 16.04 LTS касается нескольких важных аспектов работы с протоколом SMB, особенно в контексте старой версии Samba 1.9. Давайте разберем процесс подключения и возможные проблемы, основываясь на предоставленной информации.
1. Подготовка к подключению
При использовании Samba на Ubuntu важно убедиться, что все необходимые пакеты установлены. Убедитесь, что у вас есть следующие пакеты:
sudo apt update
sudo apt install cifs-utils samba
2. Настройка конфигурации Samba
Поскольку ваш маршрутизатор использует устаревшую версию Samba, необходимо внести изменения в файл конфигурации Samba на вашем компьютере. Для этого откройте конфигурационный файл:
sudo nano /etc/samba/smb.conf
Добавьте следующие строки в раздел [global]
, чтобы настроить использование протокола SMB1:
client min protocol = NT1
client ntlmv2 auth = No
client lanman auth = Yes
Эти параметры позволят вашей системе взаимодействовать с устаревшим сервером Samba, который использует протокол SMB1.
3. Логин и монтирование
После настройки конфигурации вы можете использовать команду mount
для подключения к SMB-ресурсу. Ваша первоначальная команда не сработала, так как не были указаны параметры для использования гостевого доступа. Используйте следующую команду:
sudo mount -t cifs //192.168.1.254/samba/usb3_1_1 /mnt/smb -o guest
Здесь ключ -o guest
указывает на использование гостевого доступа, что корректно, поскольку в вашей конфигурации маршрутизатора не задано имя пользователя и пароль.
4. Проблемы с отображением файлов
Если после успешного подключения вы видите неправильно отображенные папки (например, только буквы), это может быть связано с проблемами кодировки или несовместимостью протоколов. Чтобы устранить это, попробуйте указать версию протокола при монтировании:
sudo mount -t cifs //192.168.1.254/samba/usb3_1_1 /mnt/smb -o guest,vers=1.0
5. Проверка соединения
Для проверки доступных ресурсов на сервере Samba вы также можете использовать команду smbclient
:
smbclient -L //192.168.1.254 -o guest
Это позволит вам увидеть доступные расшаренные ресурсы и проверить соединение.
6. Заключительные наблюдения
Если после выполнения всех шагов у вас все еще возникают проблемы, стоит обратить внимание на настройки маршрутизатора. Возможно, помимо версии Samba, есть ограничения на уровне сети, например, брандмауэр или фильтрация IP-адресов.
В заключение, вы успешно подключите свою USB-накопитель через Samba на маршрутизаторе ZTE F680 к Ubuntu 16.04 LTS, следуя вышеописанным шагам и рекомендациям. Эти действия позволят вам использовать старую версию протокола и обойти некоторые проблемы совместимости.