Por que meu arquivo resolv.conf é regenerado toda vez?

17

Meu /etc/resolv.confarquivo é regenerado todas as vezes, me soltando nos servidores DNS do Google quando reconecto meu modem 3G.

Para alterar as configurações de DNS, consultei http://code.google.com/intl/fr-FR/speed/public-dns/docs/using.html .

Meu dhclient.confé muito grande (58 linhas), então eu postei no pastebin .

No entanto, aqui está o inteiro dhclient.confsem linhas de comentário ou linhas em branco:

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name "<hostname>";
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers;
prepend domain-name-servers 8.8.8.8, 8.8.4.4;

Estou usando em wvdialvez do Network Manager.

Jakh Saidlikp
fonte
Infelizmente, eu não sei nada sobre wvdial. Neste ponto, suspeito que outro pacote ainda não descoberto esteja envolvido aqui. Você sabe se instalou outros aplicativos ou ferramentas relacionados à rede que podem estar tocando em DNS, DHCP, interfaces etc. de alguma forma?
23411 belacqua

Respostas:

6

Na versão 12.04, o resolvconf é instalado por padrão. Aqui está um rápido resumo de como fazer alterações na configuração do DNS para alguns casos de uso comuns:

Para uma configuração estática usando ifup, use dns-nameserverse dns-searchentradas em /etc/network/interfaces.

Para uma configuração estática usando NetworkManager, selecione Automatic (DHCP) addresses only Methode insira endereços e nomes de domínio nos campos Additional DNS serverse Additional search domainsno Editor de conexão.

Para substituir resolvconf de configuração padrão, o uso base, heade tailno /etc/resolvconf/resolv.conf.d/. Digite apenas endereços e nomes de domínio nesses arquivos como uma medida temporária, pois eles realmente pertencem a outro lugar, conforme descrito acima.

Desabilitar resolvconf não é recomendado, mas você pode substituir o link simbólico /etc/resolv.confpor um arquivo regular.

Para mais informações, consulte a publicação no blog de Stéphane Graber .

Robie Basak
fonte
4

Se tudo o que você deseja fazer é manter seus servidores DNS do Google no resolv.conf, você pode editar
/etc/dhcp3/dhclient.confe adicionar:

prepend domain-name-servers 8.8.8.8;
prepend domain-name-servers 8.8.4.4;

A única diferença entre o que você tem e o que estou mostrando aqui é que você tem os dois servidores de nomes em uma única linha, de acordo com os documentos que você mencionou.

A menos que esteja faltando alguma coisa, seu dhclient.conf não é um problema aqui. Neste ponto, estou assumindo que o problema esteja relacionado ao wvdial.

Aqui está algo para tentar, no ubuntuforums :

gksudo gedit /etc/ppp/peers/wvdial

REMOVER o parâmetro usepeerdns e salvar o arquivo. Código:

gksudo gedit /etc/wvdial.conf

adicione estas linhas:

check DNS = no
auto DNS = no
belacqua
fonte
@jgbelacqua i tentou fazê-lo em linhas spearated mas não funcionou: P
Jakh Saidlikp
@Jakh Estou assumindo que mover as linhas de prepend para mais perto do topo também falha? (Isto é como eu tenho o meu criado.)
Belacqua
@jgbelacqua sim eu tentei isso também ele faz;]
Jakh Saidlikp
@Jakh - você tentou editar a request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers;linha para remover os servidores de nome lá?
22711 belacqua
@jgbelacqu nenhum mal experimentá-lo agora e deixar você kno
Jakh Saidlikp
4

A melhor maneira de definir um servidor de nomes por meio da CLI, sem o NetworkManger, com um endereço estático ou independente da conexão, é:

Instale o pacote resolvconf .

Corre

sudo nano /etc/resolvconf/resolv.conf.d/head

