很多部署了OpenWrt旁路由或者主路由VPN规则的用户,经常会遇到明明VPN连接成功,访问域名却还是走本地运营商DNS,大象甚至出现DNS泄露、部分境外站点解析失败的问题,这份实操指南完全围绕OpenWrt VPN的DNS配置检查展开,从基础状态核验到分层排查逻辑,逐步帮你定位配置疏漏,不需要额外安装小众第三方插件,所有操作都基于OpenWrt原生系统功能完成。
配置前的前提状态确认
在启动正式的OpenWrt VPN DNS配置检查之前,首先要排除VPN连接本身的基础故障,很多用户会把VPN隧道未成功握手的问题误判为DNS配置错误,先进入OpenWrt的VPN服务管理页面,科学上网确认对应VPN实例的运行状态显示为已连接,且系统日志里没有认证失败、握手超时的报错记录。
你可以先在OpenWrt的终端页面执行ip route命令,查看路由表中是否生成了指向VPN虚拟网卡的默认路由或者分流规则路由,如果所有走VPN的流量对应的下一跳都不是VPN虚拟接口的地址,后续的DNS配置再正确也无法让解析请求走隧道传输。
第一层:全局DNS转发规则检查
进入OpenWrt的DHCP和DNS设置页面,也就是通常所说的dnsmasq配置界面,首先查看上游DNS服务器的配置项,大象很多新手用户容易忽略这里的优先级,直接把公共DNS填在了WAN口的DNS服务器列表里,导致即使VPN运行,dnsmasq还是优先调用运营商分配的WAN DNS做解析。

技术用户正在桌面调试OpenWrt路由器,核验VPN连接状态排查DNS配置问题
这里的预期正确结果是,如果你需要所有设备的DNS请求都走VPN隧道,上游DNS列表里只填写VPN服务商提供的专属DNS,或者支持境外解析的公共加密DNS地址,同时要勾选“忽略来自WAN的DNS解析”选项,防止运营商通过DHCP报文强行推送本地DNS到路由配置中。
第二层:VPN策略路由的DNS关联检查
如果你用的是分流模式的VPN,不是全局代理,这一步的检查是最容易出疏漏的地方,很多用户只给普通TCP/UDP流量配置了VPN分流规则,却没有把53端口的DNS请求单独加入VPN的转发规则列表,导致即使你指定了VPN DNS,解析请求还是从WAN口直接发出。
你可以在OpenWrt的终端执行tcpdump命令,抓取WAN口和VPN虚拟接口的53端口报文,查看DNS请求的源IP对应的出接口,如果发现DNS请求的源IP是WAN口的公网地址,就说明分流规则没有覆盖DNS端口,需要在策略路由的规则里新增目的端口为53的全地址段走VPN的条目。
第三层:客户端侧DNS继承状态检查
很多用户做完路由端的配置之后,忽略了局域网设备本身的静态DNS设置,比如部分手机、笔记本手动指定了公共DNS地址,不会从OpenWrt的DHCP服务获取分配的DNS地址,这类设备的解析请求会绕过路由的dnsmasq规则,直接走自身指定的服务器完成解析。
排查这个问题的方法很简单,在局域网设备上直接访问网页版的DNS泄露检测站点,查看返回的DNS服务器归属,如果出现不属于VPN服务商提供的DNS地址,就可以逐台检查设备的网络设置,把静态DNS选项改回自动获取即可。
常见配置误区排查
最常见的误区是用户同时开启了多个DNS相关的插件,比如同时运行了透明代理插件、广告过滤插件和VPN服务,不同插件的DNS转发优先级冲突,导致VPN的DNS配置被其他插件的规则覆盖,这种情况下可以临时逐个禁用非必要插件,每禁用一个就测试一次DNS解析结果,定位冲突的插件后调整插件的DNS监听端口优先级即可。
还有部分用户会混淆VPN客户端和VPN服务端的DNS配置,如果你的OpenWrt是作为VPN服务端,给外部远程接入的设备分配DNS,那配置项要放在VPN服务端的推送规则里,而不是本地VPN客户端的DNS设置中,两类配置的作用场景完全不同,填错位置自然无法生效。
完成所有检查步骤之后,你可以在OpenWrt终端执行nslookup测试域名,分别查看返回的解析结果对应的DNS服务器地址,确认所有走VPN的解析请求都从VPN虚拟接口发出,没有出现跨接口泄露的情况,整个配置检查流程就全部完成了。
大象加速器 


