知识百科

DNS 是什么:域名解析在代理环境下的流程、DNS 污染与泄漏、客户端怎么处理

从代理用户角度解释 DNS:把域名翻译成 IP 的过程。说明正常解析流程、DNS 污染是怎么回事、为什么开了代理还要管 DNS、DNS 泄漏的含义、客户端 fake-ip 与 redir-host 模式的原理,以及 DoH 的作用。

机场导航编辑部 发布 更新 约 2 分钟
DNS 是什么:域名解析在代理环境下的流程、DNS 污染与泄漏、客户端怎么处理 封面图

DNS 是访问网站的第一步,也是代理环境下最容易被忽略的一步。很多「开了代理某些网站还是打不开」的问题根源在这里。

正常的解析流程

  1. 你输入 example.com。
  2. 系统向 DNS 服务器(通常是运营商的)询问这个域名的 IP。
  3. 得到 IP 后连接服务器。

代理环境下的问题

DNS 污染

向本地 DNS 询问某些国外域名时,返回的是错误的 IP。你连的是错误服务器,表现为打不开或证书错误。代理只负责转发到你指定的 IP,如果 IP 本身是错的,代理也无能为力。

DNS 泄漏

即使流量走了代理,域名解析请求仍然发给了本地 DNS,本地 DNS 知道你想访问什么。对隐私敏感的场景需要避免。

客户端的解决方案

fake-ip 模式

客户端拦截解析请求:国外域名不真正解析,直接返回一个虚拟 IP(198.18.x.x 段),程序连这个虚拟 IP,客户端识别后把原始域名发给节点,由节点在海外完成解析。本地 DNS 完全不参与,不会被污染也不会泄漏。

代价:部分对 IP 有特殊要求的程序(局域网工具、某些游戏)不兼容,需要在 fake-ip-filter 中排除。

redir-host 模式

客户端在本地解析,但解析请求通过 DoH(加密)并走代理发出,得到真实 IP 后再转发。兼容性好,但依赖 DoH 配置正确。

DoH / DoT

DNS over HTTPS / TLS,把解析请求加密。配合代理使用时,解析请求也经过节点,不会被本地干扰。

分流

国内域名用国内 DNS(快、准确),国外域名走代理解析(不被污染)。客户端的 nameserver 与 fallback 配置就是做这个分流。全部走国外 DNS 会让国内网站变慢。

TUN 模式下

TUN 接管流量后,系统 DNS 请求也要进入客户端才能应用上述逻辑,需要开启 DNS 劫持。见 TUN 是什么

配置与排错

下一步 TUN 是什么

常见问题

DNS 是什么?
域名系统,把 example.com 这样的域名翻译成服务器 IP 地址的服务。每次访问网站都先经过它。
什么是 DNS 污染?
本地 DNS 查询被返回错误的 IP,导致连到错误服务器或连不上。国外域名在本地解析时常见。
开了代理为什么还要设置 DNS?
代理只转发流量,如果域名解析仍在本地完成并被污染,代理拿到的就是错误 IP。让解析走代理或在节点侧完成才能避免。