Por que o arquivo / etc / hosts não está funcionando?

27
Eu tenho tido problemas com isso por um tempo e tenho tentado tudo o que sei, então achei que finalmente era hora de pedir ajuda.

Qualquer edição que eu faço para /etc/hosts simplesmente não funciona.

Exemplo:

[email protected]:~$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   ifrit
192.168.1.100   dev.julianfernand.es

No exemplo acima, quando eu acesso dev.julianfernand.es (isso não existe), ele deve ser carregado de 192.168.1.100 .

Se eu pingar, funciona muito bem. No entanto, quando acesso dev.julianfernand.es usando o Google Chrome ou o Firefox, isso não acontece.

Agora, depois que eu reinicio algumas vezes, funciona. Mas desde que eu trabalho em uma empresa gerenciada de hospedagem WordPress, eu lido com muitas situações em que tenho que editar meu arquivo para ver o site do cliente em nosso servidor.

Não consigo continuar reiniciando meu computador. Não é produtivo em tudo. Reiniciar o serviço de rede não funciona, mesmo para limpar o cache (até mesmo o cache interno do DNS do Chrome).

Alguém tem uma ideia aqui? Isso acontece com elementaryOS (baseado no Ubuntu 12.04) e no Ubuntu 13.10 (diariamente). Ainda não tentei com nenhuma outra versão.

PS: se for esse o caso, eu tenho um servidor NGINX rodando nesta máquina com PHP-FPM e MySQL.

Agradecemos antecipadamente:)

    
por Julian Fernandes 18.09.2013 / 17:59

8 respostas

13

No Ubuntu, se você quiser liberar o cache DNS, você precisa reiniciar o nscd daemon.

Instale nscd usando o seguinte comando:

sudo apt-get install nscd

Libere o cache DNS no Ubuntu usando o seguinte comando:

sudo service nscd restart

OR

sudo service dns-clean start

Referência: link

    
por Arnold 18.09.2013 / 18:42
6

Para mim, a solução foi editar o arquivo /etc/nsswitch.conf (você pode usar o comando sudo vim /etc/nsswitch.conf ). Eu mudei de linha:

hosts:          files mdns4_minimal [NOTFOUND=return] dns

para:

hosts:          dns files mdns4_minimal [NOTFOUND=return]

e agora está funcionando como esperado!

    
por jmarceli 23.04.2015 / 23:22
5

O seguinte funcionou para mim: adicione

addn-hosts=/etc/hosts

em

/etc/NetworkManager/dnsmasq.d/hosts.conf

mate o dnsmasq e

service NetworkManager restart
    
por Ruediger 20.02.2016 / 19:23
4

A resposta aceita funciona entre 12.04 e 13.04 desativando dnsmasq , mas parou de funcionar para mim em 13.10. Eu encontrei a seguinte nova solução para 13.10.

Edite seu / etc / default / dnsmasq e altere ENABLED=1 para ENABLED=0 e reinicie.

    
por Mark E. Haase 18.02.2014 / 23:18
3

De: link

Um novo "recurso" na edição de desktop do Ubuntu 12.04 é usar dnsmasq como um plugin para o NetworkManager para DNS local. O Dnsmasq é destinado a acelerar os serviços DNS e DHCP, mas vem com um efeito colateral infeliz: dnsmasq armazena em cache o DNS local e ignora as alterações em /etc/hosts . Eu faço alterações frequentes no arquivo hosts enquanto estou trabalhando em sites, então esse "recurso" era bem chato.

A solução é desabilitar dnsmasq no arquivo de configuração do Networkmanager. Abra /etc/NetworkManager/NetworkManager.conf e comente a linha:

dns=dnsmasq

Meu arquivo NetworkManager.conf contém o seguinte:

[main]
plugins=ifupdown,keyfile
# dns=dnsmasq

[ifupdown]
managed=false

Veja também o link

    
por Panther 18.09.2013 / 19:32
1

Simples e atualizado

  1. Crie /etc/NetworkManager/dnsmasq.d/hosts.conf .
  2. Coloque linhas como address=/whatever/1.2.3.4 nele. Veja os documentos (procure --address ). Curingas são possíveis: address/.whatever./1.2.3.4 .
  3. Mate dnsmasq ( bug ).
  4. Reinicie: $ service network-manager restart .
por mightyiam 12.08.2015 / 00:28
0

Parece que sua configuração é muito parecida com a minha. Eu tenho uma caixa rodando o Ubuntu como meu servidor de escritório e host de desenvolvimento. Nessa caixa, eu executo os aplicativos Nginx, Apache, Tomcat, Rails e o que mais eu precisar.

No meu Mac, posso simplesmente adicionar uma entrada de host e carregar o servidor com qualquer nome que eu precise, mas, a partir de um cliente ElementaryOS, isso não funciona.

Eu tentei as correções acima, sem sucesso.

O que fiz foi executar o Squid Proxy Server e adicionar os nomes de host ao / etc / hosts no servidor. (A edição requer um reinício do squid.)

Depois disso, faça as configurações de proxy apropriadas no seu navegador ou no painel de controle do sistema operacional.

    
por Jim O'Connell 05.02.2014 / 23:01
0

Verifique as permissões no arquivo /etc/hosts .

Em meu serviço de nuvem após clonar um servidor, as permissões no arquivo de hosts foram alteradas de 644 para 600 , portanto, o arquivo não pôde ser lido pelo apache ( www-data ), eu acho. Eu corri sudo chmod 644 hosts de /etc e isso resolveu.

O problema começou como:

MongoConnectionException Failed to connect to: localhost:27017: Previous connection attempts failed, server blacklisted. 

Eu o rastreei até a variável do servidor no MongoClient apontando para o localhost. Não consegui fazer o ping de host local ou o nome do host.

    
por user228414 01.10.2015 / 20:03