Если вы используете Samba для организации общих файловых ресурсов, вы, вероятно, заметили, что в последних версиях Windows такие сервера больше не отображаются в сетевом окружении. Однако, они все еще работают при прямом подключении к ним. Это связано с тем, что Windows полностью отказалась от использования протокола SMB1 и больше не может обнаружить Samba по протоколу NetBIOS. Вместо этого, современные Windows системы используют протокол WSD (Web Services for Devices) для обнаружения устройств.
В этой статье я расскажу, как включить поддержку протокола WSD для вашего сервера Samba, чтобы он снова отображался в сетевом окружении современных Windows систем.
Для включения поддержки WSD вам потребуется установить пакет wsdd. Если вы используете Debian 12 или Ubuntu 22.04, то этот пакет уже присутствует в репозиториях. Однако, если вы используете другие версии систем, вам потребуется подключить репозиторий разработчиков, который поддерживает Debian 9-11 и Ubuntu 16.04-22.04.
Чтобы подключить репозиторий разработчиков, сначала скачайте и импортируйте ключ:
wget -O- https://pkg.ltec.ch/public/conf/ltec-ag.gpg.key | gpg --dearmour > /usr/share/keyrings/wsdd.gpg
Затем добавьте репозиторий:
echo "deb [signed-by=/usr/share/keyrings/wsdd.gpg] https://pkg.ltec.ch/public/ lsb_release -cs main" > /etc/apt/sources.list.d/wsdd.list
Обновите список пакетов и установите службу wsdd:
apt update apt install wsdd
Пакет будет автоматически добавлен в автозагрузку системы, и вам останется только запустить его и проверить его статус:
systemctl start wsdd systemctl status wsdd
По умолчанию служба работает на всех интерфейсах и протоколах. Если мы хотим изменить это поведение, то нужно добавить соответствующие опции в файл /etc/default/wsdd. В этом файле есть только одна допустимая опция:
WSDD_PARAMS="" В ней мы должны указать все необходимые параметры запуска в соответствии с документацией.
Например, если мы хотим ограничить работу службы только на интерфейсе ens33 и с использованием протокола IPv4, то добавим:
WSDD_PARAMS="--interface ens33 --ipv4only" Можно также использовать более краткую запись:
WSDD_PARAMS="-i ens33 -4" Краткая запись проще, но менее информативна. Поэтому рекомендуется придерживаться длинной записи в конфигурационном файле.
После внесения изменений в настройки службу нужно перезапустить:
systemctl restart wsdd Для нормальной работы службы также нужно разрешить входящие соединения для UDP 3702 и TCP 5357 в брандмауэре.
С со стороны Windows не требуется никаких дополнительных действий. Samba-серверы автоматически появятся в вашем сетевом окружении.
Очевидно, мы можем решить проблему видимости Samba-серверов в сети и сделать работу для обычных пользователей гораздо более удобной всего лишь установив один пакет.