Depois de atualizar /etc/network/interfaces
com algo muito semelhante ao abaixo, como faço /etc/resolv.conf
para atualizar? Eu tentei (como root) resolver -u
, service networking restart
mas eles não funcionaram. Também corrigi o link simbólico resolv.conf
e tentei resolver -u
novamente. Finalmente, frustrado, reiniciei, o que solucionou o problema ao reconstruir /etc/resolv.conf
.
Ubuntu 12.04, servidor de 64 bits, todos os patches mais recentes instalados.
Exemplo /etc/network/interfaces
:
iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameservers 192.168.3.45 192.168.8.10
server
dns
resolv.conf
nslntmnx
fonte
fonte
Respostas:
service networking restart
nem sempre é uma maneira confiável de baixar todas as interfaces.O
resolvconf -u
comando é atualizado somente aresolv.conf
partir do próprio banco de dados do resolvconf. Você precisa atualizar o banco de dados.Para atualizar o banco de dados, é necessário chamar resolvconf com a opção
-a
ou-d
. Isso acontece nos bastidores quando você executa ifup ou ifdown. Portanto, normalmente, como em qualquer outra alteração de/etc/network/interfaces
, para ativar as alterações nas opções dns- *, é necessário desmontar a interface em questão e instalá-la novamente. Ou você pode reiniciar.Se você deseja fazer alterações em uma interface sem desativá-la (talvez porque você esteja administrando a máquina remotamente e por estar conectado por essa interface, natch), poderá obter o mesmo resultado executando o resolvconf diretamente na linha de comando. Isso requer um pouco mais de conhecimento da semântica do resolvconf. Suponha que a estrofe / e / n / i relevante seja
onde FFFF é uma família de endereços ("inet" ou "inet6").
Para ativar essas opções dns- *, execute o resolvconf da seguinte maneira (sim, com novas linhas na cadeia de caracteres direcionada para o resolvconf).
Para a estrofe dada na pergunta, seria o seguinte.
Consulte a página de manual resolvconf (8) e o arquivo README do pacote resolvconf (/usr/share/doc/resolvconf/README.gz) para obter mais informações.
fonte
resolvconf
:)/etc/network/interfaces
, você pode fazer issoifdown eth0 && ifup eth0
:; funciona mesmo em uma sessão ssh remota.Embora a página de manual não esteja instalada por padrão, ela esteja documentada através da opção de scripts de atualização, basta executar:
fonte
Para aqueles que gerenciam seus servidores remotamente, você pode:
dns-nameservers
linha/etc/network/interfaces
# ifdown eth01; ifup eth01
Observe que isso deve estar em uma linha dividida por; (o separador de linha de comando linux). Você não deve nem perder sua conexão atual. A exceção está cometendo um erro de digitação no arquivo de interfaces. Se isso acontecer
ifup
falhará e você terá que ter acesso físico ou outraethxx
conexão.fonte
service resolvconf restart
irá regenerar o/etc/resolv.conf
arquivo sem muito barulho.fonte
Failed to restart resolvconf.service: Unit resolvconf.service not found.
/etc/resolv.conf
no servidor ubuntu 14.04Essa resposta é semelhante à acima, mas usa a configuração de exemplo de perguntas para responder à pergunta. Além disso, isso explica por que os dois comandos são necessários.
Editar
/etc/network/interfaces
:Essas alterações não ocorrerão, a menos que você reinicie ou recarregue o arquivo de configuração:
Para atualizar o arquivo de interfaces ao vivo, é necessário executar o seguinte comando:
Isso permite uma atualização da interface sem uma reinicialização ou recarregamento.
No entanto, as alterações do comando acima serão perdidas após uma reinicialização, se as alterações
/etc/network/interfaces
não forem feitas.A propósito, a última resposta do BDenis nesta lista realmente funciona no lugar do último comando, analisando o
/etc/network/interfaces
arquivo e canalizando essas linhas para o comando.sudo resolvconf -a eth0
Na verdade, é metade da resposta e um bom exemplo de análise sediada em linha. Se você quiser ver como isso funciona, basta executar a primeira parte do comando e assistir ao analisar o/etc/network/interfaces
arquivo e cuspir todas as informações necessárias para executar osudo resolvconf -a eth0
comando:Observe que isso produziria o mesmo resultado que o comando:
Desde que o
/etc/network/interfaces
arquivo esteja configurado com estas informações:fonte
/etc/network/interfaces
não é uma opção válida nesse caso. (Ubuntu 14.04)Resposta simples:
Basta instalar o resolvconf.
apt install resolvconf
Depois disso,
ifup eth0
atualiza o DNSetc/resolv.conf
, de acordo com adns-nameservers
linha/etc/network/interfaces
.fonte
No 18.04, o seguinte funciona de maneira confiável (executada como raiz):
Importante: Verifique se você tem o pacote
resolvconf
instalado.Por padrão, não parece que, e sem ela, algumas alterações (!)
/etc/network/interfaces
São ignoradas silenciosamente (por exemplodns-*
).fonte
Isso funcionou para mim:
Ajuste de acordo.
fonte
Na versão desktop do Ubuntu 18.04, onde não há serviço
networking
eresolvconf
não está instalado por padrão, consegui me regenerarresolv.conf
reiniciandonetwork-manager
:fonte
Além disso, você pode tentar este comando:
fonte
dns-nameserver IP1 IP2
. A linha deve ser repetidaresolv.conf
, mas não é./etc/network/interfaces
usadns-nameservers
(observes
no final) enquantoresolvconf
usanameserver
. O comando não lida com isso. E mesmo que tudo estivesse correto, o pipelinesed | grep | sed
definitivamente não seria a maneira mais eficiente.