Simule la manipulación del archivo etc / hosts en Google Chrome

30

¿Cómo puedo configurar Chrome para hacer referencia a búsquedas de nombres de host localmente y no desde el archivo estándar etc / hosts?

Al depurar un sitio web, a veces es útil configurar entradas en C: \ Windows \ system32 \ drivers \ etc \ hosts que reemplazan ciertos dominios con localhost, lo que me permite probar versiones sobre la marcha de sitios web o dominios que pueden conflicto con sitios reales en vivo.

¿Puedo configurar Google Chrome de una manera que simule y simplifique este proceso?

No voy a modificar la instancia del navegador para que se comporte como si se hubiera modificado etc / hosts, aunque incluso eso podría ser un gran riesgo de seguridad en una extensión.

ripper234
fuente
Destaque
Ali

Respuestas:

13

Acabo de encontrar la extensión de Chrome Host Switch Plus que hace exactamente eso;)

mettjus
fuente
Host Switch Plus no funciona para mí y para muchos otros.
zylstra
1
Host Switch Plus no hace exactamente eso. Cambia el proxy. Pero el objetivo es cambiar la IP del dominio. (Emular servidor DNS)
TEXHIK
No me funciona, lo siento.
Serzhan Akhmetov
7

Una forma de lograr su objetivo real no involucra extensiones de Chrome, o incluso Chrome, en absoluto. De esa forma, se configura un servidor HTTP proxy inteligente, se dirige a Chrome y luego se agregan reglas de reescritura al servidor proxy que reescriben las URL debajo de las cubiertas.

Hay muchas personas que hacen esto, con varios servidores proxy HTTP diferentes, demasiados para cubrir cada uno en detalle en una respuesta aquí. Lo hacen con el propósito de eliminar anuncios, errores de la web y similares, pero el principio y el mecanismo son idénticos a lo que desea hacer. Quieren que el navegador WWW busque una URL particular de forma normal, pero el contenido real que recibe es el de alguna otra URL (local o de otro tipo). Lo único que el navegador WWW necesita saber es que se comunica con Internet a través de un servidor proxy.

Para ver un ejemplo, vea Ad Zapper en SourceForge . Es un script de Perl que funciona en conjunto con el servidor HTTP proxy de Squid para reescribir URL sobre la marcha en el servidor proxy. Como puede ver en su base de datos de configuración, las personas han empleado su mecanismo para una amplia gama de propósitos, desde asegurarse de que uno siempre vea las formas "imprimibles" de los artículos en los servicios de noticias hasta deshacerse de las redirecciones publicitarias aleatorias en los sitios de pornografía en Internet.

Tenga en cuenta que esto es mucho mejor que lo que está haciendo con el hostsarchivo, que es un mecanismo inadecuado para manipular el servicio WWW. hostssolo se ocupa de búsquedas de nombre → dirección, elimina todo lo demás (fuera del navegador WWW) que necesita hacer búsquedas de nombre → dirección, y (como probablemente ya sepa) requiere que cada nombre de host reescrito se configure adicionalmente como un host virtual en el contenido de destino del servidor HTTP. Un servidor proxy proxy de reescritura de este tipo, en cambio, se ocupa de las URL y solo afecta a los navegadores HTTP y WWW configurados para usarlo en primer lugar. Por lo tanto, puede hacer cosas como solo reescribir las URL de JavaScript y dejar todo lo demás del mismo sitio WWW solo; reescribe una carga completa de nombres de host a solo uno; y hacer (aún más) coincidencia de patrones. (Hay casos de esto en la base de datos de configuración de Ad Zapper, observe). Y uno puede hacer cosas como tener un navegador WWW viendo el mundo a través del proxy de reescritura y otro viéndolo directamente, en una sola máquina simultáneamente.

JdeBP
fuente
Una ventaja adicional sobre una extensión de Chrome: ¡funciona con navegadores cruzados! En este momento todavía estoy usando el archivo hosts, pero consideraré cambiarme a un proxy si surge la necesidad real.
ripper234
4

Usé (y sigo usando) HostAdmin religiosamente, pero tener que vaciar el caché o abrir una nueva ventana de incógnito siempre ha sido una tarea, así que terminé desarrollando una extensión de Chrome para mí el año pasado para ayudar con una situación similar, y Recientemente publiqué una versión muy aproximada en Chrome Web Store, se llama LiveHosts .

La esencia de esto es que mientras @JdeBP tiene razón y configurar un proxy sería la solución correcta, a menudo no es una opción. Sin embargo, una extensión de Chrome no puede replicar exactamente lo que sucede cuando cambia el archivo host, por lo que lo que LiveHosts hace en este momento es:

  • le permite configurar múltiples entradas de nombre de host / IP;
  • detectar solicitudes a uno de los nombres de host definidos;
  • redirigir la solicitud a la IP deseada con el encabezado de host HTTP apropiado;
  • agregue una referencia visual (y fea, lo admito) en la URL de la barra de direcciones, que se verá algo así http://127.0.0.1/www.example.com/whateverelse;
  • permitir diferentes pares de host / IP en diferentes pestañas al mismo tiempo.

No es bonito, pero es lo suficientemente bueno para el desarrollador web estándar que está tratando de cambiar entre entornos rápidamente. Por supuesto, hay algunas advertencias:

  • dependiendo del servidor, las partes de una página web que se refieren a la URL del sitio (como los atributos href y src) podrían ser diferentes de las originales;
  • window.location tiene un valor diferente que puede generar fragmentos de JavaScript;
  • La mayoría de las solicitudes de origen cruzado no funcionarán.
Aioros
fuente
0

El complemento Virtual Hosts es el único que me ha funcionado como esperaba.

Acceda a hosts virtuales de un servidor sin la necesidad de redirección de host o DNS.

JDL
fuente
2
Para mí, esta extensión parece hacer una redirección del lado del cliente a la dirección IP, que no es lo mismo que una modificación de archivo de hosts.
Jeff Ward