有许多类似“unblock-us.com”的服务,可以使用其他国家的地理限制服务。设置总是相同的:只需替换 DNS 即可。
我的问题是:它是如何工作的?
对于 HTTP 流量来说,这非常简单 - DNS 必须返回位于正确地理区域的某些服务器的 IP,接受 HTTP 请求,并将其转发到从 HOST 标头已知的服务器。
对于 HTTPS 流量 - HTTP 流量通过 SSL 发送,因此理论上任何代理都只能看到有人发送了目的地未知的加密数据块。它是如何工作的?
答案1
智能 DNS 服务无需关心实际的请求内容。它只是按原样重定向整个连接。当然,这需要重定向域名和 IP 地址之间有 1:1 的映射。
如果您想要访问netflix.com
,智能 DNS 服务器会“伪造”响应并将您定向到1.2.3.4
。该服务器位于美国,以欺骗 Netflix。它只是在实际netflix.com
服务器和您的 PC 之间进行调解时交换流量的一些标头。对于 Netflix 来说,它看起来像是在与 通信1.2.3.4
。
服务器知道,当流量到达时1.2.3.4
,它是用于 Netflix 的。可能还有另一个地址,1.2.3.5
用于 Youtube。
答案2
大多数现代软件都能够通过将代理配置为中间人来解密和重新加密 SSL 流量。这样,SSL/TLS 证书信任链确实被破坏了,但更为复杂,用户甚至不知道它被破坏了。
在我的例子中,我曾经Squid3
为透明代理做过类似的配置,简历中有一个名为Squid-in-the-middle SSL Bump
which 的功能可以做到这一点。这(正如您将在本篇文章中看到的那样)关联) 涉及一些道德甚至法律问题,因为根据您居住的国家/州,这可能是非法的。但是,请记住,当代理生成动态证书时,无论如何用户都必须接受它。
有一个非常好的链接深入描述了这一点,而且很容易阅读,所以我希望它能帮助你理解这些透明代理是如何完成的。