(ignore o aviso assustador. /etc/resolv.conf é gerado automaticamente, portanto o aviso existe para que seja colocado no /etc/resolv.conf quando o /etc/resolv.conf for gerado.) No final do arquivo, adicionar

 nameserver <ip_of_nameserver>

Pressione Ctrl xe responda sim para salvar o arquivo. Para finalizar, gere novamente o arquivo /etc/resolv.conf para que as alterações sejam aplicadas agora:

 sudo resolvconf -u
Azendale
fonte
Deve-se acrescentar que geralmente não é uma boa idéia colocar um endereço estático de servidor de nomes no resolv.conf. Leia /usr/share/doc/resolvconf/README.gz.
Jdthood 28/10/12
0

Você pode definir a domain-name-serversopção dhclient.conf.

Adam Byrtek
fonte
verifique seu pastebin - parece que ele já tem isso.
22411 belacqua
Obrigado, eu não percebi isso. A propósito, sua solução pode estar correta; considere publicá-la como resposta em vez de como comentário.
Adam Byrtek
Olá @ Adam youplease pode ser mais claro im um noob:] agradecer
Jakh Saidlikp
0

Eu resolvi o mesmo problema com os seguintes comandos:

echo "nameserver 212.217.0.1" >> /etc/resolvconf/resolv.conf.d/head
ln -s /etc/resolvconf/resolv.conf.d/head /etc/resolv.conf
resolvconf -u
/etc/init.d/networking restart
moha
fonte
1
Você pode ter resolvido o problema dessa maneira, mas é uma configuração totalmente errada. Você acabou associando /etc/resolv.conf a um arquivo estático que, por acaso, é um dos arquivos de configuração do resolvconf. Se você deseja desativar o resolvconf, seria muito mais simples excluir o link simbólico /etc/resolv.conf e colocar um arquivo estático.
Jdthood 28/10/12
-1

você provavelmente tem o pacote resolvconf instalado. nesse caso, sempre que surgir uma interface, o resolv.conf é atualizado. você pode adicionar entradas estáticas usando o arquivo /etc/resolv.conf.tail, consulte a página de manual do resolv.conf para obter mais informações.

eFloh
fonte
noo Eu não tenho esse pacote instalado
Jakh Saidlikp
O programa resolvconf atualiza /etc/resolv.conf, mas apenas se /etc/resolv.conf for um link simbólico para ../run/resolvconf/resolv.conf. O pacote resolvconf foi introduzido porque muitos outros programas estavam pisando no /etc/resolv.conf independentemente um do outro, resultando em caos. Leia /usr/share/doc/resolvconf/README.gz. Portanto, pelo fato de o /etc/resolv.conf ter sido atualizado, não se segue (em março de 2011 quando a pergunta foi feita) que o resolvconf foi instalado. Provavelmente o pppd estava reescrevendo o arquivo. (A partir de 12.04 Ubuntu, no entanto, resolvconf faz parte do sistema de base.)
jdthood
-1

Eu tinha exatamente o mesmo problema, o servidor DNS que minha operadora de celular fornece era bastante ruim, então eu queria usar o DNS do Google. Além disso, o NetworkManager faz um péssimo trabalho ao lidar com conexões de banda larga móvel, o que wvdialé uma necessidade.

Como se vê, /etc/resolv.confexiste um link simbólico ubuntu 12.10e talvez até mesmo 12.04. Aqui está o que eu fiz sudo unlink /etc/resolv.confdepois disso, você pode criar um novo resolv.confcom vimou o editor de sua escolha e adicionar servidores de nomes do google ou quaisquer outros servidores de nome que você preferir. Salve e pronto.

Se você tem medo de quebrar algo, pode anotar o link simbólico existente fazendo um ls -la /etc/resolv.confantes unlinkingdele.

Espero que ajude.

Nikhil
fonte
@ Downvoter, gostaria de comentar. Se minha resposta for realmente péssima, ficarei feliz em excluí-la. Por favor, deixe-me saber o que estou fazendo de errado. Graças
nikhil