Подробный гайд: Настройка разрешения имён и статических IP-адресов - Часть 2

Подробный гайд по настройке статических IP-адресов и локального разрешения сетевых имен через DNS, файл hosts и DHCP-резервирование.

2026.09.12                  


Подробный гайд: Настройка разрешения имён и статических IP-адресов - Часть 2Подробный гайд: Настройка разрешения имён и статических IP-адресов - Часть 2

10. Когда hosts подходит, а когда нужен локальный DNS

hosts подходит, если:

  • у вас 1–2 устройства;
  • нужно имя только на одном компьютере;
  • сеть небольшая и редко меняется;
  • нужно быстро проверить работу имени.

Локальный DNS нужен, если:

  • устройств много;
  • имена должны работать для всех клиентов сети;
  • есть серверы, NAS, принтеры;
  • нужно централизованно управлять именами;
  • нужно использовать внутренний домен, например lan, home, office.



11. Настройка локального DNS-сервера

Локальный DNS-сервер позволяет всем устройствам в сети разрешать внутренние имена.

Например:

server.lan  → 192.168.1.50
nas.lan     → 192.168.1.60
printer.lan → 192.168.1.70

Популярные варианты:

dnsmasq
Unbound
Pi-hole
AdGuard Home

Для простых сетей чаще всего удобен dnsmasq.


12. Настройка dnsmasq

12.1. Установка

Debian/Ubuntu:

sudo apt update
sudo apt install dnsmasq

RHEL-подобные системы:

sudo dnf install dnsmasq

или:

sudo yum install dnsmasq

12.2. Основной файл конфигурации

Обычно это:

/etc/dnsmasq.conf

Можно создать отдельный файл:

sudo nano /etc/dnsmasq.d/local.conf

12.3. Пример: только локальные имена без DHCP

Если DHCP раздаёт роутер, а dnsmasq используется только для имён:

listen-address=192.168.1.1
bind-interfaces

domain=lan
local=/lan/

address=/server.lan/192.168.1.50
address=/nas.lan/192.168.1.60
address=/printer.lan/192.168.1.70

12.4. Пример: dnsmasq как DHCP и DNS

Если сервер должен раздавать адреса и имена:

interface=eth0
bind-interfaces

domain=lan
local=/lan/
expand-hosts

dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,12h
dhcp-authoritative

dhcp-option=6,192.168.1.1

dhcp-host=52:54:00:aa:bb:cc,192.168.1.50,server

address=/server.lan/192.168.1.50
address=/nas.lan/192.168.1.60
address=/printer.lan/192.168.1.70

Где:

dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,12h

означает:

Выдавать адреса с 192.168.1.100 по 192.168.1.200
Маска 255.255.255.0
Срок аренды 12 часов

Строка:

dhcp-host=52:54:00:aa:bb:cc,192.168.1.50,server

означает:

Устройство с MAC 52:54:00:aa:bb:cc всегда получает 192.168.1.50 и имя server

12.5. Проверка конфигурации

sudo dnsmasq --test

Ожидаемый вывод примерно такой:

syntax check OK

12.6. Перезапуск службы

sudo systemctl restart dnsmasq

Проверка статуса:

sudo systemctl status dnsmasq

13. Настройка DNS-записей в Unbound

Unbound — полноценный рекурсивный DNS-сервер. Подходит, если нужен отдельный локальный DNS без лишних функций.

Пример файла конфигурации:

sudo nano /etc/unbound/unbound.conf.d/lan.conf

Пример:

server:
    interface: 0.0.0.0
    access-control: 192.168.1.0/24 allow
    domain-insecure: "lan"

local-zone: "lan." static

local-data: "server.lan A 192.168.1.50"
local-data: "nas.lan A 192.168.1.60"
local-data: "printer.lan A 192.168.1.70"

Проверка конфигурации:

sudo unbound-checkconf

Перезапуск:

sudo systemctl restart unbound

Проверка:

dig @192.168.1.50 server.lan

или:

nslookup server.lan 192.168.1.50

14. Настройка разрешения имён через mDNS

mDNS позволяет использовать имена вида:

server.local
nas.local
printer.local

Часто используется в домашних сетях, в Linux через Avahi, в macOS через Bonjour.

Linux

Установить:

sudo apt install avahi-daemon

или:

sudo dnf install avahi

Включить:

sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon

Проверка имени:

hostnamectl

Например, если имя хоста:

server

то устройство может быть доступно как:

server.local

Проверка:

ping -c 3 server.local

Важно про .local

Зона .local зарезервирована для mDNS.

Если вы используете внутренний домен, лучше выбрать другой вариант:

lan
home
office
corp.lan
internal

Примеры имён:

server.lan
nas.lan
printer.office

15. Настройка клиентских устройств на использование локального DNS

Чтобы клиенты использовали ваш локальный DNS, они должны получать его адрес.

15.1. Если DNS раздаёт роутер

В DHCP-настройках роутера укажите:



DNS Server: 192.168.1.1

или адрес вашего локального DNS-сервера:

DNS Server: 192.168.1.50

15.2. Если DNS раздаёт dnsmasq

В dnsmasq это может выглядеть так:

dhcp-option=6,192.168.1.1

или, если DNS-сервер сам сервер:

dhcp-option=6,192.168.1.50

15.3. Вручную на клиенте

На клиентском компьютере можно указать DNS вручную:

192.168.1.1

или:

192.168.1.50

16. Приоритет разрешения имён

Когда компьютер пытается найти имя, обычно используется такой порядок:

1. Локальное имя хоста
2. Файл hosts
3. DNS
4. mDNS, если настроен

На практике порядок может немного отличаться в зависимости от ОС.

Важно помнить:

Файл hosts обычно имеет приоритет над DNS.

Это удобно для тестирования, но может мешать, если старая запись осталась на одном компьютере.


17. Проверка настройки

17.1. Проверка IP-адреса

Windows

ipconfig /all

Linux

ip addr show

или:

ip -brief addr show

Роутер

Смотрите список клиентов:

DHCP Clients
LAN Status
Connected Devices

17.2. Проверка маршрута

Windows

route print

Linux

ip route show

Пример нормального вывода:

default via 192.168.1.1 dev eth0

17.3. Проверка связи по IP

Windows

ping 192.168.1.50

Linux

ping -c 4 192.168.1.50

17.4. Проверка связи по имени

Windows

ping server.lan
nslookup server.lan

Указать конкретный DNS:

nslookup server.lan 192.168.1.1

Linux

ping -c 3 server.lan
getent hosts server.lan
dig @192.168.1.1 server.lan
dig @192.168.1.1 server.lan +short

Если ответ:

192.168.1.50

значит разрешение имён работает.


18. Как проверить, какой DNS используется

Windows

ipconfig /all

Смотрите:

DNS-серверы

или:

nslookup

Затем:

server

Команда покажет DNS-сервер, который используется по умолчанию.

Linux

resolvectl status

или:

systemd-resolve --status

Также можно посмотреть:

cat /etc/resolv.conf

Но в современных системах с systemd-resolved файл /etc/resolv.conf может быть служебным, поэтому надёжнее использовать:

resolvectl status

19. Настройка имени хоста

Имя хоста — это имя самого компьютера или сервера.

19.1. В Linux

Посмотреть:

hostnamectl

Изменить:

sudo hostnamectl set-hostname server

Если нужен домен:

sudo hostnamectl set-hostname server.lan

Проверить:

hostnamectl

19.2. В Windows

Через интерфейс:

Параметры
Система
О системе
Переименовать этот ПК

Через PowerShell:

Rename-Computer -NewName "server" -Restart

Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта