archivo de hosts ignorado, ¿cómo solucionar problemas?

149

El archivo hosts en las computadoras con Windows se usa para vincular ciertas cadenas de nombres a direcciones IP específicas para anular otros métodos de resolución de nombres.

A menudo, uno decide cambiar el archivo de hosts y descubre que los cambios se niegan a tener efecto, o que incluso las entradas antiguas del archivo de hosts se ignoran a partir de entonces. Una serie de errores de "gotcha" pueden causar esto, y puede ser frustrante descubrir cuál.

Cuando se enfrenta con el problema de que Windows ignora un archivo de hosts, ¿cuál es un protocolo integral de solución de problemas que se puede seguir?


Esta pregunta tiene duplicados en SO, como el archivo HOSTS que se ignora

Sin embargo, estos tienden a tratar un caso específico, y una vez que se descubre el error que cometió el OP, la discusión ha terminado. Si no ha cometido el mismo error, tal discusión no es muy útil. Así que pensé que sería más útil tener un protocolo general para resolver todos los problemas relacionados con los hosts que cubrieran todos los casos.

Superbest
fuente
12
Además, como alguien publicó en otro lugar, no use "nslookup" para probar esto porque ese comando ignora el archivo de hosts. Más bien use "ping".
LatinSuD
Posible duplicado del archivo HOSTS que se ignora
030

Respuestas:

220

Según mi propia experiencia y lo que encontré mientras buscaba en Google, aquí hay algunas cosas para probar:

1. ¿Verificaste que funciona correctamente?

Los cambios en los hosts deberían tener efecto de inmediato, pero Windows almacena en caché los datos de resolución de nombres, por lo que durante algún tiempo se pueden usar los registros antiguos. Abra una línea de comando (Windows + R cmd, Enter) y escriba:

ipconfig /flushdns

Para descartar los datos antiguos. Para verificar si funciona, use (suponiendo que tenga una entrada ipv4 en sus hosts para www.example.com, o una entrada ipv6 en sus hosts para ipv6.example.com):

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

Y vea si usa la IP correcta. En caso afirmativo, su archivo de hosts está bien y el problema está en otra parte.

Además, puede restablecer el caché de NetBios con (abra la consola como administrador o fallará):

nbtstat -R

Puede verificar los datos actuales en el caché DNS con:

ipconfig /displaydns | more

