Установка и настройка BIND на Ubuntu: кэширующий DNS-сервер
BIND (named) — стандартный DNS-сервер для Linux. В этой инструкции — установка, базовая настройка кэширующего DNS и подготовка к созданию зон. Подходит для Ubuntu и других Debian-подобных систем.
Подготовка системы
apt update
Если настроен брандмауэр, открываем 53-й UDP-порт:
iptables -I INPUT 1 -p udp --dport 53 -j ACCEPT
apt install iptables-persistent
netfilter-persistent save
Команда вставляет правило разрешения 53/udp первым в цепочке.
Установка и запуск
apt install bind9 dnsutils
Проверяем работу:
nslookup imaxis.ru 127.0.0.1
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
Name: imaxis.ru
Address: 45.130.41.92
Базовая настройка
Основной конфиг — /etc/bind/named.conf. В современных версиях он лишь подключает другие файлы.
По умолчанию сервер отвечает только локальным клиентам. Разрешаем запросы:
vi /etc/bind/named.conf.options
allow-query { any; };
any — запросы от всех. Вместо этого можно указать конкретные сети/адреса.
Только для локальной сети:
allow-query { 192.168.0.0/24; };
где 192.168.0.0/24 — ваша локальная сеть.
Для перенаправления запросов на внешний DNS:
forwarders { 77.88.8.8; 8.8.8.8; };
Запросы пойдут на 77.88.8.8, а при неудаче — на 8.8.8.8.
systemctl restart bind9
Альтернатива — service bind9 restart.
На этом базовая настройка завершена: сервер работает как кэширующий DNS. Проверить с другого хоста:
nslookup ubuntu.com 192.168.0.15
где 192.168.0.15 — адрес DNS-сервера в локальной сети.
Создание зон
Чтобы BIND отвечал за собственный домен, создайте соответствующую зону:
Тонкости и подводные камни
allow-queryпо умолчанию только localhost — без этой опции внешние клиенты получатREFUSED.- Открытый резолвер — не оставляйте
allow-query { any; }в интернете: это открытый DNS-резолвер, который используют для DNS-амплификации. Ограничьте сетью. forwarders— нужны, если сервер сам не рекурсивно резолвит или вы хотите централизовать запросы.- Файлы зон — в
/etc/bind/, подключаются черезnamed.conf.local; проверяйте синтаксисnamed-checkconfиnamed-checkzone. - Логи — по умолчанию в syslog/journal; для отладки включайте
querylogвnamed.conf.options. - Порты — для TCP-запросов (крупные ответы, DNSSEC) нужен и 53/tcp.
Шпаргалка
apt install bind9 dnsutils
vi /etc/bind/named.conf.options
# allow-query { 192.168.0.0/24; };
# forwarders { 77.88.8.8; 8.8.8.8; };
systemctl restart bind9
nslookup ubuntu.com 192.168.0.15
named-checkconf
Проверено на: Ubuntu 22.04/24.04/26.04 + BIND 9.18+.
Дата: Сентябрь 2026.