为什么浏览器会忽略SOCKS代理后面的/ etc / hosts?


8

我办公室里的MacBook没有上网功能。所以我通过SSH建立了一个即时的SOCKS代理来上网。

但是,当我尝试添加条目时/etc/hosts,浏览器不会转到我期望的网站...

我的MacBook的WIFI已关闭并连接到公司LAN:

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

默认情况下,没有互联网访问权限。

有一个Linux开发盒(192.168.12.128)可以访问互联网,所以我设置了一个即时的SOCKS代理来获取我的MacBook的互联网访问:

 ssh -fND localhost:30000 ohho@192.168.12.128

然后在我的MacBook的系统偏好设置>网络>代理中

 (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

现在我可以上网了,到目前为止一切都很好。

为了开发,我/etc/hosts为虚拟主机设置了一些条目:

 127.0.0.1 air.company.com

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>

它看起来不错,并且很好地curl返回了内容index.html

但是,如果我尝试打开网站:http://air.company.com在浏览器(Safari / Chrome / Firefox)中,它们都没有返回结果curl。Chrome会出错:

此网页不可用http://air.company.com/上的网页 可能暂时关闭,或者可能已永久移动到新的网址。错误120(net :: ERR_SOCKS_CONNECTION_FAILED):未知错误。

如果我添加另一个条目/etc/hosts

 127.0.0.1 www.microsoft.com

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>

但是,浏览器从真实Microsoft站点的Web服务器返回内容,而不是从MacBook(127.0.01)中返回内容。为什么?

PS

如果我禁用SOCKS代理,浏览器将正确返回127.0.0.1中的内容。

如果我断开LAN电缆,浏览器将正确返回127.0.0.1中的内容。


我的信息安全官需要问一下,斯诺登先生,你的办公室没有提供公共互联网接入的原因吗?;)
2013年

如果你没有将127.0.0.1放入旁路怎么办?仍然是localhost,不管怎么说都不应该使用代理。也许这是旁路功能绊倒了浏览器。
2013年

微软的愚蠢之处在于文件只在没有代理的情况下使用。
BluE

Answers:


7

您的浏览器正在询问SOCKS代理的站点,它没有直接连接。因此,将IP地址放在例外列表中不起作用,因为您的计算机没有执行air.company.com到127.0.0.1的查找。SOCKS代理是。

要避免这种情况,请将您在本地访问的内容的完整域名放在“系统偏好设置”>“网络”>“代理”中的例外列表中。

因此,对于air.company.com,您会看到一个例外列表(来自上面的示例):

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

您的计算机现在将直接连接到air.company.com,因此可以使用/ etc / hosts。


微软的愚蠢之处在于文件只在没有代理的情况下使用。
BluE
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.