DNS 泄漏是指在您本应该通过安全的 VPN 连接发送域名查询请求时,却错误地通过您本地的互联网服务提供商 (ISP) 发送了这些请求。 这意味着即使使用了 VPN 来隐藏浏览活动,ISP 仍然可以监视您访问的网站,损害了隐私。避免 DNS 泄漏对于确保 VPN 的有效性至关重要。

下面的 Mihomo DNS 配置可以避免 DNS 泄露。 该配置旨在实现 DNS 分流:国内网站使用国内 DNS 解析,否则使用国外 DNS 解析。 这里参考了 Mihomo 官方的示例配置

dns:
  enable: true
  listen: 127.0.0.1:53
  ipv6: true
  prefer-h3: true
  respect-rules: true
  enhanced-mode: fake-ip
  fake-ip-filter:
  - '*'
  - +.lan
  - +.local
  - +.market.xiaomi.com
  nameserver:
  - https://dns.cloudflare.com/dns-query
  - https://dns.google/dns-query
  proxy-server-nameserver:
  - https://120.53.53.53/dns-query
  - https://223.5.5.5/dns-query
  nameserver-policy:
    geosite:cn:
    - https://120.53.53.53/dns-query
    - https://223.5.5.5/dns-query
    geosite:geolocation-!cn:
    - https://dns.cloudflare.com/dns-query
    - https://dns.google/dns-query

该配置可能会引起局域网内的 DNS 出错,从而影响局域网服务的访问。建议在局域网环境下对局域网特定域名额外添加下面的配置。

  nameserver-policy:
    "+.your-lan-domain.cn":
      # replace with your lan DNS server
      - 172.0.0.1
      - 172.0.0.2

该配置将使以 your-lan-domain.cn 结尾的域名使用 DNS 服务器 172.0.0.1172.0.0.2 解析。

如果使用的是 Mac 或者 Linux,修改上述配置后使用常用的 DNS 泄露测试工具可发现 DNS 不再发生泄露(无来自中国大陆的 DNS)。

若使用的是 Windows 11,则还需参考禁用 Windows 智能多宿主名称解析教程来关闭智能多宿主名称解析, 再在设置 App — 网络与 Internet 设置 — 属性 — DNS 服务器分配中设置 DNS 为手动,地址设置为 127.0.0.1::1.

完成设置后,使用常用的 DNS 泄露测试工具可发现 DNS 不再发生泄露(无来自中国大陆的 DNS)。