2. Conceptos básicos

  • ¿Su archivo de hosts está nombrado correctamente? Debería ser hostsy no host, etc.
  • ¿Es correcta la extensión? No debe tener extensión ( hostsno hosts.txt): tenga cuidado si ha configurado ventanas para ocultar extensiones conocidas, verifique las propiedades para estar seguro: el tipo de archivo de host correcto aparecerá como "Archivo".
  • ¿Seguiste la sintaxis correcta ? ¿Accidentalmente prefijaste líneas con un hash ( #) que indica comentarios?
  • ¿Se ocupó de todas las variantes ( www.example.comy example.com- lo más seguro es simplemente agregar ambas)?

3. Espacio en blanco

El formato para cada línea es IP address, luego, una pestaña horizontal (código de escape \t, ASCII HT, hexadecimal 0x09) o un solo espacio (hexadecimal 0x20), luego el nombre de host, es decir. www.example.com, luego finalmente un retorno de carro seguido de un avance de línea (códigos de escape \r\n, ASCII CRLF, hexadecimal 0x0d 0x0a).

Entradas de muestra, utilizando imágenes de control Unicode para indicar caracteres de control. (¡No copie y pegue estos en su archivo de hosts!)

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

Los bytes individuales se pueden ver en Notepad ++ con el complemento de editor hexadecimal . Notepad ++ también mostrará caracteres especiales (Ver -> Mostrar símbolo) para que pueda inspeccionar fácilmente el número y el tipo de caracteres de espacios en blanco.

Si copió y pegó entradas de hosts desde algún lugar, puede terminar con múltiples espacios. En teoría, los hosts admiten múltiples espacios que separan las dos columnas, pero es otra cosa probar si nada más funciona.

Para estar seguro, asegúrese de que todas las líneas en su archivo de hosts usen tabulaciones o espacios, no ambos.

Por último, finalice el archivo con una línea en blanco.

4. Clave de registro

Hay una clave de registro que especifica la ubicación del archivo de hosts. Supuestamente, Windows no admite colocar el archivo de hosts en otras ubicaciones, pero es posible que desee verificar. La clave es:

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

La entrada debe ser:

%SystemRoot%\System32\drivers\etc

5. Permisos

A veces hay problemas con los permisos en el archivo, los atributos del archivo y cosas similares. Para recrear el archivo con permisos predeterminados:

  1. Crea un nuevo archivo de texto en tu escritorio.
  2. Copie y pegue el contenido de su archivo de hosts actual en este archivo en el Bloc de notas.
  3. Guarde el nuevo archivo de texto y cámbiele el nombre a hosts.
  4. Copie ( no mueva ) el archivo a su %SystemRoot%\System32\drivers\etcdirectorio y sobrescriba el archivo anterior.

El último punto es importante: la copia funciona, el movimiento no.

La Userscuenta local debe poder leer el archivo de hosts . Para asegurarse (en Windows 7):

  1. Navega hasta %SystemRoot%\System32\drivers\etcen el Explorador de Windows.
  2. Si no puede ver el hostsarchivo, asegúrese de que puede ver los archivos ocultos y del sistema .
  3. Haga clic derecho en el hostsarchivo y seleccione Propertiesdel menú contextual.
  4. En la hosts Propertiesventana, haga clic en la Securitypestaña.
  5. Examine la lista de nombres en el Group or user names:cuadro. Si %COMPUTERNAME%\Usersestá presente, haga clic en él para ver los permisos.
  6. Si Usersno está presente, o está presente pero no tiene Readpermiso, haga clic en Edit....
  7. Si Usersno está presente, haga clic Add..., escriba Users, haga clic Check Namesy haga clic en Aceptar o presione Entrar.
  8. Seleccione Usersy asegúrese de que Read & executeesté marcado en la Allowcolumna. Haga clic en Aceptar. Si Windows Securityaparece un cuadro de alerta, elija Yescontinuar.
  9. Haga clic en Aceptar para cerrar la hosts Propertiesventana.
  10. Vaya a la sección 1 de esta respuesta y siga las instrucciones para verificar si está funcionando ahora.

6. Codificación

El archivo de hosts debe estar codificado en ANSI o UTF-8 sin BOM. Puede hacer esto con Archivo -> Guardar como.

7. Proxies

Si tiene un proxy configurado, puede omitir el archivo de hosts. La solución es no usar el proxy o configurarlo para que no lo haga.

Para verificar, vaya a su Internet Explorer -> Opciones de Internet -> Conexiones -> Configuración de LAN. Si todo está en blanco y la opción "Detectar configuraciones automáticamente" está marcada, no está utilizando un proxy.

Si confía en un proxy para acceder a la web y, por lo tanto, no desea deshabilitarlo, puede agregar excepciones yendo a Internet Explorer -> Opciones de Internet -> Conexiones -> Configuración de LAN -> Servidor proxy / Avanzado. Luego agregue sus excepciones al cuadro de texto Excepciones. P.ejlocalhost;127.0.0.1;*.dev

8. Dirección DNS

(Esto también puede resolver problemas de proxy).

Vaya a las propiedades de sus conexiones de red, luego a la configuración de TCP / IP y cambie el primer servidor DNS a 127.0.0.1(localhost). El segundo probablemente debería ser la IP de su DNS real.

Esto no es necesario para que el archivo de hosts funcione , pero puede ayudar en su caso si algo está configurado de manera extraña.

9. direcciones locales

Si está utilizando una entrada de dominio .local en forma de myhost.local y se ignora, intente lo siguiente

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

incluso si el www.myhost.local no existe. Windows de alguna manera no agrega su grupo de trabajo o dominio local.

Superbest
fuente
3
¡MUCHAS GRACIAS SUPERBEST! Casi estoy llorando, muchos de nosotros se están volviendo locos por un ESPACIO al comienzo de una entrada en blanco entre 2 líneas. Gracias Gracias Gracias Gracias Gracias !!!!!
1
Otro problema es que las versiones de 64 bits de Windows redirigen la carpeta System32 para aplicaciones de 32 bits (como Notepad ++), por lo que cuando guarda el archivo aparece en la carpeta SystemWOW64 en lugar de System32. La mejor solución es usar la versión de Windows del Bloc de notas que es de 64 bits. El segundo mejor es conectarse al recurso compartido administrativo (\\ yourmachinename \ c $ \ Windows \ System32 \ drivers \ etc) para abrir el archivo si utiliza un editor de 32 bits.
Tim Lewis
44
Buena publicación, pero con un par de errores. 1) "Detectar configuraciones automáticamente" en IE puede llevarlo (incluso sin saberlo) a usar un proxy, si su red realmente proporciona la configuración automática de proxy. 2) Cambiar sus servidores DNS en la configuración de red no tiene nada que ver con cómo / cuándo / si hostsse usa el archivo, y cambiarlo a 127.0.0.1 es efectivamente un error, a menos que realmente esté ejecutando un servidor DNS en su computadora.
Massimo
1
# 5 (crear un nuevo archivo y copiarlo) fue el truco para mí. Win7 puede ser divertido con permisos.
Chris
1
Edité el archivo de hosts en Cygwin usando vim, creo que esto causó que el problema de mi archivo de hosts dejara de funcionar. Tuve que crear un nuevo archivo y copiar el contenido del archivo de hosts anterior y eso lo solucionó.
forloop
16

