# 如何解决 Dns 泄漏

DNS（域名系统）通常被称为互联网的电话簿。它将人类可读的域名（如 [example.com](http://example.com)）转换成机器可读的 IP 地址（如 192.0.2.44）。该系统允许用户输入便于记忆的域名而不是复杂的数字 IP 地址来访问网站。

默认的 DNS 服务器由用户的互联网服务提供商（ISP）提供，但用户可以将手机或电脑上的 DNS 服务器更改为其他公共 DNS 服务器，如 Cloudflare、Google 和 Quad9 分别提供的 1.1.1.1、8.8.8.8 和 9.9.9.9。

默认情况下，DNS 流量不加密。这意味着第三方可以看到用户的 DNS 查询，其中包括用户正在使用的应用程序的域名。这可能会向互联网服务提供商、网络管理员或任何监控网络的窃听者暴露用户的浏览历史和其他敏感信息。

DNS 流量加密主要有两种方法： DNS over TLS (DoT) 和 DNS over HTTPS (DoH)。这两种方法都使用传输层安全（TLS）加密 DNS 客户端（如网络浏览器）和 DNS 服务器之间的数据。

> 可用的 DoH 公共服务器列表
> 
> [https://github.com/curl/curl/wiki/DNS-over-HTTPS](https://github.com/curl/curl/wiki/DNS-over-HTTPS)

如今，Google Chrome 和 Firefox 等浏览器都默认启用 DNS over HTTPS (DoH)。iOS 和 Android 支持 DoH，但需要进一步配置，Windows 本身不支持 DoH。

您可以使用 Cloudflare 的 cloudflared 客户端在本地代理 DoH（假设您的 IP 地址是 `192.168.0.87`）。

```bash
cloudflared proxy-dns --address 192.168.0.87 --port 53 --upstream https://dns.quad9.net/dns-query
Adding DNS upstream url=https://dns.quad9.net/dns-query
Starting metrics server on 127.0.0.1:2798/metrics
Starting DNS over HTTPS proxy server address=dns://192.168.0.87:53
```

现在，同一本地网络中的其他用户可以将 DNS 服务器配置为 `192.168.0.87`，他们的所有 DNS 流量都将通过 DoH 代理到 `https://dns.quad9.net/dns-query` 。

VPN 用户可能认为他们是安全的，但事实并非总是如此，如果 VPN 被配置为只通过 VPN 隧道路由特定流量就会发生这种情况。在某些系统中，应用程序也可以通过修改系统路由表绕过 VPN。你可以使用 [dnsleak.com](https://dnsleak.com) 等在线工具进行 DNS 泄露测试，以确保 VPN 正常运行。
