Alterações no /etc/resolv.conf descartadas ao se conectar a uma nova rede

3

Eu atualizei para 12,10 de 12,04 recentemente e estou com problemas para me conectar à Internet.

Eu recebi um endereço IP e sou capaz de executar ping em outros IPs da LAN na rede local, mas não consigo me conectar à Internet e nem sequer consigo acessar www.google.com em um terminal.

De alguma forma, fazer alterações em /etc/resolv.conf e reiniciar resolvconf service e reinicialização funciona, mas eu preciso fazer isso toda vez que me conecto a uma nova rede. Como faço para que essas mudanças sejam permanentes?

Alguém pode sugerir uma solução para esse problema?

    
por sudheer 08.11.2012 / 07:05

4 respostas

2

Como no cabeçalho em /etc/resolv.conf:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

Tente colocar sua alteração em

/etc/resolvconf/resolv.conf.d/base e eles devem ser adicionados ao /etc/resolv.conf quando ele for reescrito a cada 15 minutos.

    
por fabricator4 10.11.2012 / 21:58
1
  

ISENÇÃO DE RESPONSABILIDADE! Seguir esta resposta pode causar problemas inesperados se seus servidores DNS forem gerenciados como parte do gerenciador de rede - enquanto isso forçará o uso dos servidores DNS quer acima do sistema dnsmasq e dos servidores DNS nas configurações do gerenciador de rede, ele fará isso para tudo . Além disso, certas redes e / ou conexões podem exigir que você use seus servidores DNS para acessar a Internet resolvendo as coisas.

Edite /etc/resolvconf/resolv.conf.d/head e adicione o registro nameserver 1.2.3.4 aqui.

Isso funciona no 14.04, mesmo em uma instalação do Desktop. Eu sei disso porque eu tenho um servidor DNS localmente rodando (via bind9 ) no meu laptop localmente para resolução de zona local (já que eu faço muita coisa de máquina virtual), e é necessário consultar meu DNS local acima de tudo .

    
por Thomas Ward 17.03.2015 / 01:37
0

Aqui está um procedimento genérico que corrige alguns erros conhecidos no tratamento de informações do servidor de nomes.

O resolvconf está instalado? Se sim, faça o seguinte.

sudo dpkg-reconfigure resolvconf

Se não estiver instalado, faça o seguinte.

sudo apt-get install resolvconf

Agora que o resolvconf está instalado corretamente, reinicialize para que o resolvconf seja fornecido com as informações do servidor de nomes.

Se o serviço de nomes ainda estiver quebrado e você estiver usando o NetworkManager para gerenciar a rede, abra /etc/NetworkManager/NetworkManager.conf em um editor e comente a linha "dns = dnsmasq". Para comentar, coloque um caractere '#' no começo da linha.

gksudo gedit /etc/NetworkManager/NetworkManager.conf

Em seguida, vá para o editor de conexão e verifique se a conexão que você está usando está configurada corretamente. Por exemplo, na maioria das vezes "indicador de rede | Editar conexões ... | Com fio | Conexão com fio 1 | Editar ... | Configurações IPv4 | Método" está definido como "Automático (DHCP)" e nenhum endereço "Servidor DNS adicional" está definido.

Em seguida, reinicie o gerenciador de rede.

sudo restart network-manager

Agora confirme que os endereços esperados dos servidores de nomes aparecem em /etc/resolv.conf.

Se você não estiver usando o NetworkManager para configurar interfaces e estiver usando ifup , edite /etc/network/interfaces e inclua dns-nameservers e dns-search linhas na sub-rotina iface apropriada, conforme necessário. Certifique-se de que /etc/resolvconf/resolv.conf.d/head contenha apenas linhas de comentários e que /etc/resolvconf/resolv.conf.d/base e /etc/resolvconf/resolv.conf.d/tail estejam ausentes ou vazios . Então ifdown e ifup da interface. Confirme se os endereços dos servidores de nomes que você adicionou ao / etc / network / interfaces agora aparecem em /etc/resolv.conf.

