Perché i browser ignorano / etc / hosts dietro un proxy SOCKS?

6

Il mio MacBook in ufficio non ha accesso a Internet. Così ho impostato un proxy SOCKS istantaneo su SSH per navigare sul Web.

Tuttavia, quando provo ad aggiungere una voce a /etc/hosts , il browser non va al sito che mi aspettavo ...

Il Wi-Fi del mio MacBook è spento ed è connesso alla LAN aziendale:

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

Sii predefinito, non c'è accesso a Internet.

C'è una scatola di sviluppo Linux (192.168.12.128) che ha accesso a Internet, quindi ho configurato un proxy SOCKS istantaneo per ottenere l'accesso a Internet per il mio MacBook:

 ssh -fND localhost:30000 [email protected]

Quindi nelle Preferenze di sistema del mio MacBook > Rete > Proxy

 (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

Ora posso navigare sul Web, finora tutto bene.

Per lo sviluppo, ho impostato alcune voci in /etc/hosts per lo scopo degli host virtuali:

 127.0.0.1 air.company.com

In 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>

Sembra buono e curl restituisce il contenuto di index.html bene.

Tuttavia, se provo ad aprire il sito: http://air.company.com nei browser (Safari / Chrome / Firefox), nessuno di loro restituisce il risultato come curl fatto. Chrome ha dato un errore:

This webpage is not available The webpage at http://air.company.com/ might be temporarily down or it may have moved permanently to a new web address. Error 120 (net::ERR_SOCKS_CONNECTION_FAILED): Unknown error.

Se aggiungo un'altra voce in /etc/hosts :

 127.0.0.1 www.microsoft.com

In 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>

Tuttavia, i browser restituiscono il contenuto dal server Web del vero sito Microsoft, invece del contenuto dal mio MacBook (127.0.01). Perché?

P.S.

Se disattivo il proxy SOCKS, il browser restituisce correttamente il contenuto da 127.0.0.1.

Se disconnetto il cavo LAN, il browser restituisce correttamente il contenuto da 127.0.0.1.

    
posta ohho 19.06.2013 - 06:33
fonte

1 risposta

6

Il tuo browser chiede il proxy SOCKS per i siti, non si connette direttamente. Pertanto, l'inserimento dell'indirizzo IP nell'elenco delle eccezioni non funziona, in quanto il computer non sta eseguendo la ricerca di air.company.com su 127.0.0.1. Il proxy SOCKS è.

Per evitare ciò, inserisci il nome di dominio completo di ciò che stai accedendo localmente nell'elenco delle eccezioni in Preferenze di Sistema > Rete > Proxy.

Quindi per air.company.com vedresti una lista di eccezioni (dal tuo esempio sopra) di:

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

Il tuo computer ora si connetterà direttamente a air.company.com, e quindi userà / etc / hosts.

    
risposta data 29.06.2013 - 14:56
fonte

Leggi altre domande sui tag