Como configuro meu DNS estático nas interfaces?

60

Estou usando o Ubuntu 12.04.

Meu /etc/network/interfacesarquivo consiste em:

# The loopback network interface  
auto lo  
iface lo inet loopback  


# The primary network interface  
auto eth0 
iface eth0 inet static  
address 192.168.1.58  
gateway 192.168.1.1
network 192.168.1.0  
broadcast 192.168.1.255
dns-nameservers 66.212.63.228 66.212.48.10  

Eu executei o comando: /etc/init.d/networking restart

O que respondeu com:

*Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces  
*Reconfiguring network interfaces...  
RTNETLINK answers: File exists  
Failed to bring up eth0  
[ OK ]  

Em seguida, executei o ping google.com e recebi:

ping: unknown host google.com

Não tenho certeza se minhas interfaces foram atualizadas. Como configuro corretamente minha rede com meus endereços DNS estáticos?

pontilhado
fonte
11
Reinicie o computador. Não execute /etc/init.d/networking restart. O erro é causado pela rota padrão já existente. Essa configuração parece correta para mim.
Matt H
2
Como diz Matt H, /etc/network/interfacesé exigente quanto às coisas já existentes. Você pode ter uma configuração perfeita, mas já tem algo lá, e ele irá reclamar. Se é a rota padrão, ele está reclamando, você pode removê-lo através da execução ip route del defaultpara obter o computador em um estado onde você pode entregar a gestão deste material para/etc/network/interfaces
Azendale
O gerente de rede reivindicou outra vítima. Apenas exclua esse lixo.
Owl

Respostas:

24

Como o questionador fornece o conteúdo dele /etc/network/interfaces, deduzo que ele está usando o ifup para configurar interfaces. Mas como ele pode realmente estar usando o NetworkManager, discutirei isso também.

Se você estiver usando ifup, as configurações de DNS serão incluídas /etc/network/interfaces. Para cada interface, você adiciona dns-*opções apropriadas para os servidores de nomes disponíveis nessa interface. Por exemplo, se um servidor de nomes no endereço 1.2.3.4 estiver disponível na interface eth0, adicione dns-nameservers 1.2.3.4-o à iface eth0sub - rotina.

Se você estiver usando o NetworkManager, as configurações serão inseridas no Editor de conexões (indicador de rede | Editar conexões ...) na guia Configurações IPv4.

Fazer /etc/init.d/networking restartpara reconfigurar interfaces foi descontinuado. Se você estiver usando ifup, primeiro ifdowncada interface de rede ativa e, em seguida, ifupcada interface. Se você estiver usando o NetworkManager, primeiro desative a rede usando o indicador (parte superior da área de trabalho); abra um terminal e execute

sudo /etc/init.d/network-manager restart

e habilite a rede usando o indicador.

Ou você pode simplesmente reiniciar.

Em relação ao fato de /etc/init.d/networking restartresultar em

RTNETLINK answers: File exists
Failed to bring up eth0  

Isso significa que o ifupdown acha que eth0já está ativo . Use ifdown --force eth0para fazer ifupdowncom que pare de acreditar que ele já configurou a interface.

Com relação à mensagem "obsoleta", esta mensagem não é mais impressa no Ubuntu 12.10, mas você ainda deve observar que os initscripts estão "saindo". Para reiniciar um serviço foo, use service foo restartou restart foo. Observe também que se você deseja reconfigurar suas interfaces, é melhor reduzi-las uma a uma do que confiar na reinicialização da "rede".

jdthood
fonte
17

Se nenhuma das opções acima funcionar, lembre-se de que o Ubuntu anexa um tailarquivo ao arquivo resolv.conf que ele gera.

Tente o seguinte:

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

O que abrirá um arquivo resolv.conf.d em branco no editor de nano texto. Você precisará colocar o endereço do servidor DNS na primeira linha deste arquivo e lembre-se de finalizar a linha com um retorno de carro (pressione enter), conforme mostrado abaixo:

nameserver 10.20.1.2

A edição do arquivo final em vez do arquivo resolv.conf impedirá que sua alteração seja perdida na reinicialização do sistema.

Você precisará executar sudo resolvconf -upara ativar a alteração. Você poderá executar ping no google.com depois disso. Boa sorte!

Sean Huggans
fonte
Parece bom, mas meu sistema Ubuntu 14.04 não usou esse arquivo de cauda. Portanto, isso não é uma solução no meu caso. Obrigado embora.
James T Snell
11

Versão da linha de comando:

Você deve adicionar seu (s) servidor (s) de nomes para /etc/resolvconf/resolv.conf.d/basearquivar desta maneira:

