很多家庭和小型工作室用户在软路由上部署VPN隧道之后,经常遇到域名解析异常、DNS泄漏、部分站点访问失败的问题,多数情况下不是VPN隧道本身的连通性故障,而是软路由VPN DNS配置环节的疏漏没有被及时排查出来,本文从实际运维的操作逻辑出发,梳理无需特殊工具就能完成的配置检查方法,同时整理高频出现的配置误区和故障定位思路,帮用户快速定位软路由VPN DNS配置相关的问题。

排查DNS配置故障前先确认软路由基础网络与VPN隧道连通性正常,避免无效操作。
配置前的基础前提校验
很多新手排查问题时习惯直接修改DNS相关设置,连软路由本身的基础网络连通性都没有提前确认,Astrill VPN这种状态下做的所有软路由VPN DNS配置检查结果都不具备参考性。你需要先确认软路由WAN口的默认解析链路正常,直接登录软路由的终端界面发起公网域名的ping测试,能正常返回对应IP地址就说明基础解析链路没有问题。
接下来要先确认VPN隧道本身的拨号状态完全正常,不要把VPN拨号失败、隧道链路中断的故障当成DNS配置错误排查。你可以先在不涉及任何DNS设置的前提下,直接用软路由终端通过VPN隧道的虚拟接口访问固定公网IP,确认隧道的转发链路是通的,再进入后续的DNS配置检查环节。
软路由VPN DNS配置分层检查步骤
第一步优先检查VPN隧道虚拟接口的DNS优先级设置,绝大多数开源软路由系统的默认逻辑是优先调用WAN口绑定的DNS地址,如果你开启了VPN全局转发模式,却没有把VPN隧道生成的虚拟网卡的DNS优先级调整到高于WAN口的等级,系统默认还是会走运营商的DNS完成解析,Astrill加速器很容易出现DNS泄漏的问题。
第二步要检查软路由本地运行的DNS转发服务配置,不管你用的是系统自带的DNSmasq组件还是其他自定义转发工具,都要确认规则列表里没有强制所有解析请求走WAN口DNS的全局条目。很多用户之前为了实现国内域名直连配置过对应的分流规则,升级VPN配置之后没有调整解析优先级,导致部分域名的解析请求直接绕过VPN隧道发出。
第三步要检查内网客户端的DNS获取规则,Astrill VPN不少用户习惯提前给手机、电脑等终端手动设置固定公共DNS,哪怕软路由已经通过DHCP服务推送了VPN对应的DNS地址,终端还是会优先调用本地手动设置的DNS完成解析,这种情况下你在软路由层面反复修改DNS配置都不会生效,要确认内网设备设置为自动获取DNS地址,没有自定义的静态DNS条目。
验证配置生效的实操方法
不要直接把第三方网站的DNS泄漏检测结果当成唯一判断标准,优先在软路由本地终端里做底层验证,手动指定用VPN隧道的虚拟网卡发起域名解析请求,查看返回的解析服务器地址是不是你提前配置好的VPN对应DNS地址,这种验证方式不会被内网终端的DNS缓存干扰,结果的参考性最高。
接下来你可以找一台没有任何自定义网络配置的全新内网设备,连接软路由的局域网之后先清空本地的DNS缓存,再连续发起多个不同域名的解析请求,确认拿到的DNS响应来源完全符合你预设的规则,排除旧配置缓存带来的误判问题。
常见配置误区与故障排查
最常见的配置误区就是直接把VPN对应的DNS地址填写到软路由WAN口的DNS设置项里,这种操作会导致VPN隧道意外断开之后,整个软路由下的所有内网设备都无法完成正常域名解析,直接出现大面积断网,正确的做法是VPN对应的DNS地址只绑定到VPN隧道的虚拟接口上,不要修改WAN口的默认DNS配置。
还有不少用户遇到部分站点能正常打开、部分站点访问失败的情况,第一反应就是软路由VPN DNS配置出错,实际上有可能是你选用的VPN隧道内的DNS服务本身对部分域名的解析存在适配问题,你可以临时替换其他合规的公共DNS放到VPN隧道的DNS配置项里测试,如果解析恢复正常就说明是之前选用的DNS服务本身的问题,不是软路由配置的问题。
还有一种容易被误判为故障的场景,就是你开启了VPN分流规则之后,指定走直连链路的域名调用本地运营商DNS解析,指定走VPN隧道的域名调用隧道内的DNS解析,这种情况下检测到两个不同来源的DNS响应是完全符合预期的,不属于DNS泄漏,不要盲目修改配置把之前设置好的分流规则直接冲掉。