Asegúrese de haber puesto la dirección de IP primero y luego el "dominio" de esta manera:

127.0.0.1   bo.dev
127.0.0.1   www.bo.dev
Gustaf
fuente
66
Prefiero usar una sola línea:127.0.0.1 bo.dev www.bo.dev ftp.bo.dev
Xhynk
1
¡Cuidado, el archivo de hosts de Windows solo permite NUEVE O MENOS entradas por línea! Esto me mordió y me tomó un tiempo entenderlo.
Andrew
No use el .devTLD localmente pensando que no tendrá colisiones. Es un TLD global genérico válido propiedad de Google, y tendrá muchos problemas para usarlo. Ver ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts
Patrick Mevzek
Error de novato, pero funcionó. Doh! los tenía al revés nombre luego IP
ransems
11

Agregue los permisos de comprobación de archivos. Descubrí que, aunque tenía derechos de administrador local para la computadora y, por lo tanto, para los hosts. No fue sino hasta que agregué usuarios locales a los permisos del archivo de hosts con Leer y Leer y Ejecutar, y luego con ipconfig / flushdns, que los hosts se activaron.

David Siviour
fuente
3
¡Eso fue todo! Este problema me ha desconcertado durante años . Agregué (machine)\USERScon los permisos Leer y Leer y ejecutar y después ipconfig /flushdnsfuncionó. Muchas gracias. Estoy muy contento de finalmente recuperar mi archivo de hosts.
Clement Cherlin
7

En mis casos probé el archivo creado por 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.

Como resultado, Windows ignora la configuración en C: \ Windows \ System32 \ drivers \ etc \ hosts y la usa desde hosts.ics.

