📍 Зачем он нужен?
Раньше DNS-серверы прописывались в один файл
/etc/resolv.conf, и за него дрались все подряд: DHCP, VPN, NetworkManager. Кто последний записал — тот и победил, а остальные настройки терялись. systemd-resolved решает это и даёт сверху:— Раздельный DNS под каждый интерфейс (per-link) — VPN, Wi-Fi и Ethernet больше не затирают настройки друг друга.
— Кеширование — повторные запросы не уходят в сеть, резолвинг быстрее.
— Современные протоколы — DNSSEC, DNS-over-TLS (DoT), а также LLMNR и mDNS для имён в локальной сети.
📍 Как работает?
Поднимает локальный DNS-сервер на адресе
127.0.0.53:53 — это так называемый stub-резолвер (заглушка). /etc/resolv.conf превращается в симлинк на /run/systemd/resolve/stub-resolv.conf, где прописан единственный nameserver те самые 127.0.0.53.Все приложения отправляют запросы на этот локальный адрес. Дальше resolved сам решает, на какой реальный upstream-сервер переслать запрос в зависимости от интерфейса, домена и настроек.
📍 Основные команды
Главная утилита —
resolvectlПолный статус с DNS-серверами по каждому интерфейсу:
resolvectl status
Global
Protocols: -LLMNR -mDNS +DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (eth1)
Current Scopes: DNS
Protocols: +DefaultRoute +DNSSEC
Current DNS Server: 77.88.8.8
DNS Servers: 77.88.8.8 77.88.8.1
Резолвинг имени через resolved:
resolvectl query cortel.cloud
cortel.cloud: 95.181.181.7 -- link: eht1
-- Information acquired via protocol DNS in 12.3ms.
-- Data is authenticated: no
Сброс DNS-кеша:
resolvectl flush-caches
systemd-resolved — это локальный кеширующий резолвер, который наводит порядок в DNS: разводит серверы по интерфейсам, кеширует ответы и поддерживает современные протоколы вроде DoT и DNSSEC. На большинстве свежих Ubuntu/Debian он включён по умолчанию.
#линуксятина
