Perché il file / etc / hosts non funziona?

27

Ho avuto problemi con questo per un po 'e ho provato tutto quello che so, quindi ho pensato che fosse finalmente giunto il momento di chiedere aiuto.

Qualsiasi modifica apportata a /etc/hosts non funziona.

Esempio:

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

Nell'esempio sopra, quando accedo a dev.julianfernand.es (questo non esiste), dovrebbe caricare da 192.168.1.100 .

Se faccio ping, funziona bene. Tuttavia, quando accedo a dev.julianfernand.es utilizzando Google Chrome o Firefox, non lo è.

Ora, dopo aver riavviato un paio di volte, funziona. Ma dal momento che lavoro in un'azienda di hosting WordPress gestita, mi occupo di molte situazioni in cui devo modificare il mio file per vedere il sito Web del cliente sul nostro server.

Non riesco a continuare a riavviare il mio computer. Non è affatto produttivo. Il riavvio del servizio di rete non funziona, lo stesso vale per la cancellazione della cache (anche la cache interna del DNS di Chrome).

Qualcuno ha un'idea qui? Questo succede con elementaryOS (basato su Ubuntu 12.04) e Ubuntu 13.10 (quotidiano). Non ho ancora provato con un'altra versione.

PS: se questo problema, ho un server NGINX in esecuzione su questa macchina con PHP-FPM e MySQL.

Grazie in anticipo:)

    
posta Julian Fernandes 18.09.2013 - 17:59

8 risposte

13

In Ubuntu se desideri svuotare la cache DNS, devi riavviare nscd daemon.

Installa nscd usando il seguente comando:

sudo apt-get install nscd

Svuota la cache DNS in Ubuntu usando il seguente comando:

sudo service nscd restart

o

sudo service dns-clean start

Riferimento: link

    
risposta data Arnold 18.09.2013 - 18:42
6

Per me la soluzione era modificare il file /etc/nsswitch.conf (puoi usare il comando sudo vim /etc/nsswitch.conf ). Ho cambiato linea:

hosts:          files mdns4_minimal [NOTFOUND=return] dns

a:

hosts:          dns files mdns4_minimal [NOTFOUND=return]

e ora funziona come previsto!

    
risposta data jmarceli 23.04.2015 - 23:22
5

Quanto segue ha funzionato per me: aggiungi

addn-hosts=/etc/hosts

in

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

kill dnsmasq e

service NetworkManager restart
    
risposta data Ruediger 20.02.2016 - 19:23
4

La risposta accettata funziona tra 12.04 e 13.04 disattivando dnsmasq , ma ha smesso di funzionare per me in 13.10. Ho trovato la seguente nuova soluzione per 13.10.

Modifica il tuo / etc / default / dnsmasq e cambia ENABLED=1 in ENABLED=0 e riavvia.

    
risposta data Mark E. Haase 18.02.2014 - 23:18
3

Da: link

Una nuova "funzionalità" nell'edizione desktop di Ubuntu 12.04 è quella di usare dnsmasq come plugin per NetworkManager per il DNS locale. Dnsmasq ha lo scopo di velocizzare i servizi DNS e DHCP, ma ha uno sfortunato effetto collaterale: dnsmasq memorizza nella cache il DNS locale e ignora le modifiche a /etc/hosts . Apporto modifiche frequenti al file degli host mentre lavoro sui siti web, quindi questa "funzionalità" era piuttosto fastidiosa.

La soluzione è disabilitare dnsmasq nel file di configurazione di Networkmanager. Apri /etc/NetworkManager/NetworkManager.conf e commenta la riga:

dns=dnsmasq

Il mio file NetworkManager.conf contiene quanto segue:

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

[ifupdown]
managed=false

Vedi anche link

    
risposta data Panther 18.09.2013 - 19:32
1

Semplice e aggiornato

  1. Crea /etc/NetworkManager/dnsmasq.d/hosts.conf .
  2. Inserisci righe come address=/whatever/1.2.3.4 in essa. Vedi i documenti (cerca --address ). I caratteri jolly sono possibili: address/.whatever./1.2.3.4 .
  3. Elimina dnsmasq ( bug ).
  4. Riavvia: $ service network-manager restart .
risposta data mightyiam 12.08.2015 - 00:28
0

Sembra che il tuo setup sia molto simile al mio. Ho una scatola con Ubuntu come server di Office e host di sviluppo. In quella scatola, eseguo app Nginx, Apache, Tomcat, Rails e qualsiasi altra cosa di cui ho bisogno.

Dal mio Mac, posso semplicemente aggiungere una voce host e caricare il server con qualsiasi nome io abbia bisogno, ma da un client ElementaryOS, che non funziona.

Ho provato le correzioni di cui sopra, senza successo.

Quello che ho fatto è stato eseguire Squid Proxy Server e aggiungere gli hostname a / etc / hosts sul server. (La modifica richiede il riavvio di Squid.)

Successivamente, imposta le impostazioni proxy appropriate nel browser o nel pannello di controllo del sistema operativo.

    
risposta data Jim O'Connell 05.02.2014 - 23:01
0

Verifica le autorizzazioni sul file /etc/hosts .

Sul mio servizio cloud dopo la clonazione di un server le autorizzazioni sul file hosts sono cambiate da 644 a 600 , quindi il file non può essere letto da apache ( www-data ). Ho eseguito sudo chmod 644 hosts da /etc e l'ho risolto.

Il problema è iniziato come:

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

L'ho rintracciato fino alla variabile del server in MongoClient che punta a localhost. Non è stato possibile eseguire il ping di localhost o del nome host.

    
risposta data user228414 01.10.2015 - 20:03

Leggi altre domande sui tag