Unick
fuente
1
Desde support.microsoft.com/en-us/kb/309642/en-us , que es antiguo, por lo que tal vez ya no sea preciso: "ICS utiliza el archivo Hosts.ics para almacenar información sobre clientes configurados dinámicamente. Evite realizar cambios en este archivo para evitar la pérdida de conectividad o datos. El archivo Hosts (sin extensión de nombre de archivo) es el archivo al que agrega información sobre clientes configurados estáticamente ". Entonces, NO esperaría que Windows ignore el Hostsarchivo solo porque Hosts.icsestá presente. Algo más podría estar causando que Windows ignore sus archivos de Hosts, tal vez una extensión incorrecta (pero oculta).
Arjan
1
Veo esta informacion Pero no sé, por qué pude hacer que los hosts funcionen solo edité hosts.ics. Antes de editar hosts.ics, probé todos los métodos de este tema, pero hosts no funciona.
Unick
¡Gracias! Me salvaste la vida. Trabajó en Windows 10
Xatenev
3

Estaba experimentando el mismo problema, las entradas del archivo de hosts se ignoraban. Intenté todo en este y muchos otros hilos sin suerte. Pensé que publicaría lo que funcionó para mí en caso de que alguien más se encuentre con esto.

  1. Abra el Explorador de Windows como administrador
  2. BORRAR el archivo de hosts
  3. Abra el bloc de notas como administrador y cree un nuevo archivo de hosts
  4. Comience desde cero y agregue entradas.
  5. Asegúrese de que el archivo de hosts no tenga una extensión .txt

Nota: simplemente abriendo el archivo de hosts y eliminando el contenido, verificando que era 0kb y volviendo a agregarlo no funcionó. Sospecho que hay un problema de permisos en el archivo.

PSA4444
fuente
nota rápida: al modificar archivos del sistema (como el archivo de hosts), es prudente crear primero una copia de seguridad. Para evitar la pérdida de datos, considere cambiar el nombre del archivo de hosts existente, como hosts.bak, y luego proceda como se describe en el paso 3.
nshiff
1

Han pasado horas, probablemente días en esto.

La seguridad de IBM Trusteer Endpoint Rapport puede causar este problema.

Agregué mysite.com a su lista de sitios de confianza.

Creo que, como parte de su seguridad, evita que el malware o los virus lo desvíen a sitios alternativos.

Tomó mysite de la lista de sitios de confianza y ya no comprueba y "corrige" el desvío de mi archivo de hosts.

Espero que ayude a alguien a resolver su problema.

Pájaro en la mano
fuente
1

Asegúrese de haber ingresado los valores como IP NAME, no como NAME IP.

Esto puede suceder si hay, por ejemplo, solo una entrada en el archivo y si ignora el texto de comentario.

knb
fuente
1

Un problema que se perdió en la discusión anterior son los nombres no calificados (nombres que no incluyen un punto) en el archivo de hosts. La configuración de su red podría entrar en ese punto y agregar automáticamente su propio dominio al final de un dominio no calificado. En consecuencia, el nombre podría no resolverse, o peor aún, resolverse en una máquina completamente diferente.

usuario287479
fuente
0

En Windows, asegúrese de que HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters \ DataBasePath apunte al directorio del archivo de hosts.

Geln Yang
fuente
0

En mi caso, el problema era que estaba copiando un archivo de hosts de un directorio encriptado y anulando el etc / hosts con eso. Tuve que mirar las propiedades y desmarcar la casilla de verificación "cifrar archivo".

Janos
fuente
0

Mi archivo de hosts se ignora hasta que tenga una conexión de red en mi computadora portátil (Windows 7). Una vez que me conecto a una red, todo funciona como se esperaba. Obviamente, sin una red no puedo hacer ping a los hosts, etc., pero todavía esperaba que Windows obtuviera sus direcciones IP del archivo de hosts. No lo hace. Incluso después de desconectarse, todavía busca direcciones correctas, pero entre reiniciar la computadora y conectarse primero a una red, ignora el archivo de hosts.

(Por cierto, las pestañas, espacios y ningún retorno de carro son irrelevantes por lo que puedo decir).

Denis Howe
fuente