file host ignorato, come risolvere?


149

Il file hosts su computer Windows viene utilizzato per associare determinate stringhe di nomi a indirizzi IP specifici per sovrascrivere altri metodi di risoluzione dei nomi.

Spesso si decide di modificare il file hosts e si scopre che le modifiche si rifiutano di avere effetto o che anche le voci precedenti del file hosts vengono ignorate in seguito. Un certo numero di errori "gotcha" può causare questo, e può essere frustrante capire quale.

Di fronte al problema di Windows che ignora un file hosts, qual è un protocollo di risoluzione dei problemi completo che può essere seguito?


Questa domanda ha duplicati su SO, come il file HOSTS che viene ignorato

Tuttavia, questi tendono a trattare un caso specifico e, una volta scoperto qualsiasi errore commesso dall'OP, la discussione è finita. Se non ti capita di aver commesso lo stesso errore, una discussione del genere non è molto utile. Quindi ho pensato che sarebbe stato più utile avere un protocollo generale per risolvere tutti i problemi relativi agli host che coprissero tutti i casi.


12
Inoltre, come qualcuno ha pubblicato altrove, non usare "nslookup" per testarlo perché quel comando ignora il file hosts. Piuttosto usa "ping".
LatinSuD

Possibile duplicato del file HOSTS ignorato
030

Risposte:


220

Sulla base della mia esperienza personale e di ciò che ho riscontrato mentre cercavo su Google, ecco alcune cose da provare:

1. Hai verificato che funzioni correttamente?

Le modifiche agli host dovrebbero avere effetto immediato, ma Windows memorizza nella cache i dati sulla risoluzione dei nomi, quindi per un po 'di tempo è possibile utilizzare i vecchi record. Apri una riga di comando (Windows + R cmd,, Invio) e digita:

ipconfig /flushdns

Per eliminare i vecchi dati. Per verificare se funziona, usa (supponendo che tu abbia una voce ipv4 nei tuoi host per www.example.com o una voce ipv6 nei tuoi host per ipv6.example.com):

ping www.example.com -n 1
ping -6 ipv6.example.com -n 1

E vedi se utilizza l'IP corretto. In caso affermativo, il file hosts va bene e il problema è altrove.

Inoltre, è possibile ripristinare la cache NetBios con (aprire la console come amministratore o non funzionerà):

nbtstat -R

Puoi controllare i dati correnti nella cache DNS con:

ipconfig /displaydns | more

