4

Как я могу заменить свой DNS? Я не использую сетевой менеджер, за исключением systemd-networkd и wpa_supplicant для беспроводных сетей , с wpa_cli . Я на Arch Linux, если это имеет значение.

Хотя я могу добавить DNS в мою конфигурацию, systemctl restart systemd-resolved перезаписывает /etc/resolv.conf ( символ , связанный с /run/systemd/resolve/resolv.conf), или перезагружается, каким-то образом добавив DNS по умолчанию для ISP в /etc/resolv.conf . Кто-нибудь знает, почему или как решить эту проблему, чтобы использовать только DNS, который я настроил?

Когда я редактирую /etc/resolv.conf чтобы содержать только

nameserver 208.67.222.222
nameserver 208.67.220.220 

и запустите systemctl restart systemd-resolved или выполните перезагрузку, DNS-провайдеры по умолчанию перезаписываются, и cat /etc/resolv.conf выглядит так:

# This file is managed by systemd-resolved(8). Do not edit.
#
# Third party programs must not access this file directly, but
# only through the symlink at /etc/resolv.conf. To manage
# resolv.conf(5) in a different way, replace the symlink by a
# static file or a different symlink.

nameserver 75.75.75.75
nameserver 192.168.1.1
nameserver 208.67.222.222
# Too many DNS servers configured, the following entries may be ignored.
nameserver 75.75.76.76
nameserver 208.67.220.220

Как описано в man resolved.conf , я гарантировал, что у меня есть только один файл конфигурации, /etc/systemd/resolved.conf.d/resolv.conf , содержащий

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# See resolved.conf(5) for details

[Resolve]
DNS=208.67.222.222 208.67.220.220
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
#LLMNR=yes

и никакие другие файлы, определяющие мой DNS из всех файлов конфигурации здесь:

/etc/systemd/resolved.conf

/etc/systemd/resolved.conf.d/*.conf

/run/systemd/resolved.conf.d/*.conf

/usr/lib/systemd/resolved.conf.d/*.conf

Я не верю, что я использую какой-либо сервис dhcpcd или netctl, и systemctl | grep dhcpcd и systemctl | grep netctl ничего не возвращает.

1 ответ1

4

Я решил эту проблему, добавив следующее в мои сетевые профили в /etc/systemd/network/*.network:

[DHCP]
UseDNS=false

По умолчанию это так, то есть DNS-серверы извлекаются из сетевого подключения DHCP. Если я отключу эту функцию и введу свой собственный статический DNS (т. Е. OpenDNS), то я могу быть уверен, что буду использовать только DNS по своему выбору.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .