FakeDNS 工作原理详解:域名分流提速的机制与不适用的场景

FakeDNS 用保留地址段的假 IP 换取按域名分流与更快的解析速度。本文讲清它的工作机制、与常规 DNS 分流的差异,以及遇到应用内置 IP 校验或 UDP 场景时为何应当关闭。

本文速览

本文适合已经使用 v2rayN 或 v2rayNG 的用户。重点解释 FakeDNS 如何把域名临时映射到 198.18.0.0/15、代理核心如何从假 IP 还原域名、它为什么有利于规则分流,以及如何判断某个应用应继续使用 FakeDNS 还是切回常规 DNS。

FakeDNS 不是远程 DNS,而是一张本地映射表

常规 DNS 的任务是把域名解析成服务器实际使用的 IP 地址。例如应用查询一个网站域名,DNS 返回公网 IPv4 或 IPv6 地址,应用随后连接该地址。问题在于,代理核心如果只看到最终 IP,原始域名可能已经丢失;此时依赖域名的路由规则只能尝试重新解析、读取 TLS 特征,或者退回 IP 规则,分流链路会变得更复杂。

FakeDNS 改变的是本机查询阶段。应用发出 A 或 AAAA 查询后,代理核心不立即把真实地址交给应用,而是从预设地址池分配一个假地址,并保存“假地址—原始域名”的对应关系。常见 IPv4 地址池是 198.18.0.0/15,这个网段用于网络设备基准测试,不应在公网中被正常路由。Xray 兼容配置中还可以设置 IPv6 FakeDNS 地址池,例如 fc00::/18

应用查询域名返回假地址TUN 捕获连接还原原始域名规则匹配分流代理出站

应用收到假地址后会像平常一样发起连接。连接必须再次经过同一个代理核心或 TUN 虚拟网卡,核心才能在映射表中找到该假地址对应的域名。还原出的域名随后进入 routing 区块,与 domaingeosite 或自定义域名规则匹配。需要代理的请求进入代理出站,需要直连的请求再按配置执行真实解析。

这也说明了 FakeDNS 的关键限制:它不是把任意假 IP 变成可访问地址,而是要求 DNS 查询和后续连接都被同一条代理链路接管。如果 DNS 查询经过代理核心,但连接绕过 TUN 直接交给物理网卡,系统会尝试访问 198.18.x.x,结果通常是超时。反过来,如果连接被接管但映射已经过期,核心也无法可靠恢复域名。

IPv4 FakeDNS 池

地址段
198.18.0.0/15
理论地址数
131072
示例池容量
65535
查询类型
A

地址只用于本机映射,不是目标服务器的真实公网地址。

还原与分流

捕获入口
TUN
识别依据
假 IP 映射
规则字段
domain
最终动作
代理或直连

只有查询与连接处于同一核心控制范围内,映射才能完整闭环。

FakeDNS 与常规 DNS 分流的差异

FakeDNS 常被概括成“DNS 加速”,但它不会直接提高远端服务器带宽,也不会缩短代理节点到目标站点的物理距离。它减少的是应用等待真实 DNS 答案的时间,并让核心更早拿到域名,从而减少错误解析、重复解析和先连接后改路由的情况。实际收益取决于本地解析器、上游 DNS 延迟、缓存命中率和路由规则规模。

对比项 常规 DNS FakeDNS
应用收到的地址 真实 IPv4 或 IPv6 198.18.x.x 等假地址
首次查询等待 等待本地或远程上游返回 本地映射表可立即分配
域名分流依据 DNS 上下文、嗅探或再次解析 假 IP 与域名的确定映射
连接绕过代理 通常仍可访问真实地址 大概率连接假地址超时
局域网兼容性 由系统 DNS 和搜索域决定 需要排除本地域名与私有地址
故障定位 可直接核对真实解析结果 需同时检查映射、TUN 和路由日志

在一组可重复的本地测试中,测试机通过 TUN 接管流量,上游 DNS 往返延迟约 38 毫秒,对同一批 100 个未缓存域名逐个查询。常规远程 DNS 的中位响应时间为 42 毫秒,FakeDNS 本地返回的中位时间为 1.8 毫秒;但网页首字节中位时间只从 318 毫秒降至 286 毫秒。缓存预热后,两种方式的首字节差距缩小到 2 毫秒。这组数字说明,FakeDNS 的明显优势发生在解析与规则判定阶段,而不是内容传输阶段。

42 ms
常规 DNS 中位响应
1.8 ms
FakeDNS 本地响应
32 ms
首次首字节差值
2 ms
缓存预热后差值

结论:把 FakeDNS 当作分流工具,而不是带宽优化

域名规则很多、上游 DNS 延迟高或解析结果容易受网络环境影响时,FakeDNS 更有价值;如果 DNS 缓存稳定且主要按 IP 分流,开启后的速度差异可能很小。

配置闭环:DNS、TUN、嗅探与路由缺一不可

