Вопрос или проблема
Обмен файлами Samba “сканирует” при нажатии на вкладку сети, и это работает отлично, когда настройки рабочей группы совпадают с рабочей группой Windows.
workgroup = WORKGROUP
Это приемлемо для настольного компьютера, но когда я использую свой ноутбук и подключаюсь к многим сетям, я не вижу сетевые ресурсы, пока не обновлю эту строку с текущей рабочей группой. Я могу подключиться, если знаю имя хоста (например, smb://hostname).
ПК на Windows отображают все сети нормально. Есть ли способ настроить Samba так, чтобы она делала то же самое?
У меня нет прав администратора на какие-либо ресурсы, и вряд ли будет выбран то же самое имя для трех из них.
Да,
вы можете сделать это, запустив несколько экземпляров Samba с разными /etc/smb/smb.conf
файлами. Например, вы можете иметь файлы /etc/smb/smb.conf.homenet
и /etc/smb/smb.conf.worknet
с разными параметрами workgroup =
. После этого вы можете запустить их от имени root так:
service smb.homenet start
service smb.worknet start
Я, безусловно, что-то упустил, поэтому для получения дополнительной информации посмотрите:
Ответ или решение
Для настройки Samba с несколькими рабочими группами и обеспечения корректного отображения сетевых ресурсов в зависимости от подключения к различным сетям, рекомендуется использовать несколько инстансов Samba с разными конфигурационными файлами. Это позволит вам иметь уникальные настройки для каждой сети без необходимости постоянного редактирования одного файла конфигурации.
Вот шаги, которые помогут вам в этом процессе:
-
Создайте несколько файлов конфигурации:
Вам нужно создать несколько конфигурационных файлов для разных рабочих групп. Например, вы можете использовать следующие названия:
/etc/samba/smb.conf.homenet
/etc/samba/smb.conf.worknet
В каждом из этих файлов настройте
workgroup
в соответствии с конкретной сетью:-
Для домашней сети:
[global] workgroup = HOMENET ...
-
Для рабочей сети:
[global] workgroup = WORKNET ...
-
Настройте параметры запуска для каждого инстанса:
Чтобы запускать разные инстансы Samba с соответствующими конфигурациями, вам потребуется использовать параметр командной строки
-s
для указания нужного конфигурационного файла. Запуск может выглядеть так:smbd -s /etc/samba/smb.conf.homenet smbd -s /etc/samba/smb.conf.worknet
-
Запуск сервисов:
Если вы используете систему, поддерживающую управление сервисами Systemd, вы сможете создать отдельные юниты для каждого инстанса. Пример файла для юнита может выглядеть так:
-
/etc/systemd/system/smb.homenet.service
[Unit] Description=Samba Service for Home Network [Service] ExecStart=/usr/sbin/smbd -s /etc/samba/smb.conf.homenet PIDFile=/run/smbd-homenet.pid ... [Install] WantedBy=multi-user.target
-
Аналогично создайте файл для рабочей сети.
-
-
Запустите и активируйте службы:
После создания юнитов, запустите их:
sudo systemctl start smb.homenet.service sudo systemctl start smb.worknet.service
Чтобы они автоматически запускались при загрузке системы, выполните:
sudo systemctl enable smb.homenet.service sudo systemctl enable smb.worknet.service
-
Проверка работы:
Теперь при подключении к различным сетям вы сможете запускать соответствующий инстанс Samba, и при этом у вас будет доступ ко всем сетевым ресурсам, что облегчает работу с сетевыми папками без необходимости постоянного изменения конфигурации.
Для дополнительной информации и детальных настроек ознакомьтесь с документом по Множественным инстансам Samba.