某些服务如何通过修改DNS服务器来应用HTTP代理?

某些服务如何通过修改DNS服务器来应用HTTP代理?

一些服务,例如代理DNS,提供了一种访问受区域限制的网站(如 Hulu)的方法。我相信这类服务是基于 HTTP 代理的,当我们访问 hulu.com 时,HTTP 代理会将数据从我的计算机代理到 hulu.com。

但是,他们怎么能仅仅通过修改我的本地 DNS 到他们的服务器来做到这一点呢?

答案1

正向和反向代理

HTTP 代理有两种:正向代理和反向代理。

正向代理是您在浏览器设置中配置的代理(通常在大学和公司内进行)。这是用户更熟悉的一类代理。

另一方面,反向代理对于用户是透明的(用户不知道它的存在)并且通常位于实际 Web 服务器的“前面”。

下面的 SO 答案对这些内容的解释比我曾经写的更详细。 https://stackoverflow.com/questions/224664/difference-between-proxy-server-and-reverse-proxy-server https://stackoverflow.com/questions/220907/reverse-proxy

因此

有了这样的背景知识,ProxyDNS 等服务的作用就更容易理解了。由于您的 DNS 查询被路由到由他们控制的服务器,因此他们会使用备用 IP 回复 hulu.com 等服务的 DNS 查询。这个备用 IP 现在是他们运行的反向代理,而且这个反向代理很可能托管在美国。现在,hulu.com 本身就会看到来自美国地址的请求。

hulu网站

来自 ProxyDNS

$ nslookup hulu.com 74.207.242.213
Server:     74.207.242.213
Address:    74.207.242.213#53

Name:   hulu.com
Address: 50.116.28.138
Name:   hulu.com
Address: 23.92.31.241

来自我的提供商的 DNS

$ nslookup hulu.com
Server:     172.17.70.47
Address:    172.17.70.47#53

Non-authoritative answer:
Name:   hulu.com
Address: 23.63.99.145
Name:   hulu.com
Address: 23.63.99.184

维基百科

来自 ProxyDNS

$ nslookup en.wikipedia.org 74.207.242.213
Server:     74.207.242.213
Address:    74.207.242.213#53

Non-authoritative answer:
en.wikipedia.org    canonical name = wikipedia-lb.wikimedia.org.
wikipedia-lb.wikimedia.org  canonical name = text-lb.eqiad.wikimedia.org.
Name:   text-lb.eqiad.wikimedia.org
Address: 208.80.154.224

来自我的提供商的 DNS

$ nslookup en.wikipedia.org
Server:     172.17.70.47
Address:    172.17.70.47#53

Non-authoritative answer:
en.wikipedia.org    canonical name = wikipedia-lb.wikimedia.org.
wikipedia-lb.wikimedia.org  canonical name = text-lb.eqiad.wikimedia.org.
Name:   text-lb.eqiad.wikimedia.org
Address: 208.80.154.224

相关内容