外观
DNS 是什么?代理里的 DNS 设置怎么理解
直接答案:DNS 是把网址(域名)翻译成服务器 IP 地址的系统。你在浏览器里输入一个网址,设备先要通过 DNS 查到它的 IP,才能真正发起连接。
在使用代理时,DNS 会影响三件事:
- 能不能打开网站:查到的 IP 是错的,网站就打不开;
- 分流准不准:规则模式下,客户端有时要靠 DNS 结果判断走代理还是直连;
- 隐私:DNS 查询如果没经过代理,你访问了哪些网站可能被本地网络看到,这叫 DNS 泄露。
对新手的建议很简单:使用客户端自带的默认 DNS 设置,不要随意修改。下面解释原理,让你在遇到问题时知道该往哪个方向查。各客户端里具体在哪里设置,见对应的 代理客户端教程。
1. DNS 的工作过程
用打电话作比喻:域名是“联系人名字”,IP 地址是“电话号码”,DNS 就是通讯录。
你输入网址 example.com
│
▼
设备问 DNS 服务器:"example.com 的 IP 是多少?"
│
▼
DNS 服务器回答:"是 203.0.113.10"(示例地址)
│
▼
设备连接 203.0.113.10,网页开始加载几个相关概念:
| 概念 | 含义 |
|---|---|
| 域名 | 便于人记忆的网址,如 example.com |
| IP 地址 | 服务器在网络上的实际地址 |
| DNS 服务器 | 负责回答“某域名的 IP 是多少”的服务器,通常由运营商自动分配,也可以手动指定公共 DNS |
| 解析 | 把域名查成 IP 的过程 |
| 缓存 | 设备和 DNS 服务器会把查过的结果暂存一段时间,下次直接用 |
同一个域名可能解析出不同的 IP
很多大型网站在全球部署了服务器,DNS 会根据查询来源返回“离你最近”的 IP。这就是为什么 DNS 结果会影响访问速度,也是代理环境下 DNS 需要专门处理的原因之一。
2. 代理环境下 DNS 为什么变复杂
不开代理时,设备自己查 DNS、自己连接,流程很简单。开了代理之后,会出现一个问题:域名由谁来查、在哪里查?
| 方式 | 谁来解析 | 特点 |
|---|---|---|
| 本地解析 | 你的设备或客户端在本地查 | 查询经过本地网络,海外域名可能查到错误结果 |
| 远端解析 | 把域名交给代理节点,由节点在海外查 | 结果更准确,查询不经过本地网络 |
| 客户端接管 | 客户端内置 DNS 模块,按规则决定在哪里查 | 多数现代客户端的默认做法 |
以浏览器使用系统代理为例:浏览器通常会把完整的域名交给客户端,再由客户端决定怎么处理,所以一般不会出问题。但开启 TUN 模式后,设备上所有程序的 DNS 查询都会经过客户端,这时客户端的 DNS 设置就变得很关键。系统代理和 TUN 的区别,见 系统代理、TUN、规则和全局是什么关系。
3. DNS 污染是什么
DNS 污染指查询某些域名时,得到的是错误的 IP 地址,而不是网站真实的地址。结果就是:
- 网站打不开,或者连接超时;
- 浏览器提示证书错误(连到了一个不是目标网站的地址);
- 换了好节点也没用,因为一开始拿到的地址就不对。
污染通常发生在本地网络查询海外域名的环节,与节点本身好坏无关。
代理客户端怎么避免它:
- 对需要走代理的域名,不在本地查,而是交给代理节点在远端解析;
- 或者使用客户端的“虚拟 IP”机制(部分客户端称为 Fake-IP):先给程序返回一个临时的内部地址,真正的解析由客户端在合适的地方完成;
- 对国内域名仍在本地查,保证国内网站拿到离你最近的服务器地址。
这些都是客户端默认配置已经处理好的,一般不需要你手动调整。
4. DNS 泄露是什么
DNS 泄露指你明明开了代理,但 DNS 查询仍然通过本地网络发出。网页内容走了代理,可“你查询了哪些网站”这件事暴露在本地网络中。
常见的泄露原因:
| 原因 | 说明 |
|---|---|
| 只开了系统代理 | 部分不遵守系统代理的程序会自己用系统 DNS 查询 |
| 开了 TUN 但没启用客户端 DNS | 系统的 DNS 查询绕过了客户端 |
| 系统或浏览器的“安全 DNS”功能 | 浏览器自己用加密 DNS 查询,可能绕开客户端的规则 |
| 手动设置了 DNS 但规则不当 | 所有域名都交给某个本地 DNS 查询 |
泄露的影响主要有两类:
- 隐私:访问记录可能被本地网络看到;
- 功能:部分网站会结合 DNS 来源判断你的地区。DNS 在国内、IP 在海外,可能被认为地区不一致,导致某些服务提示“不支持你所在的地区”或要求额外验证。
怎么检查
在开启代理的状态下,访问一个 DNS 泄露检测网站,看显示的 DNS 服务器位置。如果显示的是你所在城市的运营商,而你希望 DNS 也走代理,说明存在泄露。是否需要处理,取决于你的需求:日常浏览一般不必在意,对地区一致性有要求的服务(例如部分 AI 和流媒体服务)可以留意。
5. 客户端里的 DNS 设置意味着什么
各客户端的 DNS 设置界面不同,但核心选项含义相近。了解它们的作用,有助于看懂教程和排查问题:
| 常见选项 | 作用 | 新手建议 |
|---|---|---|
| 启用 DNS / DNS 接管 | 让客户端处理设备的 DNS 查询 | 使用 TUN 模式时一般应开启 |
| 国内 DNS / 直连 DNS | 用于解析走直连的域名 | 保持默认,通常是国内公共 DNS |
| 远端 DNS / 代理 DNS | 用于解析走代理的域名,查询经过节点发出 | 保持默认 |
| Fake-IP / 虚拟 IP 模式 | 先返回临时地址,加快连接并减少污染影响 | 保持默认 |
| 加密 DNS(DoH / DoT) | 用加密方式发出 DNS 查询,防止被篡改和窥探 | 客户端默认已配置时不必改动 |
| DNS 缓存 / 清除缓存 | 暂存查询结果;清除后重新查询 | 遇到解析问题时可以尝试清除 |
不要照搬来源不明的 DNS 配置
网上流传的 DNS 配置片段,往往针对特定客户端版本或特定需求,直接复制可能导致国内网站变慢、部分网站打不开。改动前备份原配置,改完后同时测试国内和海外网站。
DNS 与分流规则的关系:规则里的“按域名匹配”不依赖 DNS;而“按 IP 匹配”(例如按国家 IP 段分流)需要先把域名解析成 IP 才能判断。所以 DNS 结果不对时,也可能导致分流错误——本该直连的走了代理,或反过来。规则的设置方法见 代理客户端的规则与分流怎么设置。
6. DNS 出问题的常见表现
| 表现 | 可能的 DNS 原因 | 处理思路 |
|---|---|---|
| 开代理后所有网站都打不开,但节点测速正常 | 客户端 DNS 设置错误或 DNS 服务器不可用 | 恢复客户端默认 DNS 设置,重启客户端 |
| 只有个别海外网站打不开或证书报错 | 该域名在本地被解析到错误地址 | 确认该域名走代理;清除 DNS 缓存 |
| 国内网站明显变慢 | 国内域名被交给海外 DNS 解析,拿到了海外服务器地址 | 检查国内域名是否走直连 DNS |
| 关闭代理后上不了网 | 系统 DNS 仍指向客户端的本地地址 | 见 关闭代理后电脑无法上网 |
| 浏览器能用,某些应用不能用 | 应用自己查 DNS,没经过客户端 | 开启 TUN 并启用客户端 DNS,见 浏览器能访问,为什么应用程序连接失败 |
| 换了 Wi-Fi 就不正常 | 该网络强制使用自己的 DNS 或有特殊限制 | 见 手机流量能用,连接 Wi-Fi 后不能用怎么排查 |
| 服务提示地区不支持 | DNS 与节点地区不一致 | 确认 DNS 也通过代理查询 |
7. 新手的 DNS 原则
- 默认设置优先:主流客户端的默认 DNS 配置已经考虑了污染和分流,大多数人不需要改;
- 用 TUN 时开启客户端 DNS:否则容易出现泄露和部分应用打不开;
- 改之前先备份:任何 DNS 改动都应能一键恢复;
- 国内和海外分开查:国内域名用国内 DNS,海外域名通过代理查,这是速度和准确性的平衡点;
- 出问题先清缓存、再恢复默认:很多 DNS 问题在重启客户端或清除缓存后就消失了;
- 不要同时开多套 DNS 方案:浏览器的安全 DNS、系统的自定义 DNS、客户端 DNS 同时生效时,容易互相干扰。