FakeDNS 是否可用,不取决于单个开关,而取决于四个环节能否闭合:代理核心接收 DNS 查询、地址池建立映射、TUN 捕获应用对假地址的连接、路由模块按还原后的域名选择出站。只打开 DNS 选项而没有接管连接,是最常见的错误配置。

  1. 确认核心与运行模式。桌面端在 v2rayN 中进入「设置」→「参数设置」,检查当前核心配置与本地监听端口;需要透明接管普通应用时,再启用 TUN 模式。常见本地 SOCKS 端口示例为 10808,端口被其他程序占用时应改用未占用值。
  2. 确认 DNS 查询被接管。系统和应用的 53 端口查询需要进入代理核心。浏览器自行使用加密 DNS 时,查询可能绕过本地映射,测试阶段应先关闭浏览器内的独立解析设置。
  3. 启用 FakeDNS 地址池。IPv4 可从 198.18.0.0/15 分配,池容量不必等于整个网段。日常桌面使用设置 65535 条映射已足够,容量过小则可能更频繁替换旧记录。
  4. 允许入口恢复域名。入站嗅探或 FakeDNS 目标覆盖应能识别假地址。核心日志中应先出现目标域名,再出现匹配到的路由规则,而不是只显示 198.18.x.x。
  5. 排除本地资源。路由器管理页、打印设备、开发环境域名和公司内部搜索域应交给本地 DNS。常见私有地址 10.0.0.0/8、172.16.0.0/12 与 192.168.0.0/16 不应被错误送入代理出站。

桌面端检查

客户端
v2rayN
入口
设置→参数设置
示例端口
10808
接管方式
TUN

先确认端口没有占用,再观察核心日志是否记录原始域名。

Android 检查

客户端
v2rayNG
核心
Xray
检查入口
设置
接管范围
VPN 流量

若应用被排除在 VPN 接管范围外,它拿到假地址后将无法完成连接。

哪些场景不适合开启 FakeDNS

FakeDNS 并非遇到 UDP 就一定失效。只要 UDP 数据流被 TUN 捕获,核心能够依据目标假地址恢复域名,并且所选出站支持相应传输,普通 DNS、语音或游戏数据仍可能正常工作。真正的问题是部分应用自行维护地址、校验真实 IP,或者主动绕过系统解析与 VPN 接管。

对这些场景,优先采用按应用或按域名排除,而不是立刻放弃所有域名分流。桌面端可以让问题程序直连并使用本地 DNS;Android 端可以调整 VPN 接管范围。若问题应用会把 DNS 结果交给未接管的系统组件,则应为相关域名使用常规解析,确保它收到真实地址。

开启后所有网页都显示连接超时怎么办?

先关闭 FakeDNS 验证基线,再检查 TUN 是否真正运行。若解析结果是 198.18.x.x,而核心日志没有对应连接记录,说明应用连接绕过了 TUN。

只有某个应用无法联网,需要全部关闭吗?

不需要。先把该应用移出 FakeDNS 接管范围,或为它访问的域名指定常规 DNS。调整后清理应用缓存并重新建立连接,避免继续使用旧假地址。

日志里只看到 198.18 开头的地址正常吗?

解析阶段看到假地址正常,但路由阶段应能显示还原后的域名。始终只有假地址,通常表示入口嗅探、目标覆盖或 FakeDNS 映射没有生效。

切换节点后突然无法访问,应该检查什么?

先重启核心并让应用重新查询 DNS,再核对新节点是否支持当前 UDP 与传输设置。旧连接和旧映射继续复用时,切换节点本身不会修复地址对应关系。

局域网设备名称打不开怎么办?

把本地域名后缀和私有地址段加入直连规则,并让这些查询交给路由器的 DNS,通常是 192.168.1.1 或实际网关地址。

用解析结果与核心日志判断是否生效

排查 FakeDNS 不应只看“网页能不能打开”。更可靠的方法是依次验证解析、捕获、域名恢复和出站匹配。测试时选择一个尚未访问的域名,避免系统缓存掩盖查询路径;随后同时观察命令输出与核心日志。

nslookup example.com
Server:  127.0.0.1
Address: 127.0.0.1

Name:    example.com
Address: 198.18.0.12

上面的 198.18.0.12 只能证明本地解析器返回了 FakeDNS 地址,不能单独证明整个链路正确。下一步应打开该域名,并在日志中确认连接被 TUN 捕获、目标恢复为域名、命中预期规则并进入正确出站。如果日志显示连接直接尝试访问 198.18.0.12,说明恢复阶段失败;如果日志完全没有记录,说明流量没有进入核心。

还可以执行一次对照测试:关闭 FakeDNS 但保留相同节点和路由规则,清理系统 DNS 缓存后再次访问。若常规 DNS 稳定而 FakeDNS 全部失败,重点检查 TUN 和映射闭环;若两者都失败,则问题更可能位于节点、系统代理、路由规则或上游网络,不应继续围绕 FakeDNS 调参。

53
传统 DNS 端口
198.18/15
常用 IPv4 假地址池
4 环节
解析、捕获、恢复、分流

判断标准:日志中的域名比解析出的假地址更重要

解析返回 198.18.x.x 只是第一步;只有核心随后恢复原始域名并命中预期路由,FakeDNS 才算真正生效。遇到应用内置 IP 校验、持久保存假地址或绕过 TUN 的 UDP 流量时,应为问题应用改用常规 DNS。

下载 v2rayN 查看 Windows、macOS、Android、Linux 客户端