Предварительная подготовка Настройка файла конфигурации Режим совместимости Откат к старому методу разрешения имен
systemd-resolved представляет собой небольшой локальный кеширующий DNS-сервер. Основной задачей кеширующего DNS-сервера является обработка DNS-запросов, которые выполняет во время своей работы операционная система, и сохранение их в памяти (кеширование).
systemd-resolved поддерживает такие стандарты, как DNSSEC и DNSoverTLS (или DoT), которые увеличивают безопасность при работе в сети Интернет.
systemd-resolved входит в состав пакета systemd, который установлен в РЕД ОС по умолчанию.
Для настройки службы systemd-resolved используется конфигурационный файл /etc/systemd/resolved.conf.
Для проверки DNS-серверов, используемых systemd-resolved в данный момент, выполните команду:
resolvectl status
В ответе команды должно отображаться примерно следующее:
Global Protocols: LLMNR=resolve -mDNS -DNSOverTLS DNSSEC=no/unsupported resolv.conf mode: stub Link 2 (enp0s3) Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6 Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported Current DNS Server: 192.168.0.1 DNS Servers: 192.168.0.1 192.168.0.251 DNS Domain: example.com
По умолчанию systemd-resolved считывает стандартные настройки DNS в сети.
Дополнительно рекомендуется проверить параметр hosts в файле /etc/nsswitch.conf, который определяет последовательность обращений программ к системным компонентам для разрешения доменных имен. В параметре hosts должен быть указан resolve:
hosts
hosts: files myhostname resolve [!UNAVAIL=return] dns
где:
files – считывание настроек из файла /etc/hosts (имеет наивысший приоритет);
files
myhostname – считывание имени текущего хоста;
myhostname
resolve [!UNAVAIL=return] – считывание настроек с помощью локального кеширующего DNS-сервера, systemd-resolved поддерживает внутренний каталог с собственным файлом resolv.conf;
resolve [!UNAVAIL=return]
dns – обращение напрямую к DNS-серверам (имеет низший приоритет).
dns
Для настройки DNS-серверов, используемых системой для разрешения доменных имен, отредактируйте конфигурационный файл /etc/systemd/resolved.conf:
sudo nano /etc/systemd/resolved.conf
Раскомментируйте и заполните параметры в секции [Resolve], например:
[Resolve]
[Resolve] DNS=192.168.1.1 FallbackDNS=77.88.8.88 Domains=example.com DNSSEC=yes DNSOverTLS=yes MulticastDNS=no LLMNR=no Cache=yes DNSStubListener=yes
Параметры для настройки:
DNS= — рекомендуется указывать IP-адрес DNS-сервера;
DNS=
FallbackDNS= — рекомендуется указывать любые публичные DNS-серверы, например, 77.88.8.88 – бесплатный DNS-сервер от Яндекс. Для полного отключения функциональности резервных DNS-серверов задайте параметр FallbackDNS= без указания адреса;
FallbackDNS=
77.88.8.88
Domains=example.com — основной домен или домены, которые нужно разрешать в первую очередь;
Domains=example.com
DNSSEC=yes — помогает защитить DNS-запросы от подмены с помощью механизмов аутентификации;
DNSSEC=yes
DNSOverTLS=yes — шифрует DNS-запросы, защищая их от перехвата;
DNSOverTLS=yes
MulticastDNS=no — отключает Multicast DNS, заставляя все запросы к локальным доменам обрабатываться через указанные DNS-серверы. По умолчанию, запросы к доменам с суффиксом .local не отправляются на DNS-серверы. Такие имена обрабатываются через Multicast DNS, если только домен .local не указан явно в качестве маршрутизируемого или поискового для соответствующего интерфейса. После отключения Multicast DNS все запросы к доменам вида *.local systemd-resolved будет обрабатывать как стандартные DNS-запросы и направлять их на указанные в настройках DNS-серверы;
MulticastDNS=no
LLMNR=no — отключает разрешение имен через локальную сеть;
LLMNR=no
Cache=yes — включает кеширование для улучшения производительности;
Cache=yes
DNSStubListener=yes — сохраняет возможность локального разрешения имен через systemd-resolved.
DNSStubListener=yes
После настройки конфигурационного файла выполните перезапуск службы systemd-resolved и проверьте её статус:
sudo systemctl restart systemd-resolved systemctl status systemd-resolved
В случае если по каким-либо причинам в вашей системе systemd-resolved не запущен, при проверке статуса будет отображаться следующее сообщение:
Failed to get global data: The name is not activatable
Для решения данной проблемы запустите и добавьте службу systemd-resolved.service в автозагрузку с помощью команды:
sudo systemctl enable systemd-resolved.service --now
Для совместимости с приложениями, которые не используют библиотечные вызовы, а обращаются к DNS-серверам напрямую, получая их из /etc/resolv.conf, потребуется наличие символической ссылки на файл resolv.conf, содержимое которого автоматически генерируется, исходя из настроек, заданных в /etc/systemd/resolved.conf.
В РЕД ОС 8 в конфигурации systemd-resolved по умолчанию реальный файл /etc/resolv.conf заменен на ссылку к автоматически генерируемому файлу /run/systemd/resolve/stub-resolv.conf.
Для проверки символической ссылки выполните:
ls -la /etc/resolv.conf lrwxrwxrwx. 1 root root 39 апр 15 08:34 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
Файл /run/systemd/resolve/stub-resolv.conf содержит в себе отсылку на локальный псевдо-сервер DNS (local stub) на адресе 127.0.0.53 в качестве единственного DNS-сервера, а также список доменов для поиска (параметр search).
search
Отсылка на локальный псевдо-сервер DNS связана с тем, что в конфигурации по умолчанию в /etc/systemd/resolved.conf активирован механизм DNSStubListener (DNSStubListener=yes), который запускает отдельные TCP/UDP-прослушиватели на адресах 127.0.0.53%lo:53 и 127.0.0.54:53:
127.0.0.53%lo:53
127.0.0.54:53
ss -tunlp | sort tcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=531,fd=17)) tcp LISTEN 0 4096 127.0.0.54:53 0.0.0.0:* users:(("systemd-resolve",pid=531,fd=19))
Согласно справке по systemd-resolved.service такой режим работы является рекомендуемым для systemd-resolved, так как позволяет пропустить весь поток DNS-запросов от всех типов локальных приложений через внутренний кеширующий DNS-сервер systemd-resolved.
Для того чтобы вернуться с старому методу разрешения имён необходимо:
1. Отключить сервис systemd-resolved:
sudo systemctl disable systemd-resolved --now
2. Удалить /etc/resolv.conf и создать его как обычный файл:
sudo rm /etc/resolv.conf sudo nano /etc/resolv.conf
3. Прописать в файл все необходимые DNS-сервера, например:
nameserver 8.8.8.8 nameserver 77.88.8.8
Дата последнего изменения: 29.07.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Нажимая «Отправить запрос», вы соглашаетесь с условиями обработки персональных данных.
Вы будете получать только актуальную информацию по обновлению безопасности
Подписываясь на уведомления, вы соглашаетесь с условиями обработки персональных данных.
На ваш почтовый адрес отправлено письмо с подтверждением подписки.