2. Nozioni di base

  • Il tuo file hosts è stato nominato correttamente? Dovrebbe essere hostse non host, ecc.
  • L'estensione è corretta? Non dovrebbe avere estensione ( hostsnon hosts.txt) - fai attenzione se hai configurato Windows per nascondere le estensioni conosciute, controlla le proprietà per essere sicuro: il tipo di file host corretto apparirà come "File".
  • Hai seguito la sintassi corretta ? Hai accidentalmente prefisso le righe con un hash ( #) che indica i commenti?
  • Ti sei preso cura di tutte le varianti ( www.example.come example.com- più sicuro di aggiungere solo entrambi)?

3. Spazio bianco

Il formato per ogni riga è IP address, quindi una scheda orizzontale (codice di escape \t, ASCII HT, hex 0x09) o un singolo spazio (hex 0x20), quindi il nome host, ovvero. www.example.com, infine un ritorno a capo seguito da un avanzamento riga (codici di escape \r\n, ASCII CRLF, hex 0x0d 0x0a).

Voci di esempio, usando le immagini di controllo Unicode per indicare i caratteri di controllo. (Non copiarli e incollarli nel file hosts!)

192.0.2.1␉www.example.com␍␊
2001:db8:8:4::2␉ipv6.example.com␍␊

I singoli byte possono essere visualizzati in Notepad ++ con il plugin dell'editor esadecimale . Notepad ++ mostrerà anche caratteri speciali (Visualizza -> Mostra simbolo) in modo da poter facilmente ispezionare il numero e il tipo di spazi bianchi.

Se hai copiato e incollato le voci degli host da qualche parte, potresti finire con più spazi. In teoria, gli host supportano più spazi che separano le due colonne, ma è un'altra cosa da provare se nient'altro funziona.

Per essere al sicuro, assicurati che tutte le linee nel tuo file host utilizzino schede o spazi, non entrambi.

Infine, termina il file con una riga vuota.

4. Chiave di registro

Esiste una chiave di registro che specifica la posizione del file hosts. Presumibilmente, Windows in realtà non supporta l'inserimento del file hosts in altre posizioni, ma potresti voler controllare. La chiave è:

\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath

La voce dovrebbe essere:

%SystemRoot%\System32\drivers\etc

5. Autorizzazioni

A volte ci sono problemi con le autorizzazioni sul file, gli attributi del file e cose simili. Per ricreare il file con le autorizzazioni predefinite:

  1. Crea un nuovo file di testo sul desktop.
  2. Copia e incolla il contenuto del file host corrente in questo file nel Blocco note.
  3. Salvare il nuovo file di testo e rinominarlo in hosts.
  4. Copia ( non spostare ) il file nella tua %SystemRoot%\System32\drivers\etcdirectory e sovrascrivi il vecchio file.

L'ultimo punto è importante: la copia funziona, lo spostamento no.

L' Usersaccount locale deve essere in grado di leggere il file hosts . Per assicurarsi (in Windows 7):

  1. Passare a %SystemRoot%\System32\drivers\etcEsplora risorse.
  2. Se non riesci a vedere il hostsfile, assicurati di poter vedere i file nascosti e di sistema .
  3. Fare clic con il tasto destro sul hostsfile e selezionare Propertiesdal menu contestuale.
  4. Nella hosts Propertiesfinestra, fai clic sulla Securityscheda.
  5. Esamina l'elenco dei nomi nella Group or user names:casella. Se %COMPUTERNAME%\Userspresente, fai clic su di esso per visualizzare le autorizzazioni.
  6. Se Usersnon è presente o è presente ma non dispone Readdell'autorizzazione, fare clic su Edit....
  7. Se Usersnon è presente, fare clic Add..., digitare Users, fare Check Namesclic e fare clic su OK o premere Invio.
  8. Selezionare Userse assicurarsi che Read & executesia selezionato nella Allowcolonna. Clicca OK. Se viene visualizzata una Windows Securityfinestra di avviso, scegliere Yesdi continuare.
  9. Fai clic su OK per chiudere la hosts Propertiesfinestra.
  10. Vai alla sezione 1 di questa risposta e segui le istruzioni per verificare se funziona ora.

6. Codifica

Il file hosts dovrebbe essere codificato in ANSI o UTF-8 senza BOM. Puoi farlo con File -> Salva con nome.

7. Proxy

Se hai configurato un proxy, potrebbe ignorare il file hosts. La soluzione è non utilizzare il proxy o configurarlo per non farlo.

Per verificare, vai su Internet Explorer -> Opzioni Internet -> Connessioni -> Impostazioni LAN. Se tutto è vuoto e "Rileva automaticamente impostazioni" è selezionato, non stai usando un proxy.

Se si fa affidamento su un proxy per accedere al Web e pertanto non si desidera disabilitarlo, è possibile aggiungere eccezioni andando a Internet Explorer -> Opzioni Internet -> Connessioni -> Impostazioni LAN -> Server proxy / Avanzato. Quindi aggiungi le tue eccezioni alla casella di testo Eccezioni. Per esempiolocalhost;127.0.0.1;*.dev

8. indirizzo DNS

(Ciò può anche risolvere i problemi del proxy.)

Vai alle proprietà delle connessioni di rete, quindi alle impostazioni TCP / IP e modifica il primo server DNS in 127.0.0.1(localhost). Il secondo dovrebbe probabilmente essere l'IP del tuo DNS attuale.

Questo non è necessario per il funzionamento del file hosts , ma può essere utile nel tuo caso se qualcosa è configurato in modo strano.

9. .local address

Se si utilizza una voce di dominio .local sotto forma di myhost.local e viene ignorata, provare quanto segue

x.x.x.x myhost.local www.myhost.local

anche se www.myhost.local non esiste. Windows in qualche modo non aggiunge il suo gruppo di lavoro o il suo localdomain.


3
GRAZIE TANTO SUPERBEST! Sto quasi piangendo, così tanti dei nostri impazziscono per uno SPAZIO all'inizio di una voce vuota tra 2 righe. Grazie Grazie Grazie Grazie Grazie !!!!!

1
Un altro problema è che le versioni a 64 bit di Windows reindirizzano la cartella System32 per le applicazioni a 32 bit (come Notepad ++), quindi quando si salva il file viene visualizzato nella cartella SystemWOW64 anziché System32. La soluzione migliore è utilizzare solo la versione di Windows di Blocco note a 64 bit. La seconda cosa migliore è connettersi alla condivisione amministrativa (\\ yourmachinename \ c $ \ Windows \ System32 \ drivers \ etc) per aprire il file se si utilizza un editor a 32 bit.
Tim Lewis,

4
Buon post, ma con un paio di errori. 1) "Rileva automaticamente impostazioni" in Internet Explorer può portarti a (anche inconsapevolmente) utilizzare un proxy, se la tua rete effettivamente fornisce la configurazione automatica del proxy. 2) La modifica dei server DNS nelle impostazioni di rete non ha nulla a che fare con il modo / quando / se il hostsfile viene utilizzato e la modifica in 127.0.0.1 è effettivamente un errore, a meno che non si stia eseguendo effettivamente un server DNS sul computer.
Massimo

