很多用户在OpenWrt设备上部署VPN服务或者配置VPN客户端全局代理后,经常遇到域名解析异常、部分网站打不开、IP查询页面显示的公网地址和VPN出口不匹配的问题,这类故障绝大多数都和DNS配置错位有关。本文围绕OpenWrt VPN场景下的DNS配置检查全流程,从基础状态校验到分层故障定位,给出可落地的排查步骤,帮用户理清配置逻辑,避开常见的设置误区。
配置前提与前置现象确认
在启动正式检查之前,首先要先明确当前OpenWrt的VPN部署模式,是把OpenWrt作为VPN服务器让外网设备接入,还是OpenWrt本身作为VPN客户端,让下挂的所有局域网设备走VPN隧道转发,两种场景的DNS配置逻辑完全不同,混同设置很容易出现解析泄漏。
接下来要先记录故障的直观现象,比如是所有设备都无法解析域名,还是只有部分接入VPN的设备解析异常,或者是域名能解析但是返回的IP地址归属地和预期不符,不同的现象对应的故障点分布差异很大,提前归类能大幅缩减排查范围,避免后续做很多无效的校验操作。

用户在本地网络环境下逐步排查OpenWrt VPN部署后的DNS配置异常问题
第一层:OpenWrt系统核心DNS配置校验
首先登录OpenWrt的管理后台,进入网络-接口设置页面,先查看VPN对应的虚拟接口的DNS配置项,正常情况下如果是客户端模式走隧道,白鲸加速器VPN服务商分配的DNS地址应该优先填入该接口的自定义DNS栏,并且勾选“对该接口的DNS服务器使用对等方的DNS服务器”选项,不要直接把公共DNS硬写在LAN接口的DNS栏里,否则会出现局域网设备优先走本地DNS解析的问题。
接下来进入DHCP和DNS的配置页面,也就是常说的dnsmasq设置项,检查“重定向DNS到自身”的选项是否开启,这个选项的作用是强制下挂的所有局域网设备的DNS请求全部转发给OpenWrt本身的dnsmasq服务处理,避免设备手动设置了第三方DNS绕过VPN隧道的情况。
这里要注意一个常见误区,很多用户为了所谓的解析速度,会在dnsmasq的上游DNS里直接填入国内公共DNS,这会导致即使VPN隧道已经连通,普通域名的解析请求还是直接从本地WAN口发出,出现IP地址显示VPN出口但解析地址泄漏本地运营商的问题,完全背离了配置VPN的初始需求。
第二层:VPN服务规则的DNS绑定检查
如果是OpenWrt作为VPN服务器的场景,要进入VPN服务的配置详情页,查看是否有专门的DNS推送配置栏,以常见的OpenVPN服务为例,需要在自定义配置里添加push "dhcp-option DNS 你指定的VPN侧DNS地址"的规则,否则接入VPN的客户端会默认使用自身本地的DNS,不会走服务端分配的解析地址。
如果用的是其他类型的VPN协议,也要确认服务端配置里的DNS推送开关没有被关闭,部分精简版的OpenWrt第三方固件会默认把VPN服务的DNS推送选项设为禁用,需要手动勾选才能生效,这类隐藏的默认配置很容易被用户忽略,导致反复调整参数都没有效果。
完成配置修改后不要忘记重启对应的VPN服务进程,很多用户修改完配置直接测试,进程没有重载的情况下新的DNS规则不会生效,很容易误判配置本身存在问题,甚至错误重置原本正常的其他网络参数。
第三层:实机验证与异常定位
所有配置修改完成后,先在OpenWrt本地执行nslookup命令测试解析,指定查询的DNS为VPN侧的DNS地址,白鲸看返回的结果是否符合预期,如果本地OpenWrt本身就无法通过VPN的DNS完成解析,说明故障出在VPN隧道的路由规则上,需要检查VPN的策略路由是否没有把53端口的UDP请求纳入隧道转发范围。
如果OpenWrt本地解析正常,再用局域网下的设备测试,先断开设备的其他网络,仅保留接入OpenWrt的局域网连接,访问专门的DNS泄漏检测页面,查看返回的DNS服务器地址是否全部属于VPN服务商提供的地址段,如果出现本地运营商的DNS地址,说明之前的DNS重定向配置没有完全生效,需要检查是否有自定义的防火墙规则拦截了53端口的转发请求。
最后要注意,部分设备本身会自带硬编码的公共DNS地址,比如部分智能电视、物联网设备会优先使用厂商内置的DNS绕过DHCP推送的配置,这类设备的DNS泄漏不属于OpenWrt VPN的配置问题,不需要反复调整路由设置,单独给这类设备配置对应规则即可。

