很多用户在跨场景切换网络,比如从公司内网WiFi切到户外移动数据、从家用宽带切到公共热点时,保持VPN连接的设备经常遇到部分站点打不开、内部业务系统域名解析失败的问题,这类故障绝大多数都和VPN双栈DNS解析切换网络后的适配异常相关,不需要直接重装客户端或者重置系统网络,按照分步流程排查就能快速定位问题。
操作前的配置前提确认
首先要确认你当前使用的VPN客户端本身已经开启了双栈DNS转发的支持,不要使用多年未更新的只适配单栈的旧版本客户端,这类旧客户端没有适配切换网络后的栈规则刷新逻辑,很容易出现某一个协议栈的DNS请求直接漏到本地公网的情况。

切换网络后用户正在对VPN双栈DNS连通性做初步排查
切换网络前可以先做好基准记录,比如你之前在公司内网连VPN正常访问内部业务系统,在切换到其他网络之前,可以先分别查询两个仅返回IPv4记录、仅返回IPv6记录的测试域名,把解析返回的地址临时存下来,加速器免费作为后续排查的对照基准。
切换网络后的双栈连通性初检
切换完新网络之后,先不要急着访问需要走VPN的目标站点,先断开已经建立的VPN隧道再重新发起连接,确认VPN隧道本身已经在新网络上正常建立完成,系统状态栏的VPN连接标识没有异常提示。
接下来先针对IPv4协议栈执行解析检查,在Windows系统的命令提示符或者macOS的终端里输入nslookup命令,梯子不加任何参数先看当前默认的DNS服务器地址,确认返回的地址是VPN服务端分配给你的DNS地址,而不是新接入网络的运营商提供的公共DNS地址。
再针对IPv6协议栈执行同样的解析检查,同样用nslookup命令查询支持AAAA记录的域名,看返回的解析服务器归属,这里要注意很多家用宽带、公共热点本身默认没有开通IPv6公网地址,如果新网络本身不支持IPv6,VPN隧道里的IPv6 DNS请求就会直接丢包,这时候要先确认新网络本身的双栈支持情况,不要直接判定VPN配置出错。
双栈DNS规则冲突排查
如果前面两步检查发现有某一个协议栈的DNS服务器还是新接入本地网络的地址,大概率是系统的路由优先级出现了异常,新网络的本地DNS路由规则覆盖了VPN服务端推送的DNS规则,这时候可以手动在系统网络适配器的VPN属性里,取消“自动从网络获取DNS地址”的勾选,手动填入VPN服务端提供的双栈DNS地址。
这里要注意一个常见的使用误区,加速器免费很多用户为了图方便直接在系统全局设置里把所有DNS都改成公共第三方DNS,这会导致VPN隧道内的内部专属域名完全无法解析,VPN双栈DNS解析的分流规则直接失效,相当于VPN的DNS请求隔离作用完全没有生效。
最终场景化验证操作
配置完修正后的DNS规则之后,加速器免费先分别访问仅支持IPv4的内部业务站点、仅支持IPv6的测试站点,以及同时支持双栈的公共站点,确认所有域名都能正常跳转,没有出现解析超时、域名不存在的报错提示。
最后可以打开浏览器的开发者工具,切换到网络面板查看站点加载过程中的所有资源请求,确认所有请求的源地址都是VPN隧道分配的虚拟地址,没有出现绕过VPN隧道、从本地网络直接发起的DNS解析请求的情况。如果验证过程中依然有部分站点解析异常,可以针对性调整VPN客户端的双栈分流策略,不需要直接改动系统全局网络配置。
翻墙 


