2.9.20.4.1 Настройка доступа к компьютеру по его сетевому имени
Предварительная подготовка — настройка локальной сети
Использование протокола mDNS на базе службы avahi-daemon
Активация службы avahi-daemon и настройка ОC
Проверка работы протокола mDNS
Использование протокола NetBIOS на базе winbind
Проверка работы протокола NetBIOS
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Рабочая станция
- Редакция ОС: Стандартная
- Версия ПО: avahi-daemon-0.8-21, avahi-tools-0.8-21, samba-4.19.9, samba-winbind-4.19.9, samba-dc-4.19.9
Для подключения к компьютеру или другому устройству в сети удобно использовать его сетевое имя, а не IP-адрес, который назначается автоматически посредством DHCP и изменяется со временем.
Задачу разрешения имён участников сети в их IP-адреса обычно выполняет централизованная служба DNS. Но в условиях простой одноранговой сети (без организации домена) сервер DNS может отсутствовать или использоваться только для разрешения имён, расположенных во внешней сети Интернет. Это затрудняет организацию и получение доступа к ресурсам и службам участников сети.
Для разрешения имён в локальной сети без настройки централизованного DNS-сервера можно задействовать протоколы:
-
mDNS (Multicast DNS)/DNS-SD (DNS Service Discovery) — актуален, поддерживается современными операционными системами и устройствами с сетевыми функциями (МФУ/сканеры/NAS-хранилища), обеспечивает публикацию сетевых служб, входит в состав набора технологий zeroconf;
-
NetBIOS (Network Basic Input/Output System) — используется реже, не поддерживает IPv6-адреса, ограничивает размер имени 15 символами.
Предварительная подготовка — настройка локальной сети
Настройка локальной сети без DNS-сервера заключается в создании уникальных сетевых имен компьютеров, организации общего доступа к файлам через Samba и настройки разрешения имен с помощью службы avahi-daemon или winbind.
1. Установите необходимые пакеты (потребуются права администратора):
sudo dnf install avahi-tools samba samba-winbind
2. Создайте уникальные сетевые имена хостов. В примере будут рассмотрены два компьтера с сетевыми именами my-computer-a и my-computer-b.
Для создания сетевого имени первого компьютера выполните команду в его терминале:
sudo hostnamectl set-hostname my-computer-a
Обновите файл /etc/hosts:
sudo nano /etc/hosts
В конце строки, которая начинается с 127.0.0.1, укажите задаваемое имя my-computer-a:
# Loopback entries; do not change.
# For historical reasons, localhost precedes localhost.localdomain:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 my-computer-a
Сохраните файл.
Для создания сетевого имени второго компьютера выполните команду в его терминале:
sudo hostnamectl set-hostname my-computer-b
Обновите файл /etc/hosts:
sudo nano /etc/hosts
В конце строки, которая начинается с 127.0.0.1, укажите задаваемое имя my-computer-b:
# Loopback entries; do not change.
# For historical reasons, localhost precedes localhost.localdomain:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 my-computer-b
Сохраните файл.
3. Запустите службу smb.service на обоих компьютерах:
sudo systemctl --now enable smb.service
4. Настройте разрешение имен.
Использование протокола mDNS/DNS-SD на базе службы avahi-daemon
Avahi-daemon — это системная служба, реализующая протоколы mDNS и DNS-SD. Служба позволяет устройствам и сервисам в локальной сети автоматически находить друг друга без участия администратора и без централизованного DNS-сервера. Avahi-daemon обеспечивает кешированное разрешение имен в IP-адреса. Также служба регистрирует в локальной сети адрес и mDNS-службы компьютера, на котором она запущена.
Avahi-daemon обеспечивает следующие возможности:
-
обращение к компьютеру по простому имени с суффиксом .local;
-
автоматический поиск сетевых устройств без дополнительных настроек;
-
обнаружение сетевых ресурсов — директорий, медиасерверов (DLNA) и других сервисов, открытых в общий доступ.
По умолчанию служба avahi-daemon прослушивает стандартный порт mDNS (5353/UDP) на всех доступных адресах для взаимодействия с другими участниками сети.
Основной файл конфигурации службы — /etc/avahi/avahi-daemon.conf.
Активация службы avahi-daemon и настройка ОC
Для организации взаимодействия и разрешения имен компьютеров и устройств в домене .local (RFC 6762) должны быть выполнены следующие условия:
1. Настройка службы avahi-daemon на обоих компьютерах с именами my-computer-a и my-computer-b
В операционной системе РЕД ОС служба avahi-daemon.service активирована по умолчанию.
Если по каким-либо причинам служба не настроена, активируйте ее командой (потребуются права администратора):
sudo systemctl --now enable avahi-daemon.service
Проверьте статус службы:
sudo systemctl status avahi-daemon.service
В статусе должно отображаться active (running).
2. Настройка профиля authselect для работы с mDNS на обоих компьютерах с именами my-computer-a и my-computer-b
В текущем профиле authselect должна быть включена функция with-mdns4 (with-mdns6). Данная функция обеспечивает настройку механизма разрешения имен хостов NSS (Name Service Switch) при использовании протокола mDNS.
2.1. Проверьте активность функции в текущем профиле authselect:
authselect current
Вывод команды:
Идентификатор профиля: local
Включенные функции:
- with-silent-lastlog
- with-fingerprint
- with-mdns4
2.2. При отсутствии записи with-mdns4 в выводе команды активируйте функцию вручную (потребуются права администратора):
sudo authselect enable-feature with-mdns4
2.3. Затем повторите команду authselect current. В ее выводе должна появиться запись with-mdns4.
Проверка работы протокола mDNS
После успешного запуска службы avahi-daemon и настройки authselect проверьте возможность разрешения имени хоста, на компьютере с именем my-computer-b выполните команду:
ping -n -c 2 my-computer-a.local
Вывод команды:
PING my-computer-a.local (192.0.2.1) 56(84) bytes of data.
64 bytes from 192.0.2.1: icmp_seq=1 ttl=64 time=0.210 ms
64 bytes from 192.0.2.1: icmp_seq=2 ttl=64 time=0.235 ms
--- my-computer-a.local ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1057ms rtt min/avg/max/mdev = 0.210/0.222/0.235/0.012 ms
В выводе команды должно отображаться сетевое имя компьютера (mу-computer-a) и его IP-адрес.
Когда команда ping запрашивает разрешение имени, система обращается к NSS. Если в конфигурации указан модуль mdns, NSS передаёт запрос ему. Модуль, в свою очередь, отправляет mDNS-запрос в локальную сеть и возвращает полученный IP-адрес.
Просмотр mDNS-служб, зарегистрированных в сети, возможен следующими способами:
-
из терминала командой:
gio list network://
Вывод команды:
dnssd-server-LOCALHOST._smb._tcp dnssd-server-MY-COMPUTER-A._smb._tcp dnssd-server-MY-COMPUTER-B._smb._tcp
-
через файловый менеджер Dolphin — для этого перейдите в раздел «Сеть» на левой боковой панели и откройте одну из директорий «Общие папки (SMB)» или «Сетевые службы»;
-
через файловый менеджер Caja или Nemo — для этого перейдите в раздел «Сеть» — «Просмотреть сеть» на левой боковой панели.
Для получения подробного вывода данных о службах mDNS, обнаруженных в сети, выполните команду:
avahi-browse -a -t -r
Вывод команды:
+ enp3s0 IPv6 MY-COMPUTER-B Microsoft Windows Network local + enp3s0 IPv6 LOCALHOST Microsoft Windows Network local + enp3s0 IPv6 MY-COMPUTER-A Microsoft Windows Network local + enp3s0 IPv4 MY-COMPUTER-B Microsoft Windows Network local + enp3s0 IPv4 LOCALHOST Microsoft Windows Network local + enp3s0 IPv4 MY-COMPUTER-A Microsoft Windows Network local + lo IPv4 MY-COMPUTER-B Microsoft Windows Network local + enp3s0 IPv6 LOCALHOST Device Info local = enp3s0 IPv6 LOCALHOST Microsoft Windows Network local hostname = [linux.local] address = [2001:db8::1] port = [0] txt = [] + enp3s0 IPv4 LOCALHOST Device Info local = enp3s0 IPv4 LOCALHOST Microsoft Windows Network local hostname = [linux.local] address = [192.0.2.1] port = [0] txt = [] = enp3s0 IPv6 LOCALHOST Device Info local hostname = [linux.local] address = [2001:db8::1] port = [0] txt = ["model=MacSamba"] = enp3s0 IPv4 LOCALHOST Device Info local hostname = [linux.local] address = [192.0.2.1]
port = [0] txt = ["model=MacSamba"] + enp3s0 IPv6 MY-COMPUTER-B Device Info local = enp3s0 IPv6 MY-COMPUTER-B Microsoft Windows Network local hostname = [my-computer-b.local] address = [2001:db8::1] port = [0] txt = [] + enp3s0 IPv4 MY-COMPUTER-B Device Info local = enp3s0 IPv4 MY-COMPUTER-B Microsoft Windows Network local hostname = [my-computer-b.local] address = [192.0.2.1]
port = [0] txt = [] + lo IPv4 MY-COMPUTER-B Device Info local = lo IPv4 MY-COMPUTER-B Microsoft Windows Network local hostname = [my-computer-b.local] address = [192.0.2.1]
port = [0] txt = [] = enp3s0 IPv6 MY-COMPUTER-B Device Info local hostname = [my-computer-b.local] address = [2001:db8::1] port = [0] txt = ["model=MacSamba"] = enp3s0 IPv4 MY-COMPUTER-B Device Info local hostname = [my-computer-b.local] address = [192.0.2.1]
port = [0] txt = ["model=MacSamba"] = lo IPv4 MY-COMPUTER-B Device Info local hostname = [my-computer-b.local] address = [192.0.2.1]
port = [0] txt = ["model=MacSamba"] + enp3s0 IPv4 Passim-4DA6 _cache._tcp local = enp3s0 IPv4 Passim-4DA6 _cache._tcp local hostname = [linux-6.local] address = [192.0.2.1]
port = [0] txt = [] + enp3s0 IPv6 MY-COMPUTER-A Device Info local = enp3s0 IPv6 MY-COMPUTER-A Microsoft Windows Network local hostname = [my-computer-a.local] address = [2001:db8::1] port = [0] txt = [] + enp3s0 IPv4 MY-COMPUTER-A Device Info local = enp3s0 IPv4 MY-COMPUTER-A Microsoft Windows Network local hostname = [my-computer-a.local] address = [192.0.2.1]
port = [0] txt = [] = enp3s0 IPv6 MY-COMPUTER-A Device Info local hostname = [my-computer-a.local] address = [2001:db8::1] port = [0] txt = ["model=MacSamba"] = enp3s0 IPv4 MY-COMPUTER-A Device Info local hostname = [my-computer-a.local] address = [192.0.2.1]
port = [0] txt = ["model=MacSamba"]
Использование протокола NetBIOS на базе winbind
Предоставление данных NSS для локального разрешения имён компьютеров и устройств обеспечивает служба winbind из состава пакета samba-winbind.
Поддержку клиента, ответчика протокола NetBIOS-NS, а также выполнение роли сервера WINS обеспечивает служба nmb из состава пакета samba.
В примере в качестве клиента выступает компьютер с именем my-computer-a, а в качестве сервера — компьютер с имемем my-computer-b.
1. Настройка службы winbind
Активируйте службу на обоих компьютерах с именами my-computer-a и my-computer-b:
sudo systemctl --now enable winbind
Проверьте статус службы:
sudo systemctl status winbind
В статусе должно отображаться active (running).
2. Настройка профиля authselect для работы с NetBIOS
Разрешение NetBIOS-имён требует настройки базы hosts в файле конфигурации NSS /etc/nsswitch.conf. Прямое редактирование этого файла не рекомендуется в целях избежания автоматической перезаписи конфигурации в соответствии со стандартным профилем. Подробнее см. в нашей инструкции «Настройка системной аутентификации с помощью authselect».
2.1. Определите идентификатор профиля (пользовательский или системный) на обоих компьютерах с именами my-computer-a и my-computer-b:
authselect current
Вывод команды:
Идентификатор профиля: custom/local-nbios
Включенные функции:
- with-mdns4
Если в идентификаторе присутствует custom (профиль является пользовательским), то следующий пункт необходимо пропустить.
2.2. Создайте пользовательский профиль на базе текущего профиля local, используя его идентификатор в команде на обоих компьютерах с именами my-computer-a и my-computer-b:
-
определите идентификатор профиля:
authselect current
Вывод команды:
Идентификатор профиля: local Включенные функции: - with-mdns4 -
создайте пользовательский профиль командой:
sudo authselect create-profile local-nbios --base-on=local
Вывод команды:
Новый профиль создан в /etc/authselect/custom/local-nbiosгде:
- local-nbios — имя профиля;
- custom/local-nbios — идентификатор профиля;
- /etc/authselect/custom/local-nbios — директория профиля.
2.3. Пользовательские профили располагаются в директории /etc/authselect/custom/.
В примере используется профиль с именем local-nbios.
Откройте конфигурационный файл /etc/authselect/custom/local-nbios/nsswitch.conf пользовательского профиля:
sudo nano /etc/authselect/custom/local-nbios/nsswitch.conf
2.4. В строке, начинающейся с hosts, вставьте параметр wins до параметра resolve на обоих компьютерах с именами my-computer-a и my-computer-b:
# In order of likelihood of use to accelerate lookup. passwd: files {if "with-altfiles":altfiles }systemd shadow: files group: files {if "with-altfiles":altfiles }systemd hosts: <nimal [NOTFOUND=return] }{if not "with-mdns4" and "with-mdns6":mdns6_minimal [NOTFOUND=return] } wins resolve [!UNAVAIL=return] dns services: files netgroup: files automount: files aliases: files ethers: files gshadow: files networks: files dns protocols: files publickey: files rpc: files
Сохраните файл.
2.5. Переключитесь на новый профиль custom/local-nbios, если он был создан на базе текущего, на обоих компьютерах с именами my-computer-a и my-computer-b выполните команду:
sudo authselect select custom/local-nbios with-mdns4
Вывод команды:
Выбран профиль «custom/local-nbios».
Если новый профиль authselect не создавался, а редактировался текущий, то примените изменения в нём:
sudo authselect apply-changes
Вывод команды:
Изменения успешно применены.
2.6. Активируйте службу nmb, на обоих компьютерах с именами my-computer-a и my-computer-b выполните команду:
sudo systemctl --now enable nmb
2.7. Проверьте статус службы на обоих компьютерах:
sudo systemctl status nmb
В статусе должно отображаться active (running).
Проверка работы протокола NetBIOS
Проверьте возможность разрешения имени компьютера в сети. В терминале компьютера с именем my-computer-b выполните команду:
ping -n -c 2 my-computer-a
Вывод команды:
PING my-computer-a (192.0.2.1) 56(84) bytes of data.
64 bytes from 192.0.2.1: icmp_seq=1 ttl=64 time=0.315 ms
64 bytes from 192.0.2.1: icmp_seq=2 ttl=64 time=0.491 ms
--- my-computer-a ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1016ms rtt min/avg/max/mdev = 0.315/0.403/0.491/0.088 ms
где my-computer-a — сетевое имя клиента, на котором сконфигурирован ответчик NetBIOS (клиент на базе ОС Windows или Linux-клиент с активной службой nmb).
Дата последнего изменения: 21.05.2026
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.