Sample Header Ad - 728x90

Why browsers ignores /etc/hosts behind a SOCKS proxy?

10 votes
1 answer
7412 views
My MacBook in office does not have internet access. So I set up an instant SOCKS Proxy over SSH to surf the web. However, when I try to add an entry to /etc/hosts, the browser does not go to the site I expected ... My MacBook's WIFI is off and is connected to the company LAN: IP address: 192.168.8.250 Subnet mask: 255.255.255.0 Router: 192.168.8.1 DNS server: 8.8.8.8 Be default, there is not internet access. There a Linux development box (192.168.12.128) which has access to the internet, so I set up an instant SOCKS proxy to gain internet access for my MacBook: ssh -fND localhost:30000 ohho@192.168.12.128 Then in my MacBook's System Preferences > Network > 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 Now I can surf the web, so far so good. For development, I set up a few entries in /etc/hosts for virtual hosts purpose: 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 OK It looks good and curl returns the content of the index.html nicely. However, if I try to open the site:http://air.company.com in the browsers (Safari/Chrome/Firefox), none of them returns the result like curl did. Chrome give an error: > 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. If I add another entry 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 OK However, the browsers returns the content from the web server of the real Microsoft site, instead of the content from my MacBook (127.0.01). Why? p.s. If I disable the SOCKS proxy, the browser returns the content from 127.0.0.1 correctly. If I disconnect the LAN cable, the browser returns the content from 127.0.0.1 correctly.
Asked by ohho (4248 rep)
Jun 19, 2013, 04:33 AM
Last activity: Jul 15, 2013, 01:20 PM