Я установил дистрибутив Arch Linux. Arch Linux использует systemd
как набор системных сервисов, поэтому он также использует systemd-resolved
для разрешения DNS. Я использую DHCP для получения DNS-серверов и разрешения DNS. Мне нужно было включить systemd-resolved
сервис для автоматического обнаружения и разрешения DNS. И это работает, например, для curl
и простой веб-браузер, даже с пустым /etc/resolv.conf
. Проблема в том, что это не работает для gpg
а также dnsmasq
.
GPG. Командование
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv *some key*
отпечаткиgpg: keyserver search failed: Server indicated a failure
если DNS не указан в/etc/resolv.conf
. Но если я укажу какой-нибудь DNS-сервер в/etc/resolv.conf
, Напримерnameserver 1.1.1.1
, тогдаgpg
работал бы правильно и нашел бы ключ.dnsmasq. Я хочу сделать что-то вроде пересылки DNS. Я хочу запустить DHCP-сервер, который также будет предоставлять DNS-серверы. Но возможно ли автоматическое обнаружение DNS-серверов не только из
/etc/resolv.conf
? Чтобы использовать DNS-серверы, которые использует локальный компьютер? DNS, который также может быть получен от другого DHCP-сервера, сервера, с которого локальный компьютер получает адрес IPv4?
Надеюсь, что это возможно! Буду рад любой помощи! Заранее спасибо!
1 ответ
Для 1-й проблемы поставьте сервер имен 127.0.0.53
в вашем /etc/resolv.conf. Systemd-resolved не требовать программы должны использовать собственный API через nsswitch — он также прослушивает локальный хост для стандартных DNS-запросов (например, dnsmasq).
Чаще всего это делается путем символьной ссылки /resolv.conf на /run/systemd/resolve/stub-resolv.conf
, таким образом вы также получите суффиксы домена от DHCP.
Для второй проблемы скажите dnsmasq читать из /run/systemd/resolve/resolv.conf
(обратите внимание, что это другой файл, чем указанный выше), используя параметр «resolv-file» — этот файл будет содержать действительный серверы имен, полученные от DHCP.
(Если вы хотите, вы также можете символически привязать свой /etc/resolv.conf к этому файлу — запросы DNS GnuPG будут тогда полностью обходить systemd-resolved.)