¿Por qué los navegadores ignoran / etc / hosts detrás de un proxy SOCKS?

6

Mi MacBook en la oficina no tiene acceso a Internet. Así que configuré un Proxy instantáneo SOCKS sobre SSH para navegar por la web.

Sin embargo, cuando intento agregar una entrada a /etc/hosts , el navegador no va al sitio que esperaba ...

El WIFI de mi MacBook está apagado y conectado a la LAN de la empresa:

 IP address:  192.168.8.250
 Subnet mask: 255.255.255.0
 Router:      192.168.8.1
 DNS server:  8.8.8.8

Estar predeterminado, no hay acceso a internet.

Hay una caja de desarrollo de Linux (192.168.12.128) que tiene acceso a Internet, así que configuro un proxy SOCKS instantáneo para obtener acceso a Internet para mi MacBook:

 ssh -fND localhost:30000 [email protected]

Luego, en las Preferencias del sistema de mi MacBook > Red > Proxies

 (Enable) SOCKS Proxy
 SOCKS Proxy sever: 127.0.0.1:30000
 Bypass proxy settings for these Hosts & Domains:
   *.local, 169.254/16, 127.0.0.1

Ahora puedo navegar por la web, hasta ahora todo bien.

Para el desarrollo, configuré algunas entradas en /etc/hosts para el propósito de los hosts virtuales:

 127.0.0.1 air.company.com

En bash :

 $ ping air.company.com
 PING air.ohho.es (127.0.0.1): 56 data bytes
 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.046 ms

 $ curl air.company.com
 <html>OK</html>

Se ve bien y curl devuelve el contenido de index.html muy bien.

Sin embargo, si intento abrir el sitio: http://air.company.com en los navegadores (Safari / Chrome / Firefox), ninguno de ellos devuelve el resultado como curl lo hizo. Chrome da un error:

  

Esta página web no está disponible La página web en enlace   podría estar temporalmente fuera de servicio o haberse movido permanentemente a un nuevo   dirección web. Error 120 (net :: ERR_SOCKS_CONNECTION_FAILED): Desconocido   error.

Si agrego otra entrada en /etc/hosts :

 127.0.0.1 www.microsoft.com

En bash :

 $ ping www.microsoft.com
 PING www.microsoft.com (127.0.0.1): 56 data bytes
 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.047 ms
 64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.128 ms
 ^C
 --- www.microsoft.com ping statistics ---
 2 packets transmitted, 2 packets received, 0.0% packet loss
 round-trip min/avg/max/stddev = 0.047/0.087/0.128/0.041 ms

 $ curl www.microsoft.com
 <html>OK</html>

Sin embargo, los navegadores devuelven el contenido del servidor web del sitio real de Microsoft, en lugar del contenido de mi MacBook (127.0.01). ¿Por qué?

p.s.

Si deshabilito el proxy SOCKS, el navegador devuelve el contenido de 127.0.0.1 correctamente.

Si desconecto el cable LAN, el navegador devuelve el contenido de 127.0.0.1 correctamente.

    
pregunta ohho 19.06.2013 - 06:33

1 respuesta

6

Su navegador está solicitando al proxy SOCKS para los sitios, no se está conectando directamente. Por lo tanto, poner la dirección IP en la lista de excepciones no funciona, ya que su computadora no realiza la búsqueda de air.company.com a 127.0.0.1. El proxy SOCKS es.

Para evitar esto, coloque el nombre de dominio completo al que está accediendo localmente en la lista de excepciones en Preferencias del sistema > Red > Proxies.

Entonces, para air.company.com vería una lista de excepciones (de su ejemplo anterior) de:

  *.local, 169.254/16, 127.0.0.1, air.company.com

Su computadora ahora se conectará directamente a air.company.com y, por lo tanto, utilizará / etc / hosts.

    
respondido por el nOw2 29.06.2013 - 14:56

Lea otras preguntas en las etiquetas