Тема: [RedHat-like] WS-Discovery (WSD) та AVAHI для легшого пошуку SAMBA
Все доволі просто.
Почнемо з WSD.
Встановлюємо.
# dnf -y install wsdd
Додаємо нову службу ws-discovery для firewalld, спочатку створивши файл ws-discovery.xml з вмістом:
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>WSD</short>
<description>Web Services Dynamic Discovery (WS-Discovery) is a multicast discovery protocol to locate services on a local network. The component WSDMON in Windows 7 and later uses WS-Discovery to automatically discover WSD-enabled network printers, which show in Network in Windows Explorer, and can be installed by double-clicking on them. In Windows 8 or later installation is automatic.</description>
<port protocol="tcp" port="3702"/><!-- ws-discovery -->
<port protocol="udp" port="3702"/><!-- ws-discovery -->
<port protocol="tcp" port="5357"/><!-- wsdapi -->
<port protocol="udp" port="5357"/><!-- wsdapi -->
</service>
Потім активувавши його:
# firewall-cmd --permanent --new-service-from-file=ws-discovery.xml
Додавши до активної зони, в моєму випадку public:
# firewall-cmd --zone=public --add-service=ws-discovery --permanent && firewall-cmd --reload
Потім wsdd вказуємо опцію імені хоста, має збігатися із зазначеною в smb.conf та hostnamectl, насправді ця опція необов'язкова, але якщо у вас smb.conf розбито на кілька файлів чи використовуєте щось на зразок cockpit-file-sharing який використовує збереження конфіга в registry, то треба так як wsdd не знайде строку в файлі конфіга, тож в /etc/sysconfig/wsdd треба замінити строку:
OPTIONS=""
На строку:
OPTIONS="--interface eno1 --hoplimit 1 --ipv4only --workgroup WORKGROUP --hostname HOSTNAME"
де HOSTNAME це ім'я машини прописане в smb.conf та hostnamectl, WORKGROUP це ім'я групи в якій перебуває машина, eno1 назва мережевого інтерфейсу який слухати.
Запускаємо і ставимо в автозапуск:
# systemctl start wsdd && systemctl enable wsdd
Вітаю, тепер Windows 7 && 8 && 10 && 11 буде знаходити вашу машину з samba без встановлення компонента SMBv1.
Переходимо до Avahi.
Встановлюємо.
# dnf -y install avahi
Якщо у машини наявно більше одного мережевого інтерфейсу (байдуже чи підключенні) то дивимося як називається той який використовуємо, наприклад цією командою:
# ifconfig
Йдемо прописуємо його в /etc/avahi/avahi-daemon.conf додавши строку:
allow-interfaces=eno1
Де eno1 в моєму прикладі ім'я інтерфейсу.
Додаємо сервіс в firewalld відповідно в активну зону:
# firewall-cmd --zone=public --add-service=mdns --permanent && firewall-cmd --reload
де в моєму прикладі активною зоною є public.
Потім запускаємо та додаємо в автозапуск:
# systemctl start avahi-daemon && systemctl enable avahi-daemon
Прописувати сервіс samba в avahi потреби немає, звісно якщо у вас в конфігураційному файлі samba немає строки:
multicast dns register = no
Вітаю, тепер продукція apple буде легко знаходити вашу машину з samba.