SystemdDoctor
named.service dns

BIND в systemd: почему named не запускается

У BIND самая частая причина отказа — конфликт за порт 53 с локальным разрешателем имён systemd-resolved. Вторая — ошибки в зонах: сервер разбирает их при запуске и отказывается стартовать при неверной записи.

О службе

На современных системах порт 53 на адресе 127.0.0.53 занимает systemd-resolved. Пока он работает, BIND не сможет занять порт 53 на всех адресах. Решают либо отключением локального разрешателя, либо привязкой BIND к конкретным адресам.

BIND проверяет конфигурацию и зоны отдельными командами: named-checkconf и named-checkzone. Обе стоит выполнять до перезапуска: ошибка в одной зоне останавливает весь сервер, а не только эту зону.

Третья особенность — права. BIND работает от отдельного пользователя и нуждается в доступе к каталогу зон и к каталогу для файлов состояния. При ручной правке зон под root служба перестаёт стартовать до возврата владельца.

Как устроена

Имя unitnamed.service или bind9.service в зависимости от дистрибутива
Проверка конфигурацииnamed-checkconf и named-checkzone ЗОНА ФАЙЛ
Конфликт за порт 53с systemd-resolved на 127.0.0.53 — самая частая причина отказа
Правакаталог зон и /var/cache/bind должны принадлежать пользователю службы
Перезагрузка зонrndc reload — без перезапуска сервера

Частые ошибки

7 записей базы отмечены за этой службой.

Сообщения журнала

Коды выхода

  • status=1/FAILURE в systemdКод 1/FAILURE означает, что программа запустилась и сама завершилась с ошибкой. Как найти настоящую причину в журнале службы.

Ошибки служб

Коды выхода этой службы

Числа в status=N ниже 200 назначает сама программа, 200 и выше — systemd, когда не смог подготовить запуск.

statusЧто означает у этой службыКуда смотреть
1/FAILURE ошибка в конфигурации, в зоне или занятый порт 53. разбор

Диагностика

Проверка основной конфигурации: печатает файл и строку с ошибкой.

sudo named-checkconf

Проверка отдельной зоны: серийный номер, записи, синтаксис.

sudo named-checkzone example.org /etc/bind/db.example.org

Кто занимает порт 53 — обычно systemd-resolved.

sudo ss -tulnp | grep :53

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

systemctl status named --no-pager -l || systemctl status bind9 --no-pager -l

Параметры unit, которые тут важны

  • User=работа от отдельного пользователя bind или named
  • ExecReload=перезагрузка зон через rndc без перезапуска
  • LimitNOFILE=нужен при большом числе зон и запросов

Источники

  • Документация BIND 9 документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026