很多用户在OpenWrt设备上完成VPN客户端部署后,经常会遇到明明已经把指定网段流量导向VPN隧道,实际网页解析却跳转到本地运营商缓存页面、甚至出现DNS泄漏的问题,这类问题大多不是VPN隧道本身连通性故障,而是DNS转发链路的配置优先级没有调整到位,本文围绕OpenWrt VPN DNS配置检查的全流程给出可落地的操作方法,覆盖从客户端到系统内核再到隧道出口的全链路校验,帮你快速定位配置疏漏。
检查前的配置前置确认
在启动所有DNS校验操作之前,首先要确认OpenWrt上的VPN客户端已经处于正常连通状态,不能带着隧道断开的状态去排查DNS配置,不然所有检查结果都不具备参考性。你可以先在OpenWrt的后台状态页面看VPN接口的运行灯是否亮起,也可以直接在系统终端里ping一下VPN对端的内网网关地址,确认隧道本身没有断连。
另外还要提前关闭OpenWrt上默认开启的DNS劫持相关临时规则,不少用户之前为了去广告设置过强制所有设备DNS请求转发到本地的规则,这类规则会覆盖VPN侧的DNS配置优先级,导致后续检查结果出现偏差,你可以临时关闭自定义的DNS重定向规则,完成校验之后再按需开启。

技术人员实操排查OpenWrt VPN部署后的DNS配置故障
LAN侧接入客户端的DNS基础校验
最贴近用户使用场景的校验就是直接连在OpenWrt下的手机、电脑等客户端的DNS状态检查,你不需要先登路由器后台,直接在客户端的系统终端里输入查询当前DNS服务器地址的命令,Windows下用ipconfig /all,Linux和macOS下用scutil --dns,看返回的DNS服务器地址是不是你之前规划好的、要走VPN链路的DNS地址。
接下来你可以在客户端的浏览器里打开公开的DNS泄漏检测页面,观察页面返回的当前解析服务器归属,如果此时你已经设置了所有流量走VPN,检测结果里出现本地运营商的DNS服务器IP,黑石就说明第一层的DNS转发配置就没有生效,客户端的DNS请求没有被导向VPN侧的DNS服务器。
这里要注意一个常见误区,很多用户手动在客户端里设置了公共DNS地址,这类静态配置的优先级远高于OpenWrt下发的DHCP DNS参数,就算你在路由器里调整了所有DNS规则,客户端的请求还是会直接发到你手动设置的公共DNS,根本不会走路由器的转发链路,排查的时候要先确认客户端没有设置静态DNS。
OpenWrt系统内部DNS转发链路检查
完成客户端侧的校验之后,梯子软件你需要登录OpenWrt的SSH终端,检查系统内部的DNS解析优先级,首先查看系统/etc/resolv.conf文件的内容,这个文件里记录的是系统层面默认调用的DNS服务器地址,如果这里的地址还是你之前设置的运营商公共DNS,就说明VPN客户端没有自动修改系统的DNS优先级。
接下来你要进入OpenWrt的DHCP和DNS设置页面,查看DNS转发的规则列表,确认你添加的VPN侧DNS服务器的优先级排在本地运营商DNS的前面,同时确认“忽略来自WAN的DNS解析”这个选项已经勾选,避免WAN口的DNS配置覆盖VPN侧的规则。
不少用户会在OpenWrt上同时运行多个VPN客户端,不同VPN接口的DNS配置如果没有配置对应的策略路由规则,会导致非对应网段的DNS请求乱跳,你可以查看策略路由的规则表,确认指定走VPN的网段的DNS请求,只会被转发到对应VPN接口绑定的DNS服务器,不会被其他接口的规则抢占。
VPN隧道出口的DNS生效验证
最后一步的校验要确认DNS请求确实是从VPN隧道的出口发出去的,你可以在OpenWrt的终端里指定用VPN接口的网卡发起DNS解析请求,对比用WAN口网卡发起的解析请求返回的结果,如果两个请求的返回结果归属不同的DNS服务商,就说明VPN侧的DNS配置已经正常生效。
这里要注意,部分VPN服务商会在隧道建立之后自动推送DNS配置,如果你的OpenWrt没有开启“对端DNS推送”的接收权限,黑石就算VPN对端下发了DNS地址,本地系统也不会接收,你需要在VPN客户端的配置页面里打开允许接收对端DNS的选项,避免手动配置的DNS和对端推送的规则冲突。
常见异常场景的排障思路
如果你检查完所有配置之后还是出现DNS泄漏,首先排查OpenWrt上的IPv6 DNS配置,很多用户只调整了IPv4的DNS转发规则,没有修改IPv6的DNS分配参数,客户端发起的IPv6 DNS请求会直接走本地WAN口的链路,完全绕过VPN隧道,你可以临时关闭WAN口的IPv6 DHCP服务,测试DNS泄漏问题是否消失。
还有一类常见问题是部分网站解析结果和预期不符,这不一定是DNS配置错误,有可能是你使用的VPN侧DNS服务器本身有内容缓存,你可以清空客户端的本地DNS缓存之后再重新测试,不要直接判定OpenWrt的配置存在问题。如果调整后问题依然存在,可以逐一核对DNS转发规则的匹配顺序,确认高优先级的VPN DNS规则没有被低优先级的WAN口规则覆盖。





