Como alterar o DNS em uma configuração de rede mínima

3

Como posso substituir meu DNS? Não estou usando um gerenciador de rede, exceto systemd-networkd e wpa_supplicant para sem fio, com wpa_cli . Estou no Arch Linux, se for importante.

Embora eu possa adicionar DNS à minha configuração, systemctl restart systemd-resolved sobrescreve /etc/resolv.conf (sym vinculado a /run/systemd/resolve/resolv.conf ) ou uma reinicialização, de alguma forma adicione os DNSs padrão do ISP a /etc/resolv.conf . Alguém sabe por que ou como resolver esse problema para usar somente o DNS que eu configurei?

Quando edito /etc/resolv.conf para conter apenas

nameserver 208.67.222.222
nameserver 208.67.220.220 

e execute systemctl restart systemd-resolved ou faça uma reinicialização, os DNSs padrão do ISP serão sobrescritos e cat /etc/resolv.conf será este:

# 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

Conforme descrito em man resolved.conf , assegurei-me de que eu tivesse apenas um arquivo de configuração, /etc/systemd/resolved.conf.d/resolv.conf , contendo

#  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

e nenhum outro arquivo definindo meu DNS de todos os arquivos de configuração abaixo:

/etc/systemd/resolved.conf

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

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

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

Também não acredito que esteja executando nenhum serviço dhcpcd ou netctl, e systemctl | grep dhcpcd e systemctl | grep netctl não retornam nada.

    
por modulitos 08.05.2015 / 11:09

1 resposta

3

Eu resolvi esse problema adicionando o seguinte aos meus perfis de rede em /etc/systemd/network/*.network :

[DHCP]
UseDNS=false

Por padrão, isso é verdade, ou seja, os servidores DNS são extraídos da conexão de rede DHCP. Se eu desabilitar esse recurso e inserir meu próprio DNS estático (por exemplo, OpenDNS), posso garantir que só usarei o DNS de minha escolha.

    
por 08.05.2015 / 12:19