代理客户端的 DNS 设置:虚拟地址模式与真实解析模式
代理客户端处理 DNS 有两种思路:虚拟地址模式先给程序一个内部假地址、连接时再按规则解析,真实解析模式先查出真实 IP 再匹配规则。本文对比两者的速度、兼容性与隐私差异,说明过滤列表、上游服务器分工和常见症状对应的调整方法。
两种模式的分歧点:先拿真实 IP,还是先给一个假地址
虚拟地址模式(常称 fake-ip)在程序查询域名时立刻返回一个内部假地址,等程序真正发起连接,内核再根据这个地址反查出域名、按规则决定去向,需要代理的域名交给节点去解析;真实解析模式(常称 redir-host 或真实 IP 模式)则先向上游 DNS 查出真实地址,再用域名和 IP 一起匹配规则。 前者快、按域名分流准确,代价是少数软件不兼容;后者兼容性好,代价是每次访问都要先等一次真实解析。
DNS 在代理中的作用与泄露原理属于基础概念,见 DNS 在代理中起什么作用。本文只讲客户端里的配置差异与调整方法;网页变慢背后的网络成因,归 晚高峰与网络质量影响因素。
两种模式各自发生了什么
以访问一个海外域名为例:
虚拟地址模式
程序查询域名 → 内核立刻返回 198.18.x.x(内部记账)
程序连接 198.18.x.x → 内核查表得知原域名 → 按域名匹配规则
→ 走代理:域名交给节点,由远端解析
→ 直连:内核此时才在本地做真实解析
真实解析模式
程序查询域名 → 内核向上游 DNS 查询 → 返回真实 IP
程序连接真实 IP → 内核用记录的域名和 IP 匹配规则 → 决定去向
可以看到,虚拟地址模式下,走代理的域名在本地根本不会产生真实解析,这正是它响应快、本地 DNS 记录少的原因。
对照表:速度、兼容与隐私
| 比较项 | 虚拟地址模式 | 真实解析模式 |
|---|---|---|
| 首次访问速度 | 快,查询立即返回 | 需等待真实解析完成 |
| 按域名分流的准确度 | 高,始终能拿到原始域名 | 一般较高,依赖内核记录 |
| 本地可见的域名查询 | 走代理的域名通常不在本地解析 | 视上游设置,可能在本地解析 |
| 依赖真实 IP 的软件 | 可能出错 | 正常 |
| ping、traceroute 结果 | 显示虚拟地址,无参考意义 | 显示真实地址 |
| 关闭客户端后 | 程序可能缓存了虚拟地址 | 影响较小 |
过滤列表:虚拟地址模式的必备配置
虚拟地址模式下,有些域名必须拿到真实地址才能工作,需要放进过滤列表,让它们按真实解析处理。常见的几类:
- 局域网与本机服务:路由器管理页、局域网设备的本地域名;
- 时间同步服务:系统校时依赖它们,拿到假地址会导致校时失败,进而影响节点连接,相关现象见 系统时间不准导致节点连不上;
- 网络认证页面:酒店、校园网的登录页需要真实地址才能弹出;
- 部分游戏与即时通讯服务:它们会校验解析结果,或直接用 IP 建立连接。
配置示意如下,字段名称和默认值以客户端文档为准:
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "*.lan"
- "time.example.com"
nameserver:
- https://dns.example.net/dns-query
上游服务器的分工
无论哪种模式,客户端都可以给不同用途指定不同的上游 DNS。常见分工有三层:
- 解析节点域名的服务器:机场节点多以域名形式提供,解析它们不能经过代理本身,否则会形成“要先连上节点才能找到节点”的死循环,部分内核为此单独提供一个字段。
- 默认服务器:处理大多数直连域名,常用本地网络可靠的服务器。
- 按域名指定的服务器:为某类域名单独指定上游,例如让局域网域名交给路由器解析。
加密 DNS(如 DoH)可以减少解析结果被中途篡改的机会,但它本身也需要先能连上,首次启动时的可用性要考虑在内。
症状与调整方向
| 症状 | 可能原因 | 调整方向 |
|---|---|---|
| ping 网站显示内部地址 | 虚拟地址模式的正常表现 | 用客户端节点测试代替 ping |
| 局域网设备访问不到 | 本地域名被分配了虚拟地址 | 加入过滤列表 |
| 连上 Wi-Fi 后认证页不弹出 | 认证域名被代理接管 | 加入过滤列表或暂时关闭代理完成认证 |
| 某些软件报网络错误 | 软件依赖真实 IP | 加入过滤列表,或改用真实解析模式 |
| 首次打开网页偏慢 | 真实解析模式等待上游 | 换响应更快的上游或尝试虚拟地址模式 |
| 关闭代理后个别软件不通 | 软件缓存了虚拟地址 | 重启软件或刷新系统 DNS 缓存 |
单个网站打不开时的完整排查顺序,见 开了代理但某个网站打不开;网页慢的网络侧原因可参考 DNS 设置为什么会让网页变慢。
怎样确认当前生效的是哪种模式
机场下发的配置通常已经写好了 DNS 段,很多人并不知道自己正在用哪种模式。可以用两个简单的方法判断:
- 看配置:在客户端的配置查看页面找到 DNS 段,模式字段的取值会直接写明;部分图形界面还会在设置页单独列出“增强模式”选项。
- 看现象:在开启代理的状态下,用系统自带的命令查询任意一个海外域名,返回结果若落在内部保留网段(常见为 198.18 开头),说明是虚拟地址模式;返回真实的公网地址,则是真实解析模式或 DNS 未被接管。
判断清楚之后再决定是否调整。若配置来自订阅,修改应通过客户端的覆写功能完成,否则下次订阅更新会把改动还原。
改 DNS 前的三个提醒
- 浏览器自己的安全 DNS 会绕开客户端的 DNS 处理,排查 DNS 问题时先确认浏览器设置;
- TUN 模式下 DNS 是否被接管,取决于客户端的劫持设置,没有接管时,本文所述的模式只对经过本地代理端口的连接生效;
- 一次只改一项,改完后用连接日志对照,避免同时更换模式和上游导致无法判断是哪一项起作用。
其他规则与排错主题请回到 规则分流与故障排查专题页。调整 DNS 设置同样应遵守所在地法律法规与网络服务条款。
常见问题
开启虚拟地址模式后,ping 一个网站为什么显示 198.18 开头的地址?
这是客户端分配的内部虚拟地址,不是网站的真实 IP。ping 结果反映的只是到本机内核的响应,不能代表到网站或节点的真实延迟。需要真实延迟时,应使用客户端自带的节点测试或关闭代理后再测。
虚拟地址模式和真实解析模式该怎么选?
没有通用答案。虚拟地址模式响应快、对按域名分流更友好,但少数依赖真实 IP 的软件会出问题;真实解析模式兼容性好,但首次访问稍慢,也更依赖上游 DNS 的可靠性。可以先用虚拟地址模式,遇到兼容问题再把个别域名加入过滤列表。
关闭客户端后部分软件仍然连不上,和 DNS 有关吗?
可能有关。程序在代理运行期间拿到的是虚拟地址,并缓存了一段时间;客户端关闭后,这些地址已无人响应。重启该软件或刷新系统 DNS 缓存,通常可以恢复。
来源与更新
品牌字段来自本站品牌数据文件(整理自 2026-09-04 品牌清单,Vendor Data,官网待核实);测速截图为 2026-10-18 复核后发布的单次 Measured Data;AI 与流媒体均为 Not Tested。发布 2026-10-18,最近更新 2026-10-18。本页不承诺任何平台的收录、排名或引用。