国外梯子哪个好用注册/登录
国外梯子哪个好用
节点与线路

OpenWrt部署VPN后DNS配置检查与故障排查实用教


OpenWrt部署VPN后DNS配置检查与故障排查实用教 - ExpressVPN

很多用户在OpenWrt设备上部署完VPN服务,不管是用于远程回家访问内网资源,还是让内网指定设备走VPN隧道,经常会遇到域名解析异常的问题,要么部分网站打不开,要么明明已经切到VPN线路,解析出来的还是本地运营商的DNS地址,这类问题大多和DNS配置的联动逻辑没理清楚有关。这篇实用教程就围绕OpenWrt VPN场景下的DNS配置检查全流程展开,覆盖从配置前提梳理到分步排查的全操作,帮你定位绝大多数常见的解析故障。

配置前的核心逻辑梳理

很多新手刚接触OpenWrt VPN配置的时候,会把VPN客户端的DNS设置和路由器本身的DNS转发规则混为一谈,ExpressVPN这是后续出问题的核心诱因之一。OpenWrt系统默认的DNS解析链路是,内网设备的DNS请求先发到路由器的dnsmasq服务,再由dnsmasq转发给上游DNS服务器,而当你开启VPN客户端之后,系统默认不会自动把VPN推送的DNS地址覆盖全局的dnsmasq上游配置,两者的链路是独立的。

如果你部署的是VPN服务端,比如OpenVPN或者WireGuard服务端,给远程接入的设备分配IP的时候,ExpressVPN默认也不会主动下发自定义的DNS地址,远程接入的设备如果还是用本地的运营商DNS,就会出现明明已经连进VPN内网,却没法解析内网自定义域名的问题,这两类场景的DNS检查逻辑是共通的。

网络设备:OpenWrt VPN:DNS

技术人员正在调试OpenWrt设备,逐步排查VPN部署后的DNS解析异常问题。

第一层基础配置项检查

第一步先进入OpenWrt的VPN对应配置页面,不管你用的是luci界面里的OpenVPN客户端、WireGuard客户端,还是其他VPN协议的配置项,先找到“DNS服务器”相关的填写栏。很多用户图省事根本不在这里填任何DNS地址,默认就会调用VPN对端推送的DNS,部分VPN服务商的推送规则不稳定,就会出现解析地址跳变的情况。

确认你填写的DNS地址是你预期要走的地址之后,再进入OpenWrt的“接口”配置页面,找到VPN对应的虚拟接口,查看该接口的“使用对端DNS”选项有没有勾选。如果你的需求是让所有走VPN隧道的流量都用指定的DNS,就不要勾选系统默认的“覆盖DNS服务器”全局选项,避免本地正常流量的解析也被VPN的DNS影响。

接下来进入“DHCP和DNS”配置页,也就是dnsmasq的管理界面,查看“DNS转发”栏目里有没有多余的规则。很多用户之前为了去广告或者用公共DNS,在这里填了大量上游DNS地址,这些规则的优先级是高于VPN接口推送的DNS的,哪怕VPN配置里填了正确的DNS,dnsmasq还是会优先用之前填写的地址做解析。

你还需要查看dnsmasq设置里的“重定向DNS”选项有没有开启,这个选项的作用是强制内网所有设备的DNS请求都指向路由器本身,如果开启了这个功能,哪怕内网设备手动设置了第三方DNS,最终的解析请求还是会发到dnsmasq处理,这个配置可以避免部分设备绕过VPN的DNS规则。

第二层连通性验证操作

配置项检查完之后不要直接拿内网设备开网页测试,先登录OpenWrt的SSH命令行界面,在系统层面先做解析测试。直接输入nslookup命令加任意公网域名,查看返回的DNS服务器地址是不是你在VPN配置里填写的地址,如果返回的还是本地运营商的DNS地址,说明VPN的路由规则没有把DNS请求导入隧道。

如果是VPN服务端的场景,你可以拿一台外部设备接入这个VPN服务,在接入的设备上执行nslookup测试,先看能不能ping通OpenWrt内网的网关地址,再测试内网自定义域名的解析结果,如果能ping通网关但解析失败,说明VPN服务端的配置里没有把自定义DNS地址下发给接入客户端。

如果命令行层面的解析结果符合预期,再到内网连接OpenWrt的普通设备上做测试,这时候如果设备返回的解析地址不对,大概率是设备本身之前手动设置了固定DNS,没有自动从路由器的DHCP获取DNS地址,不属于OpenWrt侧的配置故障,只需要把设备的DNS设置改回自动获取即可。

常见误区与故障定位

很多用户遇到解析异常之后,第一反应是去修改路由器的hosts文件,这只能解决单个域名的解析问题,没法从根本上理顺VPN场景下的DNS转发逻辑,甚至会导致部分走隧道的域名和不走隧道的域名出现解析冲突的问题,后续排查其他故障的时候很容易忽略之前手动添加的hosts规则。

还有部分用户会安装第三方的DNS过滤插件,没有给VPN虚拟接口开白名单,导致VPN接口发出的DNS请求全部被插件拦截,只能用插件指定的上游DNS,这类问题你可以临时关闭第三方DNS插件再做测试,如果解析恢复正常,就去插件的接口权限设置里把VPN虚拟接口加入放行列表即可。

整个排查流程不需要用到复杂的抓包工具,按照从系统底层到上层设备的顺序逐步验证,就能覆盖绝大多数OpenWrt VPN场景下的DNS配置异常问题,不需要额外修改系统核心文件,所有调整都可以通过luci界面的原生配置项完成,调整完配置之后记得重启dnsmasq服务和VPN接口,国外梯子哪个好用让新的配置规则完全生效。

连接排障编辑组 | ExpressVPN
连接排障编辑组
内容编辑

按设备、网络、客户端和服务端逐层检查,让故障定位更有条理。

查看更多文章
配置入门

找到适合当前设备的指南

遇到路由器长时间高负载相关问题,可从“减少无关重任务并观察设备负载变化”开始阅读。重启暂时改善不代表根本原因已经解决,需要结合具体环境判断。