¿Por qué Chromium omite / etc / hosts y dnsmasq?

51

Estoy usando hostsblock junto con dnsmasq en Arch Linux para bloquear algunos sitios web, uno de ellos es facebook.comy www.facebook.com.

Sé que todo funciona correctamente porque un simple ping a facebook.com(o www.facebook.com) devuelve 127.0.0.1. Además, si accedo a estos sitios web desde Midori, se devuelve una página en blanco (este es un comportamiento esperado, ya que estoy usando el demonio kwakd para devolver páginas en blanco en localhost).

Solo Chromium parece pasar por alto mi lista de bloqueo. Acceder a facebook.com desde allí me hace ir directamente a la página de inicio de Facebook.

Después de limpiar todo (Ctrl + Shift + Delete) desde el principio de los tiempos y reiniciar Chromium, obtengo el comportamiento deseado (= no puedo acceder a Facebook).

Aunque, después de un tiempo (no estoy exactamente seguro de qué causa esto), Chromium ignora nuevamente mi DNS dnsmasq local y accede con éxito a la página de inicio de Facebook.

Leí algo sobre el almacenamiento en caché y la búsqueda previa de consultas DNS de Chromium, pero no estoy seguro de cómo deshabilitarlo.

La pregunta es: ¿por qué Chromium está pasando por alto mi DNS local y qué puedo hacer para detenerlo?

thiagowfx
fuente
2
¿Está utilizando un proxy? Cuando utiliza un proxy, las solicitudes de DNS se realizan en el proxy.
Zoredache
No, no estoy usando ningún proxy, hostsblock no requiere uno.
thiagowfx
Probé los métodos de las respuestas a continuación, pero de alguna manera Chromium sigue obteniendo las direcciones IP ... ¿Hay algunas direcciones cableadas en Chromium?
Geremia

Respuestas:

41

La mayoría de las referencias sobre este tema son antiguas. Si tiene una versión antigua de Chromium, siga la respuesta de edvinas.me .

Para las versiones actuales de Chromium (en el momento en que se escribió esta publicación: 33), esto es lo que debe hacer:

  1. Ir chrome://settings
  2. Haga clic en "Mostrar configuración avanzada ..."
  3. Desmarque la casilla Predecir acciones de red para mejorar el rendimiento de carga de la página .
  4. Compruebe si la captación previa de DNS está realmente desactivada yendo a chrome://dns. Debería ver algo así como la resolución previa de DNS y la conexión previa de TCP está desactivada. Si la captación previa no está desactivada, verá algunas tablas allí.

Actualizar

Para las versiones más nuevas de Chrome (en el momento de esta actualización: 55), el tercer elemento está redactado como: Use un servicio de predicción para cargar páginas más rápidamente .

Referencia

thiagowfx
fuente
27

Respuesta actualizada

Asegúrate de limpiar el caché de Chrome. Escriba esto en la barra de direcciones:

chrome://net-internals/#dns

Luego haga clic en el Clear host cachebotón.

Vieja respuesta

Chromium usa el DNS interno de Google de forma predeterminada (8.8.8.8 y 8.8.4.4)

Para deshabilitarlo:

  1. Haga clic en el menú Herramientas (un pequeño icono de llave inglesa), luego vaya a Opciones.

  2. Haga clic en la pestaña Bajo el capó.

    3) En la sección "Privacidad", desactive la casilla de verificación Usar la búsqueda previa de DNS para mejorar el rendimiento de carga de la página.

    4) Haz clic en el botón Cerrar.

    5) Actualice para volver a cargar la página web.

phoops
fuente
1
Lo que dijo solo se aplicaría a versiones antiguas de Chromium / Google Chrome. Las versiones más nuevas ya no tienen esta configuración (ni "Under the Hood"). ¿Quizás la nueva configuración es "Predecir acciones de red para mejorar el rendimiento de carga de la página"? Lamentablemente, esto no menciona ningún DNS, por lo que no estoy seguro.
thiagowfx
He actualizado una respuesta sobre cómo borrar el caché DNS de Chromium. Por favor, eche un vistazo, espero que ayude.
phoops
¡Gracias! Su nueva respuesta es la mejor manera de borrar un DNS grabado (en lugar de limpiar todo como en Ctrl + Shift + Delete). Pero para deshacerme del problema permanentemente , creo que mi propia respuesta se ajusta mejor (todavía tengo que probar un poco más solo para estar seguro).
thiagowfx
Bueno, si simplemente deshabilita eso sin borrar el caché, no funcionará hasta que caduque el caché. Una vez que se borra la memoria caché, no creo que Chromium pueda de alguna manera precargar las IP reales. Incluso si la búsqueda previa está activada, buscará previamente los valores bloqueados. De todos modos, al menos parece que lo has resuelto.
phoops
2
"chrome: // net-internals / # dns" -> clear, no funciona.
Totty.js
2

Otra posibilidad oscura es que su sistema esté configurado para usar un archivo proxy automático * .pac. Este sería normalmente el caso si se le emitiera una computadora en un entorno corporativo y el archivo * .pac le indica a su navegador que vaya a través de un proxy para resolver la URL. Esto tiene prioridad sobre su archivo / etc / hosts y si el archivo * .pac tiene una regla para devolver PROXY si nada coincide, entonces parecerá que Chrome no está cumpliendo con / etc / hosts. Este normalmente será el caso si su línea de comando funciona como se esperaba, por ejemplo, cavar, hacer ping, etc.

Si probó las otras soluciones y no funcionan, verifique que no tenga una configuración de proxy automático que Chrome esté utilizando.

Elijah Lynn
fuente
1
¡Esto funcionó para mí!
MediumOne
-2

Si está utilizando alguna extensión de Proxy VPN para Google Chrome (como Betternet ), es probable que encuentre este problema. Deshabilitar la extensión resuelve el problema.

bantya
fuente