1
# 5 (creare un nuovo file e copiarlo) ha fatto il trucco per me. Win7 può essere divertente con le autorizzazioni.
chris,

1
Ho modificato il file hosts in Cygwin usando vim, penso che questo abbia causato il problema del mio file hosts che smette di funzionare. Ho dovuto creare un nuovo file e copiato il contenuto del precedente file hosts e questo è stato risolto.
rimandare il

16

Assicurati di aver inserito prima l'indirizzo IP e poi il "dominio" in questo modo:

127.0.0.1   bo.dev
127.0.0.1   www.bo.dev

6
Preferisco usare una sola riga:127.0.0.1 bo.dev www.bo.dev ftp.bo.dev
Xhynk,

1
Attenzione, il file hosts di Windows consente solo nove o meno voci per riga! Questo mi ha morso e ci è voluto un po 'per capire.
Andrew

Non utilizzare il .devTLD localmente pensando che non si otterranno collisioni. Si tratta di un TLD globale generico valido di proprietà di Google e avrai molti problemi a utilizzarlo. Vedi ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts
Patrick Mevzek,

Errore da principiante, ma ha funzionato. Doh! li ha fatti nominare all'indietro quindi IP
riscatta l'

11

Aggiungi le autorizzazioni per il controllo dei file. Ho scoperto che anche se avevo i diritti di amministratore locale sul computer e quindi sugli host. Non è stato fino a quando non ho aggiunto gli utenti locali alle autorizzazioni del file hosts con Read and Read & Execute e quindi un ipconfig / flushdns che gli host sono diventati attivi.


3
Questo è stato! Sono stato sconcertato da questo problema per anni . Ho aggiunto (machine)\USERScon le autorizzazioni di lettura e lettura ed esecuzione e dopo ipconfig /flushdnsche ha funzionato. Grazie mille. Sono molto contento di riavere finalmente il mio file hosts.
Clemente Cherlin,

7

Nei miei casi ho provato il file creato da Windows 7: C: \ Windows \ System32 \ drivers \ etc \ hosts.ics.

Hosts.ics:

# This file has been automatically generated for use by Microsoft Internet
# Connection Sharing. It contains the mappings of IP addresses to host names
# for the home network. Please do not make changes to the HOSTS.ICS file.
# Any changes may result in a loss of connectivity between machines on the
# local network.

Di conseguenza, Windows ignora le impostazioni in C: \ Windows \ System32 \ drivers \ etc \ hosts e lo utilizza da hosts.ics.