Se o serviço de nomes ainda não funcionar, provavelmente há um problema local: um servidor DHCP configurado incorretamente, por exemplo. Outra causa conhecida de problemas são os clientes VPN de terceiros que eliminam o link simbólico /etc/resolv.conf. Se a sua LAN parecer boa e você não estiver usando software de rede de terceiros, envie um relatório de bug para o NetworkManager ou o resolvconf, o que você acha que é mais provável que seja o culpado.

    
por jdthood 10.11.2012 / 23:43
0

Eu mesmo lutei com dns e publiquei uma pergunta e uma solução para ela, que lista algumas das maneiras você pode alterar as configurações de DNS. Basicamente, existem duas maneiras - editar qualquer um dos três arquivos em /etc/resolvconf/resolv.conf.d/ ou editar /etc/dhcp/dhclient.conf . Eu pessoalmente prefiro o primeiro.

Abaixo estão alguns dos métodos que eu aplico aos meus sistemas de ubuntu e linux mint. Use a sua discrição.

/etc/dhcp/dhclient.conf

Vou começar com isso já que outros já cobriram os arquivos resolv.conf. O que você vê abaixo é parte deste arquivo. Olhe para a linha 18, que diz prepent name server . Ele adicionará seus dns especificados às configurações, independentemente da conexão usada.

  

1 # Arquivo de configuração para / sbin / dhclient, incluído no   Do Debian

 2  #       dhcp3-client package.
 3  #
 4  # This is a sample configuration file for dhclient. See dhclient.conf's
 5  #       man page for more information about the syntax of this file
 6  #       and a more comprehensive list of the parameters understood by
 7  #       dhclient.
 8  #
 9  # Normally, if the DHCP server provides reasonable information and does
10  #       not leave anything out (like the domain name, for example), then
11  #       few changes must be made to this file, if any.
12  #

13  option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

14  #send host-name "andare.fugue.com";
15  send host-name = gethostname();
16  #send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
17  #send dhcp-lease-time 3600;
18  #supersede domain-name "fugue.com home.vix.com";
19  #prepend domain-name-servers 127.0.0.1;
20  prepend domain-name-servers 208.67.220.220;
21  request subnet-mask, broadcast-address, time-offset, routers,
22          domain-name, domain-name-servers, domain-search, host-name,
23          dhcp6.name-servers, dhcp6.domain-search,
24          netbios-name-servers, netbios-scope, interface-mtu,
25          rfc3442-classless-static-routes, ntp-servers,
26          dhcp6.fqdn, dhcp6.sntp-servers;
27  #require subnet-mask, domain-name-servers;
28  #timeout 60;
29  #retry 60;
30  #reboot 10;
31  #select-timeout 5;
32  #initial-interval 2;
33  #script "/etc/dhcp3/dhclient-script";
34  #media "-link0 -link1 -link2", "link0 link1";
35  #reject 192.33.137.209;

36  #alias {
37  #  interface "eth0";

/etc/resolvconf/resolv.conf.d /

O texto de qualquer um dos três será adicionado a /etc/resolv.conf , portanto, não acho que seja importante qual você escolher. Eu usaria tail , pessoalmente. Basta abri-lo com qualquer editor de texto e adicionar nameserver 8.8.8.8 , onde 8.8.8.8 é o dns público do google, mas você pode usar qualquer dns que desejar.

Uma pequena dica

Em /etc/Network-Manager/Network-Manager.conf sugiro que você comente dns=dnsmasq line, que é um plugin para o gerenciador de rede, que vai automaticamente para o mais próximo / mais fácil de acessar dns, que pode não ser o que você deseja, se quiser passe o dns da rede e use o seu próprio.

Nota: O fato de o resolv.conf ser reescrito é, na verdade, normal - ele também é feito em todas as novas conexões na minha máquina. Embora eu não possa responder por que, meu palpite é que o NetworkManager obtém o dhcp por meio da conexão local e usa as configurações da conexão local, dns e qualquer outra coisa, então o resolv.conf precisa ser adaptado para isso.

    
por Sergiy Kolodyazhnyy 17.03.2015 / 01:49