Вопрос или проблема
Я читал, что это может быть своего рода ошибка. У меня есть 2 samba файловых сервера: mint-satellite и ubuntu-andres. Я не могу к ним получить доступ, когда дважды щелкаю, я не могу получить доступ, когда пишу в “Перейти к”: smb://ubuntu-andres
, но я могу получить доступ, когда пишу smb://ubuntu-andres/share
. Другой сервер имеет ту же конфигурацию и работает правильно, к нему может подключиться каждая машина. Вот мой smb.conf с серверов:
[share]
Комментарий = общая папка
Путь = /share
Обозреваемая = да
Записываемая = да
только гость = нет
маска создания = 0777
маска каталога = 0777
Общий = да
Гость разрешен = да
Правка: Это может быть подсказкой, они повторяются, но я не помню, что я сделал или какой сервис я запустил, это скриншот ubuntu-andres (файловый сервер с проблемой):
Правка3: Проблема, похоже, связана с linux-устройствами, ко всем машинкам с windows я могу подключиться, когда пишу \\ubuntu-andres
.
Ну, я думаю, что это ошибка, “Ошибка недопустимого аргумента предоставлена вам добрыми людьми из Gnome High Command, когда они создали ошибку в gvfsd-smb-browse. Клиент пытается получить доступ к серверу с диалектом SMB1 samba, когда на сервере такого диалекта нет.” https://forums.linuxmint.com/viewtopic.php?t=333753&start=20
Возможно, добавление WS-Discovery решит эту проблему. Смотрите этот отчет о баге для получения дополнительной информации: https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1831441. Вот возможное решение из этого отчета:
Windows 10 отключает диалект клиента smbv1 в новых сборках, и это, в свою очередь, отключает обнаружение хостов NetBIOS в его Диспетчере файлов. Настроенный таким образом Win10 никогда не сможет просматривать сеть и обнаруживать Linux Samba сервер. С добавлением WSD в Ubuntu Win10 обнаружит Linux Samba сервер, используя его родной WSD протокол.
Существует на github нечто, что уже имеет большую часть этого созданной. Можно использовать это в Ubuntu, но для реализации потребуется немного труда:
[1] Скачайте файл:
wget https://github.com/christgau/wsdd/archive/master.zip
[2] После распаковки измените имя python-скрипта:
sudo mv wsdd-master/src/wsdd.py wsdd-master/src/wsdd
[3] Скопируйте его в /usr/bin
sudo cp wsdd-master/src/wsdd /usr/bin
[4] Файл службы systemd уже предоставлен в пакете, его просто нужно скопировать в правильное место:
sudo cp wsdd-master/etc/systemd/wsdd.service /etc/systemd/system
[5] Файл wsdd.service необходимо отредактировать, чтобы удалить ссылки на пользователя nobody:
#User=nobody
#Group=nobody[6] Затем включите службу:
sudo systemctl daemon-reload sudo systemctl start wsdd sudo systemctl
enable wsdd
Ответ или решение
Ошибка "Invalid argument" при доступе к сети через Nautilus
Ошибка "Invalid argument", возникающая при попытке доступа к сети через Nautilus, может быть следствием нескольких проблем, связанных с конфигурацией Samba и клиента, используемого для подключения. Данная проблема часто проявляется при попытке открыть общий доступ к файловым серверам на базе Samba (как в вашем случае с серверами mint-satellite и ubuntu-andres).
Описание проблемы
Как вы упомянули, вы не можете получить доступ к серверу ubuntu-andres
, используя адрес smb://ubuntu-andres
, в то время как доступ через smb://ubuntu-andres/share
проходит успешно. На другом сервере с аналогичной конфигурацией нет подобных проблем, что указывает на то, что причина, вероятнее всего, кроется в настройках сервера или клиента.
Ниже приведены некоторые ключевые аспекты, которые стоят в внимании для диагностики и устранения указанной проблемы.
Возможные причины
-
Неправильная конфигурация Samba:
- Проверка конфигурационного файла
/etc/samba/smb.conf
на наличие ошибок в секциях, например, в разделе[global]
. Убедитесь, что параметрыworkgroup
,server string
, и другие соответствуют вашим требованиям.
- Проверка конфигурационного файла
-
Версия протокола SMB:
- Ваша ошибка может быть связана с использованием устаревшего протокола SMB1. Как упоминается в серверных форумах, GNOME использует gvfsd-smb-browse для доступа к серверам, и если сервер не поддерживает SMB1, это может вызвать ошибку "Invalid argument". Проверьте, активирована ли поддержка новых версий протокола, таких как SMB2 или SMB3.
-
Проблемы с обнаружением сетевых устройств:
- Windows может эффективно использовать WS-Discovery для обнаружения сетевых серверов, однако по умолчанию Linux-системы могут не поддерживать это. Использование WSD может значительно улучшить совместимость с Windows.
Решение
-
Обновление конфигурации Samba:
- Попробуйте включить поддержку SMB2 или SMB3, добавив в
smb.conf
следующие строки в раздел[global]
:[global] server min protocol = SMB2 server max protocol = SMB3
- Попробуйте включить поддержку SMB2 или SMB3, добавив в
-
Установка WSD (Web Services on Devices):
- Если проблема действительно связана с обнаружением, установка WSD на вашу машину Ubuntu может помочь.
- Следуйте инструкциям из вашего сообщения для установки WSD, чтобы ваши Linux-системы могли находить Samba-серверы в сети:
- Скачайте скрипт:
wget https://github.com/christgau/wsdd/archive/master.zip
- Разархивируйте и скопируйте скрипт в
/usr/bin
:sudo apt install unzip unzip master.zip sudo mv wsdd-master/src/wsdd.py wsdd-master/src/wsdd sudo cp wsdd-master/src/wsdd /usr/bin
- Убедитесь, что службы включены:
sudo systemctl daemon-reload sudo systemctl start wsdd sudo systemctl enable wsdd
- Скачайте скрипт:
-
Проверка статуса службы Samba:
- Убедитесь, что служба Samba запущена и работает корректно:
sudo systemctl status smbd
- Убедитесь, что служба Samba запущена и работает корректно:
Заключение
Ошибка "Invalid argument" при попытке доступа к Samba-серверу может быть вызвана неправильной конфигурацией, несовместимой версией протокола или ограничениями на стороне клиента. Существует несколько шагов, которые можно предпринять для ее устранения, включая обновление конфигурации Samba и внедрение WS-Discovery. Если после выполнения всех вышеуказанных шагов проблема не устранена, стоит также рассмотреть возможность обращения в сообщества поддержки Linux и Samba, где могут предложить дополнительные решения.