使用本地 dns 允许基于域的透明代理

使用本地 dns 允许基于域的透明代理

我来自伊朗,一些网站因伊朗 IP 被屏蔽(如 nvidia 和 intel 等)。有一个网站广告说我可以访问这些域名,只需将我的 DNS 更改为他们的即可。所以我尝试了一下,我看到了这个:

me@laptop ~> drill devtalk.nvidia.com @94.232.174.194
devtalk.nvidia.com.     300     IN      CNAME   uk4.shecan.ir.
uk4.shecan.ir.  134     IN      A       5.226.141.227

shecan.ir 是做广告的网站。

现在除了他们所做的事情的合法性之外,这是如何运作的?他们是否只是将流量从非伊朗 IP (uk4.shecan.ir 5.226.141.227) 重定向到这些网站,所以实际上它只是一个代理。但他们并不代理所有域,仅代理被阻止的域。

我问这个问题是因为我想在我的路由器上为自己执行此操作,但我尝试的任何 https 透明代理都无法区分域。他们用ips来做这个吗?因此,当我使用他们的 dns 服务时,他们会给我一个 dns 答案,然后我连接到该答案,然后向该答案发送我的请求,但是它们在域之间如何区分?他们是否对所有被阻止的域使用不同的 IP?这可行吗?

我可以在自己的路由器上执行此操作吗?

基本上我正在尝试测试这一点:使用我的 dnsmasq 为被阻止的站点(被我的 isp 阻止)提供本地 IP,然后使用该 LAN 计算机上的 iptable 透明地代理通过 Tor 的所有流量。但我的问题是,这是否适用于我为被阻止的域提供本地目的地?

我这样做是为了不必代理所有流量,而只需代理所需的域。

答案1

是的,您可以在自己的路由器上执行此操作。dnsmasq在路由器上运行使用路由器/etc/hosts上的文件,因此您必须编辑此文件,输入要重新路由的域,并为它们提供私有范围中的(不同的)IP 地址。

然后你需要iptables规则将它们DNAT到它们的真实地址,并通过tor接口将它们发送出去。

当域的 IP 地址发生更改时,管理起来会有些麻烦,因为您必须更新配置。

另一种方法是在您的 PC 上使用不同的网络命名空间,启动两个浏览器(一个在主命名空间中,一个在新命名空间中),连接命名空间以使用 tor 作为网关,并以这种方式区分您的流量想要代理,流量就可以直接做。

相关内容