1
Da support.microsoft.com/en-us/kb/309642/en-us , che è vecchio, quindi forse non è più preciso: "Il file Hosts.ics viene utilizzato da ICS per archiviare informazioni sui client configurati dinamicamente. Evita di apportare modifiche a questo file per impedire la perdita di connettività o dati. Il file Hosts (senza estensione del nome file) è il file a cui si aggiungono informazioni sui client configurati staticamente. " Quindi, NON mi aspetto che Windows ignori il Hostsfile solo perché Hosts.icsè presente. Qualcos'altro potrebbe causare a Windows di ignorare i file Hosts, come forse un'estensione errata (ma nascosta).
Arjan,

1
Vedo queste informazioni. Ma non so perché sono riuscito a far funzionare gli host solo se ho modificato hosts.ics. Prima di modificare hosts.ics, ho provato tutti i metodi da questo argomento, ma gli host non funzionano.
Disinserire il

Grazie! Mi hai salvato la vita. Ha funzionato su Windows 10
Xatenev il

3

Stavo riscontrando lo stesso problema, le voci del file host venivano ignorate. Ho provato di tutto in questo e in molti altri thread senza fortuna. Ho pensato di pubblicare ciò che ha funzionato per me nel caso in cui qualcuno si imbattesse in questo.

  1. Apri Esplora risorse come amministratore
  2. ELIMINA il file hosts
  3. Apri il blocco note come amministratore e crea un nuovo file host
  4. Inizia da zero e aggiungi voci.
  5. Assicurarsi che il file hosts non abbia l'estensione .txt

Nota: è sufficiente aprire il file hosts ed eliminare il contenuto, verificando che fosse 0kb e aggiungendolo nuovamente non funzionava. Sospetto un problema di autorizzazioni sul file.


nota rapida: quando si modificano i file di sistema (come il file hosts), è consigliabile creare prima un backup. Per evitare la perdita di dati, considera invece la ridenominazione del file hosts esistente, come hosts.bak, e quindi procedi come descritto al passaggio 3.
nshiff

1

Ho trascorso ore, probabilmente giorni su questo.

La sicurezza di IBM Trusteer Endpoint Rapport può causare questo problema.

Avevo aggiunto mysite.com al suo elenco di siti attendibili.

Penso che, come parte della sua sicurezza, prevenga che malware o virus ti indirizzino verso siti alternativi.

Ha preso mysite dell'elenco di siti attendibili e non controlla più e "corregge" la deviazione dei file dei miei host.

Spero che ciò aiuti qualcuno a risolvere il proprio problema.


1

Assicurati di aver inserito i valori come IP NAME, non come NAME IP.

Ciò può accadere se, ad esempio, esiste una sola voce nel file e quando si ignora il testo del commento.


1

Un problema perso nella discussione sopra è i nomi non qualificati (nomi che non includono un punto) nel file hosts. Le impostazioni di rete potrebbero attivarsi a quel punto e aggiungere automaticamente il tuo dominio alla fine di un dominio non qualificato. Di conseguenza il nome potrebbe non risolversi, o peggio ancora, risolversi in una macchina completamente diversa.


0

In Windows, assicurati che HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ DataBasePath sia puntato sulla directory del file hosts.


0

Nel mio caso il problema era che stavo copiando un file hosts da una directory crittografata e sovrascrivendo il file etc / hosts con quello. Ho dovuto guardare le proprietà e deselezionare la casella di controllo "Crittografa file".


0

Il file hosts viene ignorato fino a quando non ho una connessione di rete sul mio laptop (Windows 7). Una volta connesso a una rete, tutto funziona come previsto. Ovviamente, senza una rete non posso eseguire il ping degli host ecc. Ma mi aspettavo comunque che Windows ottenga i loro indirizzi IP dal file hosts. Non Anche dopo la disconnessione cerca ancora gli indirizzi OK, ma tra il riavvio del computer e la prima connessione a una rete, ignora il file hosts.

(Per inciso, schede, spazi e nessun ritorno a capo sono tutti irrilevanti per quanto posso dire).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.