====== Настройка отображения Linix-машины в сетевом окружении Windows ====== [[ http://wiki.mihanik.net/doku.php?id=операционные_системы:linux:работа_с_сетью:samba:настройка_отображения_linix-машины_в_сетевом_окружении_windows&do=export_pdf | Экспорт в PDF ]] ~~ODT~~ Дата создания: 2023/07/28 14:03 (C) mihanik ===== Дано ===== ПК под управлением ОС Linux семейства CentOS, Fedora, RHEL (Centos 7 и старше), который выполняет роль файлового сервера, и на котором настроен сетевой доступ к файлам посредством протокола **samba**. Предполагается, что изначально сервер настраивается по циклу моих статей о [[операционные_системы:linux:работа_с_сетью:samba:start|SAMBA]], и предыдущим шагом настройки был [[операционные_системы:linux:работа_с_сетью:samba:настройка_на_файловом_сервере_samba_анонимного_доступа_к_папке|"Настройка на сервере 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. ==== Шаг 0 ==== Открываем терминал. Все остальные команды будем выполнять в терминале. При помощи команды sudo su становимся суперпользователем **root**. ==== Шаг 1 ==== Настроим на нашем сервере возможность использования **NetBIOS** и **mDNS**. Сначала установим и запустим сервис **[[https://ru.wikipedia.org/wiki/Avahi|Avahi]]** Avahi во многом базируется на реализации протокола mDNS. yum -y install avahi avahi-tools avahi-ui-tools systemctl enable avahi-daemon systemctl start avahi-daemon systemctl status avahi-daemon И откроем порты **[[https://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B9_DNS|mDNS]]** в межсетевом экране firewall-cmd --permanent --add-service=mdns firewall-cmd --add-port=5353/udp --permanent firewall-cmd --add-port=53791/udp --permanent firewall-cmd --reload Также не забудем открыть в межсетевом экране порты **[[https://ru.wikipedia.org/wiki/NetBIOS|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 ==== Шаг 2 ==== Теперь установим и запустим **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. ==== PS. ==== Иногда при запуске **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 [[#top|⇑ Наверх ⇑]]