Existem muitos (IMHO, muitos) lugares para configurar o(s) servidor(es) DNS usado e não tenho certeza sobre a relação entre eles. Algumas perguntas são: Quais configurações são consultadas apenas condicionalmente (por exemplo, se entendi corretamente, a configuração do systemd não é consultada se o serviço correspondente não estiver em execução)? Quais configurações substituem quais? Qual é a maneira recomendada de configurar o DNS?
Para citar alguns lugares para configurar o servidor DNS (juntamente com algumas outras informações que conheço sobre eles, que devem ser gentilmente corrigidas se houver algum mal-entendido),
- Escreva
/etc/resolv.conf
e usechattr
para forçá-lo a permanecer persistente após a reinicialização (acho que este é desencorajado) resolvconf
. Configure nos vários arquivos em/etc/resolvconf/resolv.conf.d
. Useresolvconf -a
para adicionar um DNS eresolvconf -u
atualizá-losystemd-resolve(d)
, uma unidade desystemd
. Configurar em/etc/systemd/resolvd.conf
. Ele usa o endereço127.0.0.53
como o solucionador de DNS fictício no/etc/resolv.conf
. O realresolv.conf
é encontrado em/var/run/systemd/resolve/resolv.conf
. Nas versões mais recentes (desde qual versão?),systemd-resolve --status
pode ser usado para consultar o status atual do DNS./etc/network/interfaces
. Este está relacionado com/etc/systemd/system/network-online.target.wants/networking.service
Network-Manager
, um componente que aciona o menu de contexto de configuração de rede na GUI. Se uma interface estiver configurada em/etc/network/interfaces
, ela se recusará a gerenciá-la novamente (mostrado comonot managed
no menu de contexto da GUI).
Estou executando Ubuntu 18.04 LTS
com o ambiente de desktop Unity.
Sempre que possível , seria recomendável que você use este:
Por exemplo, isso é o que diz o Guia oficial do Ubuntu Desktop. Não verifiquei se isso está atualizado, mas não tenho motivos para duvidar.
https://help.ubuntu.com/lts/ubuntu-help/net-manual.html.en
Na maioria dos sistemas, o único local em que o sistema procurará é o conteúdo de
/etc/resolv.conf
. (Mas pode haver vários sistemas diferentes que editam o conteúdo deste arquivo).Conforme apontado por Patrick, em alguns sistemas haverá um plugin de maior prioridade visto em
grep '^hosts:' /etc/nsswitch.conf
.dns
é o plugin glibc padrão que lê/etc/resolv.conf
.Em particular, se você tiver
resolve
antesdns
, isso se refere asystemd-resolved
. Ele tentará acessarsystemd-resolved
antes de usar o servidor DNS em/etc/resolv.conf
.Como você aponta, é possível examinar os servidores DNS, se houver, que
systemd-resolved
podem consultar, executandosystemd-resolve --status
.Como você aponta, não se espera que o método NetworkManager seja compatível com edições manuais
/etc/resolv.conf
(já que o próprio NetworkManager editará esse arquivo). É claro que se você bloquear a edição/etc/resolv.conf
do NetworkManager , o método NetworkManager não funcionará.