Questão Como tornar o endereço do servidor de nomes permanente em /etc/resolv.conf?


Não consigo manter o endereço do servidor de nomes definido por meio de /etc/resolv.conf. Toda vez que eu definir o valor, o gerenciador de rede substitui-lo com o gateway padrão na reinicialização.

Como definir isso certo?

Eu preferiria uma maneira diferente de mudar o nome do servidor no roteador.


12


origem


Você precisa mudá-lo com o NetworkManager (como é indicado na primeira linha). Este arquivo é gerado novamente a cada inicialização pelo NetworkManager. Depende do seu linux-distro (que você não mencionou) como acessar este NetworkManager. - Rik


Respostas:


Depende. Por favor, leia até o final.

Se você não tiver o pacote resolvconf instalado, então é fácil: depois de mudá-lo do jeito que você gosta, emitir o comando

 sudo chattr +i /etc/resolv.conf

O comando altera os atributos do arquivo, tornando immutable (a opção + i).

No entanto, se você tiver o pacote resolvconf instalado, o arquivo /etc/resolv.conf pode ser transformado em um link simbólico,

 # file /etc/resolv.conf
 /etc/resolv.conf: symbolic link to `../run/resolvconf/resolv.conf'

que é um arquivo em um sistema de arquivos virtual, o epítome de uma versão não permanente. O engraçado é que você pode não saber que você tem o resolvconf instalado, porque versões recentes de sistemas operacionais Debian vêm com ele pré-instalado. Você pode determinar se sua distro a instalou para você emitindo o comando:

 #whereis resolvconf
 resolvconf: /sbin/resolvconf /etc/resolvconf /lib/resolvconf /usr/share/man/man8/resolvconf.8.gz

Ainda mais importante, você pode determinar se o seu /etc/resolv.conf foi transformado em um link por meio do comando (arquivo /etc/resolv.conf) acima. Se a resposta for ASCII text, usar chattr, de outra forma...

Se você usa um IP estático, o mais simples é adicionar a seguinte linha (ou algo assim)

 dns-nameservers 8.8.4.4 8.8.8.8

para a sub-rotina definindo as propriedades de sua interface estática em / etc / network / interfaces.

Se você estiver em um laptop que se conecta o tempo todo a redes diferentes, você pode seguir LawrenceCexcelente sugestão. Mas se você tem resolvconf em seu sistema, a maneira correta (e mais simples) de fornecer um conjunto fixo de DNSs é usar os arquivos /etc/resolvconf/resolv.conf.d. Em particular, os seguintes arquivos são usados Página de Stephane Graber):

base: Usado quando nenhum outro dado pode ser encontrado

cabeça: Usado para o cabeçalho do resolv.conf, pode ser usado para garantir que um servidor DNS seja sempre o primeiro da lista

rabo: Qualquer entrada na cauda é anexada no final do resolv.conf resultante.

Então coloque seus servidores favoritos em cabeça, do seguinte modo

  nameserver 8.8.8.8

e você está feito.


14



@dhiller Ultrasawblade mudou seu nome para LawrenceC, é o abaixo. - MariusMatutiae
Postagem muito legal e interessante, gostaria que você adicionasse alguns links de documentação sobre este tópico para usuários que querem saber mais sobre o tópico, Thx - Philippe Gachoud


Adicione uma linha semelhante à /etc/dhcp/dhclient.conf usando um terminal raiz:

supersede domain-name-servers 74.122.198.48, 50.116.23.211;

Isso causa dhclient, o programa que emite uma solicitação DHCP e faz alterações de acordo com o que a resposta disse, para substituir as informações obtidas do servidor DHCP pelo procedimento acima antes de fazer alterações.

Os dois acima são dois servidores DNS OpenNIC. Substitua conforme necessário para qualquer servidor que você deseja usar.

Como isso acontece sempre que você obtém informações de configuração do DHCP, use dhclient -v eth0 ou qualquer interface para atualizá-lo e ver a mudança.


8



Em vez de apenas sobrescrever o DNS (geralmente roteador), pode-se adicionar a linha prepend domain-name-servers 8.8.8.8 por exemplo. Isso usaria o DNS do ISP quando disponível. - Axel Latvala


Aparece como mencionado pelo @Rik que a razão para as substituições de DNS na reinicialização é devido ao gerenciador de rede / utilitário que está configurado para isso. No Linux Mint, de acordo com a captura de tela, eu tinha o meu método IPv4 definido apenas para endereços Automatic (DHCP). Você pode inserir as configurações corretas em /etc/resolv.conf ou na seção de servidores DNS. Eu me lembro no Ubuntu 13.04 que meus servidores de nomes mudaram algumas vezes durante um longo período de tempo, mas depois que eu realmente os editei na GUI, tudo parecia estar estável a partir daí.

enter image description here

enter image description here


3





Tive o mesmo problema, mas eu uso o endereço IP estático. A correção foi apenas adicionar o dns em / etc / network / interfaces

iface eth0 inet static
    address [your ip>
    netmask [your netmask]
    network [your network]
    broadcast [your broadcast]
    gateway [your gateway]
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers [dns server1] [dns server2]
    dns-search [your domain]

3



Sim, isso corrige porque o NetworkManager ignora as interfaces listadas /etc/network/interfaces. Boa pegada! - Izzy


Se você usou o wicd, clique com o botão direito no ícone e clique em informações de conexão. Quando a janela abrir, clique nas propriedades da que você está conectado.

Verifique o uso de DNS estático e na linha que diz o tipo de servidor DNS 1 no IP do DNS do Google 8.8.8.8 e na linha para o tipo de servidor DNS 2 8.8.4.4 em seguida, clique em "ok".

Se você está recebendo erros dos padrões, entre em contato com seu provedor e mencione-o a eles. Eles geralmente atribuem servidores DNS ao seu modem quando você se conecta a eles.


1





Hackeando seu caminho por chattr +i ou similar é uma solução rápida na melhor das hipóteses, e deve ser evitada sempre que possível (pelo menos a longo prazo - como foi dito, é uma solução de curto prazo até que se encontre tempo para a solução real). Como já foi dito, este é um trabalho para o NetworkManager, que oferece uma CLI que podemos usar para isso:

# encontrar qual interface ajustar
dispositivo nmcli
# saída se parece com:
# CONEXÃO DE ESTADO DO TIPO DE DISPOSITIVO
# enp0s3 ethernet conectou meu escritório
# lo loopback não gerenciado -
# A partir disso, precisamos da CONEXÃO.

# Agora adicione nossos "domínios de pesquisa":
conexão nmcli modificar my-office ipv4.dns-search example1.com
nmcli con mod meu-escritório + ipv4.dns-search example2.com

# E nossos servidores de nomes:
nmcli con modificar my-office ipv4.dns 213.73.91.35
nmcli con modificar my-office + ipv4.dns 87.118.100.175
# note o "+" na segunda linha: adicione outro,
# enquanto a primeira linha sobrescreve a entrada existente.
# poderíamos ter feito isso com uma única chamada:
nmcli con modificar my-office ipv4.dns "213.73.91.35 87.118.100.175"

# OK, então agora vamos dizer para ignorar as atualizações do servidor DHCP:
nmcli con modificar my-office ipv4.ignore-auto-dns sim

# e aplicar as modificações em nossa configuração em execução
nmcli con up my-office

Se você usar um endereço IP estático, também poderá usar a solução kanelbolle's answer.


0