我的ISP在做什么魔术?

在尝试设置OpenDNS的时候,并没有使网站过滤真正起作用,我意识到我的ISP正在做所有HTTP请求的恶意软件。 长话短说,如果有一个Host:头,什么IP地址我用什么都不重要,我得到的网站取决于Host:头,没有别的。

即使在请求中指定了HTTP / 1.0,它似乎也会自动使用HTTP / 1.1。

例子:

通过Host: yahoo.com连接到google.com

 $ echo -e "HEAD / HTTP/1.0\r\nHost: yahoo.com\r\n\r\n" | nc google.com 80 HTTP/1.1 301 Moved Permanently Date: Mon, 02 Jan 2012 10:50:13 GMT Location: http://www.yahoo.com/ Vary: Accept-Encoding Content-Type: text/html; charset=utf-8 Cache-Control: private Age: 0 Server: YTS/1.20.0 Connection: close $ 

通过Host: yahoo.com连接到无效的IP地址

 $ echo -e "HEAD / HTTP/1.0\r\nHost: yahoo.com\r\n\r\n" | nc 1.0.0.0 80 HTTP/1.1 301 Moved Permanently Date: Mon, 02 Jan 2012 10:51:02 GMT Location: http://www.yahoo.com/ Vary: Accept-Encoding Content-Type: text/html; charset=utf-8 Cache-Control: private Age: 0 Server: YTS/1.20.0 Connection: close $ 

那么,我的ISP在做什么? 我应该向他们抱怨吗?

您的ISP正在使用透明代理服务器: http : //en.wikipedia.org/wiki/Proxy_server#Transparent_proxy

我想你错过了OpenDNS FAQ :

OpenDNS是否运行代理?

是的,有时。 在某些情况下,OpenDNS运行一个简单的代理。 某些Internet浏览器和许多工具栏会拦截地址栏中的请求,从而阻止启动正确的DNS请求。 我们的代理确保您的请求在使用OpenDNS服务时正确路由。

而且,就像所有的OpenDNS服务一样,代理服务器也很尊重并努力保护您的隐私。 我们不跟踪通过代理路由的DNS请求。 实际上,由于有这么多人使用工具栏,代理必须自动旋转和删除日志,而且这种情况经常发生。

OpenDNS不存储或挖掘任何通过我们的代理的数据。 这个代理没有任何恶意行为 – 它旨在确保OpenDNS服务与所有浏览器和工具栏一起工作。