![DNS-over-HTTPS(DoH)如何通过 HTTP 代理工作](https://linux22.com/image/746332/DNS-over-HTTPS%EF%BC%88DoH%EF%BC%89%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20HTTP%20%E4%BB%A3%E7%90%86%E5%B7%A5%E4%BD%9C.png)
多篇文章像这个声称 DoH 绕过了企业政策。
然而,在 HTTP 代理的情况下,任何 Web 请求都将通过 HTTP CONNECT 方法发送到代理。DNS 解析由代理服务器完成,而不是由在 CONNECT 方法中发送完整 URI 的个人计算机完成。
那么,DoH 对企业来说有何影响?
答案1
一般来说,当设置代理时,浏览器和其他互联网设备都会设置为先进入代理,然后再出去。
例如,假设您有一个 LAN,其 IP 地址192.168.1.0/24
以及代理位于其中192.168.1.2
。
您的代理设置为流量必须先在代理上协商,然后才能到达网关。在非 DoH 环境中,您的通信可能如下所示:
- 您的浏览器询问:“的 IP 地址是多少
stackoverflow.com
?” - 您的网络上的 DNS 服务器显示“这是
192.168.1.2
” - 然后你的浏览器将请求发送给代理
- 然后代理会询问 ISP“的 IP 地址是多少
stackoverflow.com
?”。 - 一旦它有了真实的 IP 地址,它就会协商您和 stackoverflow 之间的流量,执行代理所做的事情。
使用 DoH 时,情况会有所不同。启用 DoH 并使用 Cloudflare 作为 DoH 提供商后:
- 您的浏览器询问“的 IP 地址是多少
cloudflare.com
?”。 - 您的 DNS 服务器将会响应
192.168.1.2
,然后协商您和 cloudflare 之间的流量。 - 您的浏览器询问“的 IP 地址是多少
stackoverflow.com
?”。 - 当 Cloudflare 响应 IP 地址时,您的浏览器将执行以下两项操作之一:A) 它将尝试直接连接 Cloudflare 的 IP 地址,该地址可能无法从您的内部网络路由。B) 完全绕过代理,该代理的安装是为了保护内部网络免受恶意网站的攻击。
企业可能确实有理由不让设备通过代理,内容管理只是其中之一。请记住,企业可能会在其网络边缘启用 DoH,以便加密这些查询。但他们仍然希望从其网络内部控制流量,这就是为什么在设备/用户级别启用 DoH 并不理想。
答案2
DoH 肯定无法通过代理工作,因为 HTTP(S) 代理协议不是为客户端的名称解析而设计的。
“代理”是 HTTP 的消息转发代理(RFC 7230)。它只是在用户代理和服务器之间转发请求和响应 HTTP 消息。