Ubuntu

Как просматривать машины Linux из сети Windows 10 с помощью службы WSD

В этом руководстве мы установим службу WSD на Ubuntu, которая позволит компьютерам с Windows 10 видеть другие компьютеры с Ubuntu и общие ресурсы Samba в проводнике Windows.

ADVERTISEMENT

Это руководство предназначено для пользователей Windows 10, которые не видят другие компьютеры Ubuntu в проводнике Windows, но могут получить к ним прямой доступ по сетевому пути, используя имя хоста (\\hostname\share) или IP (\\192.168.1.10\share).

ADVERTISEMENT

Вам потребуются привилегии sudo на компьютере с Ubuntu для установки службы wsdd.

Вы также должны убедиться, что Samba уже установлена и работает в Ubuntu. Вы можете узнать, проверив сервис с помощью:

sudo systemctl status smbd

Если не установлен, установите с помощью:

sudo apt update && sudo apt install samba
Также убедитесь, что у вас есть хотя бы одна расшаренная папка в Ubuntu.

Проблема с Ubuntu 22.04 и сетевым обнаружением Windows 10

SMB 1.0 (SMBv1)

Несколько руководств и видеороликов на YouTube, предлагают вручную включить SMB 1.0 в Windows 10, чтобы сделать другие машины Ubuntu видимыми в проводнике Windows. Хотя это может работать в более старых выпусках Windows 10, это не рекомендуется из-за последствий для безопасности.

От Майкрософт:

“Hi folks, Ned here again and today’s topic is short and sweet: Stop using SMB1. Stop using SMB1 . STOP USING SMB1!” source

В Windows 10 версии 1511 поддержка SMBv1 и, следовательно, обнаружение устройств NetBIOS были отключены по умолчанию. В зависимости от фактического выпуска, более поздние версии Windows, начиная с версии 1709 («Fall Creators Update»), больше не позволяют устанавливать клиент SMBv1.

Это приводит к тому, что хосты, на которых работает Samba, не отображаются в резделе «Сетевое окружение» проводника. Хотя проблем с подключением нет и Samba по-прежнему будет работать нормально, пользователи могут захотеть, чтобы их хосты Samba автоматически отображались в списке Windows.

mDNS

Ubuntu 22.04 автоматически регистрирует ваш сервер samba в остальной части сети, используя mDNS (Avahi). Все другие машины Linux, а также macOS могут автоматически обнаружить эту регистрацию.

Причина, по которой Windows 10 не может обнаружить сетевые ресурсы Ubuntu, заключается в том, что, Windows может использовать mDNS, но не знает, как автоматически сканировать сеть на их наличие.

WSD

Веб-службы для устройств (WSD) — это API Microsoft, позволяющий программировать подключения к устройствам с поддержкой веб-служб, таким как принтеры, сканеры и общие файловые ресурсы. Он служит заменой старых сетевых функций Windows, таких как NetBIOS.

С добавлением службы WSD в Ubuntu Windows 10 обнаружит сервер Linux Samba, используя собственный протокол WSD.

Почему Ubuntu изначально не поддерживает WSD?

Эта проблема поднималась в системе отслеживания ошибок Samba с 2015 года. Так что может случиться так, что эта функция будет интегрирована в Samba в будущем. Но пока мы должны вручную установить патч самостоятельно.

Установка WSD в Ubuntu

wsdd — это сервис от christgau на GitHub, который реализует хост-демон Web Service Discovery для Ubuntu. Это позволяет клиентам обнаружения веб-служб, таким как Windows 10, находить хосты Samba.

Перейдите в каталог /tmp

cd /tmp

Скачайте и разархивируйте архив

wget https://github.com/christgau/wsdd/archive/master.zip
unzip master.zip

Переименуйте wsdd.py в wsdd

sudo mv wsdd-master/src/wsdd.py wsdd-master/src/wsdd

Скопируйте в /usr/bin

sudo cp wsdd-master/src/wsdd /usr/bin

Скопируйте wsdd в /etc/systemd/system

sudo cp wsdd-master/etc/systemd/wsdd.service /etc/systemd/system

Откройте wsdd.service в nano и закомментируйте User=nobody и Group=nobody с помощью ; точка с запятой.

sudo nano /etc/systemd/system/wsdd.service
[Unit]
Description=Web Services Dynamic Discovery host daemon
Documentation=man:wsdd(8)
; Start after the network has been configured
After=network-online.target
Wants=network-online.target
; It makes sense to have Samba running when wsdd starts, but is not required.
; Thus, the next to lines are disabled and use BindsTo only.
; One may also add any of these services to After for stronger binding.
;BindsTo=smb.service
;BindsTo=samba.service

[Service]
Type=simple
;EnvironmentFile=/etc/default/wsdd
; The service is put into an empty runtime directory chroot,
; i.e. the runtime directory which usually resides under /run
;ExecStart=/usr/bin/wsdd --shortlog --chroot=/run/wsdd $WSDD_PARAMS
ExecStart=/usr/bin/wsdd --shortlog
;DynamicUser=yes
; User=nobody 
; Group=nobody
;RuntimeDirectory=wsdd
;AmbientCapabilities=CAP_SYS_CHROOT

[Install]
WantedBy=multi-user.target

Сохраните и выйдите (нажмите CTRL + X, нажмите Y, а затем нажмите ENTER)
Перезагрузите

sudo systemctl daemon-reload

Запустите и включите wsdd

sudo systemctl start wsdd
sudo systemctl enable wsdd

Должно получится так:

Created symlink /etc/systemd/system/multi-user.target.wants/wsdd.service → /etc/systemd/system/wsdd.service.

Теперь проверьте, запущена ли служба

sudo service wsdd status

Вывод:

 wsdd.service - Web Services Dynamic Discovery host daemon
     Loaded: loaded (/etc/systemd/system/wsdd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-09-06 20:52:23 EEST; 9h ago
       Docs: man:wsdd(8)
   Main PID: 762 (python3)
      Tasks: 1 (limit: 6909)
     Memory: 17.7M
        CPU: 300ms
     CGroup: /system.slice/wsdd.service
             └─762 python3 /usr/bin/wsdd --shortlog

Sep 06 20:52:23 homeserver systemd[1]: Started Web Services Dynamic Discovery host daemon.
Sep 06 20:52:25 homeserver wsdd[762]: WARNING: no interface given, using all interfaces

Теперь Вы сможете просматривать свои машины Ubuntu и общие ресурсы Samba в проводнике Windows 10. Возможно, вам придется перезагрузить компьютеры с Windows 10, чтобы принудительно обнаружить их.

Вы также можете перезагрузить сервер Ubuntu, чтобы убедиться, что служба wsdd запускается автоматически без проблем.

homeserver

Как удалить wsdd

Если вы хотите полностью удалить wsdd, остановите и отключите службу

sudo systemctl stop wsdd
sudo systemctl disable wsdd

Удалите wsdd из /usr/bin

sudo rm /usr/bin/wsdd

Удалить файл службы

sudo rm /etc/systemd/system/wsdd.service

Source
devanswers.co
ADVERTISEMENT
Подписаться
Уведомить о
guest

0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии