很多用户部署完OpenWrt VPN服务之后,明明已经把设备流量路由到VPN隧道内,本地终端的域名解析请求却依然会走运营商的公网线路,不仅可能导致跨区域服务访问异常,还可能暴露真实的网络访问轨迹。本文围绕OpenWrt VPN的DNS配置检查全流程展开,从现象确认到逐项排查,梳理普通用户也能独立完成的校验步骤,不需要依赖不明第三方工具就能定位绝大多数常见的DNS泄漏问题。
前置准备:先确认VPN隧道本身的连通性
很多人上来就直接检查DNS配置,反而忽略了最基础的隧道运行状态校验,半连接或者未完全握手的VPN隧道本身就会触发系统的路由 fallback 机制,直接绕过隧道转发所有请求。你可以登录OpenWrt的管理后台,进入对应VPN服务的状态页面,查看隧道的运行时长、从VPN服务商侧获取的虚拟IP地址是否正常生成,也可以通过SSH终端登录OpenWrt系统,执行ip route命令查看路由表,确认默认路由或者对应分流策略的路由条目,已经指向VPN对应的虚拟接口,比如常见的tun0或者wg0接口。
这里要注意一个常见误区,如果你配置的不是全局VPN路由,而是指定部分网段、部分设备走VPN的分流规则,就不能用全隧的标准去校验所有DNS请求,要先明确自己预设的分流边界,蓝猫哪些设备的流量需要走隧道、哪些网段的请求允许直连公网,避免后续排查的时候把正常的直连DNS请求误判成泄漏问题。
第一层检查:OpenWrt系统级的DNS转发配置校验
这一步是核心的OpenWrt VPN的DNS配置检查环节,你要进入OpenWrt的网络-接口设置页面,找到VPN对应的虚拟接口选项,点击编辑进入高级设置板块,确认里面的“使用对端DNS服务器”选项已经正常勾选,或者手动填入了VPN服务商提供的内网DNS地址,不要留空也不要默认沿用WAN口自动获取的运营商DNS地址。

用户通过终端查看路由表,核验OpenWrt VPN隧道连通状态
接下来进入DHCP和DNS解析的设置板块,也就是常规的DNSmasq配置页面,检查里面的上游DNS服务器列表,有没有把WAN口自动获取的运营商DNS排在VPN专用DNS的前面,如果优先级设置错误,DNSmasq服务会优先把解析请求发往运营商的DNS服务器,哪怕业务流量本身已经走了VPN隧道,解析结果也会暴露你的真实网络位置。
这里还有一个很容易被遗漏的配置点,很多用户之前安装过广告过滤、去广告类的第三方插件,比如ADguard Home或者SmartDNS,这类插件的上游DNS配置是完全独立的,不会跟随OpenWrt接口的DNS设置自动更新,你要单独进入这类插件的配置页面,确认它们的上游DNS列表里没有残留之前配置的运营商公共DNS,全部替换成VPN隧道内可以正常访问的DNS地址。
第二层检查:客户端侧的DNS获取状态校验
很多时候OpenWrt路由端的配置完全正确,但连接到路由的手机、电脑等终端设备之前手动设置过固定DNS地址,比如之前配置过公共DNS服务,这时候设备的解析请求不会发给OpenWrt的DNSmasq服务,自然也不会走VPN隧道完成转发。你可以先把用来测试的终端设备的DNS设置改回自动获取模式,再开展后续的测试校验,避免终端侧的自定义配置干扰排查结果。
你可以在测试终端上打开命令行工具,Windows系统用自带的nslookup命令,macOS和Linux系统用dig命令,随便解析一个公共域名,查看返回的DNS服务器地址是不是你在OpenWrt里配置的VPN内网DNS地址,如果返回的地址是运营商分配的公网DNS地址,就说明终端的DNS请求根本没有转发到VPN隧道内部完成处理。
常见DNS泄漏场景的针对性排查
最常见的泄漏场景是IPv6的DNS请求绕过隧道,很多用户开启了OpenWrt的IPv6支持,但是VPN隧道本身没有配置对应的IPv6路由规则,也没有指定可用的IPv6 DNS地址,这时候终端发起的IPv6 DNS解析请求会直接走WAN口的运营商IPv6线路,蓝猫VPN完全绕开VPN隧道的转发逻辑。你可以临时关闭OpenWrt的IPv6 DHCP分配功能,再重新测试解析状态,如果泄漏现象消失就说明是IPv6相关配置缺失导致的问题。
还有一类高频场景是VPN断线后的DNS泄漏,很多用户没有配置OpenWrt的DNS防泄漏规则,当VPN隧道因为网络波动意外断开的时候,系统会自动切回WAN口的默认DNS,所有终端的解析请求直接暴露在公网环境下。你可以在OpenWrt的防火墙配置里添加对应规则,禁止所有内网终端的53端口DNS请求发往WAN口的公网地址,只允许转发到VPN接口内的DNS服务器,这样哪怕隧道意外断开也不会出现DNS直接外传的情况。
需要注意的是单次的DNS测试结果只能代表当前的配置状态,如果你后续调整了分流规则、更新了VPN相关的插件版本,都需要重新做一遍OpenWrt VPN的DNS配置检查,避免旧配置被系统意外覆盖导致泄漏,这类基础排查不需要用到付费的测试工具,靠系统自带的命令和后台配置页就能完成绝大多数问题的定位。




