ПК под управлением ОС Linux семейства CentOS, Fedora, RHEL (Centos 7 и старше), который выполняет роль файлового сервера, и на котором настроен сетевой доступ к файлам посредством протокола samba.
Добиться того, чтобы файловый сервер отображался в сетевом окружении ПК, работающих под управлением ОС Windows.
SAMBA - это протокол, который используют компьютеры, которые работают под управлением ОС Windows. Ранние версии ОС Windows по умолчанию используют протокол SMB1, более поздние SMB2, SMB3, SMB 4… Самое интересное, что от версии к версии samba менялся механизм обнаружения компьютеров в локальной сети.
В младших версиях (Windows XP, Windows 7 и т.п.) по умолчанию использовался протокол SMB1, соответственно, для обнаружения компьютеров в сети использовался NetBIOS и mDNS. В более старших версиях использование использование NetBIOS и mDNS не приветствуется, поэтому Microsoft перешёл на использование WSD.
Веб-службы для устройств (WSD) — это API Microsoft, позволяющий программировать подключения к устройствам с поддержкой веб-служб, таким как принтеры, сканеры и общие файловые ресурсы. Он служит заменой старых сетевых функций Windows, таких как NetBIOS.
Мы постараемся настроить наш сервер так, чтобы он отображался в сетевом окружении компьютеров, которые работают под управлением ОС Windows от XP до 10.
Открываем терминал.
При помощи команды
sudo su
становимся суперпользователем root.
Настроим на нашем сервере возможность использования NetBIOS и mDNS.
Сначала установим и запустим сервис Avahi
yum -y install avahi avahi-tools avahi-ui-tools systemctl enable avahi-daemon systemctl start avahi-daemon systemctl status avahi-daemon
И откроем порты mDNS в межсетевом экране
firewall-cmd --permanent --add-service=mdns firewall-cmd --add-port=5353/udp --permanent firewall-cmd --add-port=53791/udp --permanent firewall-cmd --reload
Также не забудем открыть в межсетевом экране порты NetBIOS
firewall-cmd --add-port=137/tcp --permanent firewall-cmd --add-port=138/tcp --permanent firewall-cmd --add-port=139/tcp --permanent firewall-cmd --add-port=137/udp --permanent firewall-cmd --add-port=138/udp --permanent firewall-cmd --add-port=139/udp --permanent firewall-cmd --reload
Теперь установим и запустим WSD.
yum -y install wsdd systemctl enable wsdd.service systemctl start wsdd.service systemctl status wsdd.service
Не забудем открыть порты, которые использует WSD
firewall-cmd --add-port=3702/udp --permanent firewall-cmd --add-port=5357/tcp --permanent firewall-cmd --reload
Это всё. Теперь ваш файловый сервер должен отображаться в сетевом окружении Windows.
Иногда при запуске wsdd.service может появится ошибка:
systemctl start wsdd.service Job for wsdd.service failed because of unavailable resources or another system error. See "systemctl status wsdd.service" and "journalctl -xeu wsdd.service" for details.
Вопрос решается просто, - нужно создать отсутствующий файл wsdd в папке /etc/default.
touch /etc/default/wsdd
В описании юнита wsdd.service используется переменная EnvironmentFile со следующим значением
EnvironmentFile=/etc/default/wsdd