隐私与安全

OpenWrtVPN部署后DNS配置检查及常见问题排查指


OpenWrtVPN部署后DNS配置检查及常见问题排查指 - LVCHA

很多用户在OpenWrt设备上完成VPN服务端或者客户端部署之后,经常遇到明明VPN连接状态显示正常,却打不开特定域名、解析结果走本地运营商线路、甚至出现DNS泄漏的问题,这类故障大多和DNS配置没有同步适配VPN逻辑有关,这份指南从实际运维排查的角度,梳理完整的配置检查流程和常见问题定位方法,帮你理清OpenWrt VPN场景下DNS相关的所有校验要点。

网络设备:OpenWrt VPN:DNS

实操排查OpenWrt设备VPN部署后的DNS配置异常问题

部署前的DNS配置前提校验

很多用户跳过前置检查直接改VPN配置,很容易出现底层路由规则和DNS服务逻辑冲突的问题。首先要确认OpenWrt系统自带的DNSmasq服务没有被第三方插件强制修改过监听端口,如果你之前安装过广告过滤类的DNS插件,要先确认插件的监听地址没有绑定到VPN虚拟网卡之外的接口,避免后续VPN客户端的DNS请求被直接转发到运营商默认DNS。

还要提前确认OpenWrt的WAN口DNS配置没有被运营商DHCP强制推送的DNS覆盖,你可以先进入系统接口的WAN设置页面,勾选“使用自定义的DNS服务器”选项,先把底层的基础DNS解析逻辑梳理通顺,避免后续VPN配置被底层的默认规则干扰。这一步完成后你可以先在本地内网设备上测试普通域名的解析状态,确认没有异常之后再开始部署VPN相关服务,能排除大量底层配置带来的后续干扰。

VPN服务端场景的DNS配置逐项检查

如果你部署的是OpenWrt作为VPN服务端,让外部设备通过VPN接入家里或者办公室的内网,首先要检查VPN服务端的配置页面里的DNS推送选项,很多用户会忘记勾选“向客户端推送DNS服务器”的开关,导致接入的VPN客户端默认沿用自己本地的原有DNS配置,自然没法通过VPN线路解析内网域名。

你还要检查推送的DNS地址的合法性,如果你希望接入的VPN客户端直接使用OpenWrt本机的DNSmasq做解析,推送的地址要填OpenWrt虚拟网卡对应的内网IP,不要直接填公共DNS的地址,否则客户端的DNS请求不会走VPN隧道转发,很容易出现解析泄漏的问题。部分VPN协议还需要额外勾选“允许客户端访问内网”的配套选项,才能让推送的DNS规则正常下发到接入设备。

完成配置之后你可以找一台外部设备接入这个OpenWrt搭建的VPN,在设备上打开命令行工具执行nslookup测试内网域名的解析结果,如果返回的IP是内网对应的服务地址,说明DNS推送逻辑已经正常生效,如果返回的是公网IP,说明DNS请求没有走VPN隧道,需要回头检查服务端的推送规则是否正确保存。

VPN客户端场景的DNS配置逐项检查

如果你是把OpenWrt作为VPN客户端,让整个家里的所有设备的流量都走VPN隧道,首先要检查VPN客户端配置页面里的“重定向DNS流量”选项有没有开启,部分VPN协议默认不会自动接管系统的DNS解析逻辑,你需要手动开启对应的规则,让所有内网设备发来的DNS请求都被转发到VPN隧道分配的DNS地址。

接下来要检查OpenWrt的DNS转发规则,确认内网设备的DNS请求没有被强制重定向到WAN口的原有DNS,很多用户之前配置过DNS劫持类的规则,这类规则优先级高于VPN客户端的DNS配置,会直接绕过VPN隧道把DNS请求发往运营商服务器,造成解析结果不匹配的问题。你可以暂时禁用所有第三方插件的DNS相关规则,再重新测试VPN场景下的解析状态,确认是否是旧规则带来的冲突。

你可以在OpenWrt的命令行里执行nslookup查询任意公网域名,看返回的解析结果对应的归属地是否和你VPN节点的位置匹配,如果解析结果归属地和你实际的物理位置一致,说明DNS请求没有走VPN隧道,需要回头排查重定向规则是否生效。部分旧版本的OpenWrt系统需要手动添加iptables规则,才能把所有53端口的DNS请求转发到VPN虚拟接口的DNS地址。

常见DNS异常问题排查

最常见的问题是DNS泄漏,你可以用公开的DNS泄漏检测工具做校验,如果检测结果里同时出现VPN分配的DNS地址和本地运营商的DNS地址,说明部分设备的DNS请求没有被VPN规则覆盖,你需要检查OpenWrt的防火墙配置,确认VPN虚拟接口的转发规则优先级高于WAN口的普通转发规则,避免部分IPv6的DNS请求绕过IPv4的VPN规则直接走原有线路。

还有一类常见问题是部分域名解析失败,这种情况大多是你配置的DNS服务器本身没有对应域名的解析权限,比如你推送的是内网专用DNS,自然没法解析部分公网域名,你可以调整DNSmasq的配置,LVCHA加速器官网添加上游DNS的 fallback 规则,让内网域名走内网DNS解析,公网域名走VPN分配的公共DNS解析,就能解决这类冲突问题。

排查过程中不要直接套用网上的通用配置,不同的OpenWrt版本、不同的VPN协议对应的DNS配置项位置和规则优先级都有差异,你可以根据自己的实际部署场景逐步校验每一条规则的生效状态,LVCHA就能定位绝大多数DNS相关的故障。

网络加速编辑组 - LVCHA
网络加速编辑组
内容编辑

从延迟、抖动和丢包入手,分析不同网络环境下的连接体验。

查看更多文章
配置入门

从一个连接问题开始

遇到宽带拨号重连后的VPN恢复相关问题,可从“等待宽带恢复后建立新请求,再查看客户端重连日志”开始阅读。旧请求报错并不证明新的网络路径仍然异常,需要结合具体环境判断。