nameserver 66.212.63.228 
nameserver 66.212.48.10
pl1nk
fonte
Vou ter que tentar esse método em algumas horas e voltar para você. Você sabe por que estou recebendo a mensagem obsoleta e a mensagem de falha eth0 foi exibida?
Dottedquad
11
Você pode usar isso: $ ifdown eth0 && ifup eth0Leia mais sobre esse problema aqui .
Pl1nk
11
@dottedquad o que é que você alterar o arquivo / etc / network / interfaces para isto: auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.58 gateway 192.168.1.1 network 192.168.1.0 broadcast 192.168.1.255Tome cuidado para que isso: auto eth0 iface eth0 inet staticé duas linhas
pl1nk
11
É melhor adicionar informações do servidor de nomes às conexões do NetworkManager (se você estiver usando o NetworkManager), como descrito por bodhi.zazen, ou para definir as definições de interface em / etc / network / interfaces (se você estiver usando ifup) do que adicionar as informações de maneira estática e global. para /etc/resolvconf/resolv.conf.d/base.
Jdthood #
11
@jdthood Parece que você já viu meus comentários e perguntas, além de outras respostas! Alguns comentários [..] "Você pode usar isso: $ ifdown eth0 && ifup eth0" [..]
pl1nk
11

Todas as respostas relacionadas ao / etc / network / interfaces afirmam incorretamente dns-nameserverse não dns-nameserverabaixo - devem funcionar:

auto wlan0
iface wlan0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 8.8.8.8
dns-nameserver 8.8.4.4
dns-search something.network.com

(testado no Ubuntu 15.04)

babelmonk
fonte
8
Cuidado. Acabei de confirmar que dns-nameserver(singular) não funciona no RaspberryPi + Raspian Jesse. Eu descobri que tinha que usar dns-nameservers(plural). YMMV e tudo isso, apenas tentando ajudar a próxima pessoa ...
evadeflow
2
Verifique sua página de manual resolvconf (8) para uso e opções. No Ubuntu 16.04.3 LTS, ele diz que você usa uma ou mais linhas de servidor de nomes de DNS com um único endereço IP por linha, ou pode usar servidores de nomes de DNS e uma lista de endereços IP separados por espaço.
JLA
dns-nameserverou dns-nameservers? porque wiki.ubuntu.com/KvmWithBridge diz "servidores" ...
Thufir
Definitivamente não funciona para mim. Não é possível votar, ainda não há pontos suficientes.
Owl
Yey, isso é bom e consistente então! Desculpe pela confusão, verifique os dois e verifique os comentários acima, pois parece que diferentes variantes do Ubuntu / Debian / Raspian são diferentes.
babelmonk 12/03
6

O método mais fácil de configurar seus servidores DNS é usar o NetworkManager

Em IPv4, preencha os servidores DNS

insira a descrição da imagem aqui

Pantera
fonte
2
Esqueci de mencionar que não tenho unidade ou gnome instalado. O Gnome installatio é o meu próximo projeto.
Dottedquad
Não vai me deixar guardar isso. por que poderia ser isso?
josh
4

Consegui contornar isso em uma instalação sem servidor do Ubuntu, adicionando

nameserver 8.8.8.8

... após o material relevante da interface em / etc / network / interfaces:

auto wlan0
iface wlan0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
dns-nameservers 8.8.4.4

Espero que isso ajude os usuários posteriores!

corq
fonte
pois dns-nameserversvocê pode vírgula separada 8.8.8.8, 8.8.4.4?
Thufir
11
@Thufir spaces wiki.debian.org/NetworkConfiguration
Philippe Gachoud
4

Nota: cuidado ao usar sem acesso direto à máquina, isso cortará a conexão ...

eu uso

sudo ifdown eth0

então

sudo ifup eth0

Ele irá redefinir e liberar tudo ...

Se houver erros relacionados à configuração, você poderá usar:

sudo ifdown eth0 --force
user294233
fonte
3

Isso funcionou para mim

sudo vi /etc/resolvconf/resolv.conf.d/base

e adicione:

nameserver <add your router ip>

Corre:

sudo resolvconf -u

Eu uso a instalação principal do servidor ubuntu.

Bongo
fonte
2

Está faltando uma especificação de sub-rede no arquivo de interfaces.

Adicione máscara 255.255.255.0de rede /etc/network/interfacesabaixo da linha de rede.

Brian
fonte
1

Por alguma razão, a dns-nameserversafirmação não faz nada no meu caso. E as outras respostas não estão no livro, pois ignoram dnsmasqcomo é utilizado no Ubuntu.

Para fazer isso direito, edite /etc/dnsmasq.conf

Adicione seus servidores de nomes na parte inferior do arquivo:

server=8.8.8.8
server=8.8.4.4

Reinicie o dnsmasq para usar as novas configurações: sudo service dnsmasq restart

Crédito: https://unix.stackexchange.com/a/163506/187949

DustWolf
fonte
1

Eu tive esse problema. Eu pensei que estava ficando louco. Sempre que editei /etc/resolv.conf, ele excluiu minha configuração. Acontece que alguns lunáticos totais distribuíram o debian com o gerenciador de rede, que está substituindo todas as minhas configurações de rede.

Foi assim que eu consertei:

1) sudo apt-get purge network-manager

Isso elimina essa horrenda ferramenta nova que impede que todas as configurações funcionem corretamente.

2) Edite o /etc/network/interfacesarquivo:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto enp0s25
iface enp0s25 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        gateway 192.168.1.1

3) Edite o /etc/resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4

4) Reinicialize.

Parabéns, agora você tem configurações sãs que funcionam novamente.

Coruja
fonte
0

Você também pode configurar essa interface em outro arquivo, pois possui mais gateways.

Os detalhes estão aqui .

antivirtel
fonte