谁在进行 DNS 查找?我的系统/浏览器还是我的 squid 代理/远程服务器?

谁在进行 DNS 查找?我的系统/浏览器还是我的 squid 代理/远程服务器?

我在远程服务器上使用 anonimizer 配置了 squid 代理,但似乎 DNS 查找发生在通过代理将请求发送到网站之前。我使用 Windows 10 作为家庭系统,并在远程 centos7 上使用 squid 代理。我是否忘记了在代理服务器上进行 DNS 查找的一些设置?

当我关闭 squid 并将本地网络配置为使用隧道,通过 ssh 隧道进入服务器时,也发生了同样的事情。

VNP 服务提供商和一些代理提供商似乎没有这个问题。他们如何配置 DNS 查找以从远程服务器而不是从我的本地计算机进行?

图片:使用 SOCKS v5 时的代理 DNS 在 Firefox 中,如果我选中使用 SOCKS v5 时代理 DNS 前面的复选框,则会出现类似https://ipleak.net/#dnsleak突然开始显示属于托管提供商的 DNS 服务器,SSH 隧道连接到该服务器。这正是我想要做的。我该如何为整个操作系统全局执行此操作,还是被迫使用 Firefox?

像这样从 cmd 启动 chrome:chrome --proxy-server="socks5://localhost:8181"确实启动了它,但它没有隧道传输 http 请求或 DNS 查找。

答案1

部分答案(因为没有其他人有) -

VPN 在堆栈中的运行级别与代理服务器不同 - 它们在数据包级别运行,而代理服务器在协议级别运行。

广义上讲,打开网页涉及两个步骤:

  1. 执行 DNS 查找以将域转换为 IP 地址。

  2. 向请求页面的 IP 发出 (通常是 TCP) 请求。此请求再次包含域名,因为在 1 个 IP 托管多个网站的典型情况下,这是必需的。

当您使用 VPN 来保护隐私时,DNS 查询应通过 VPN 路由到与您的 ISP 不关联的 DNS 服务器 - VPN 通常充当虚拟新连接的角色,它位于底层连接之上并隐藏底层连接。

与此相关的是,当使用 VPN 时,DNS 请求仍然会发送到操作系统,操作系统使用到名称服务器的不同路径来解析它们。

代理方式多种多样,这可能会影响 DNS 的执行方式。在某些情况下,Web 浏览器只需打开与代理的连接即可。然后,代理服务器获取标头中指定的域并检索页面。在这种情况下,代理服务器会处理 DNS。

在透明代理的情况下 - 请求被拦截和重定向,IS 仍然会进行初始查找,因为它不知道代理。

解决此问题最简单的方法是远程运行 DNS 服务器并配置您的 IS 以使用它。这会产生其他人滥用您的 DNS 的潜在问题,可以使用 VPN 或通过 IP 地址限制(如果可行)来解决。

相关内容