节点与线路

OpenVPNDNS推送异常引发连接失败详细排查教程

很多自行部署OpenVPN的用户都遇到过这类问题:客户端显示VPN连接成功,却完全打不开任何网页,排查后发现公网IP连通性正常,唯独域名解析全部报错,这类故障绝大多数都和DNS推送异常直接相关,本文就从故障边界确认、服务端配置校验、客户端适配到最终验证的全流程,梳理完整的OpenVPN DNS推送连接失败排查方案。

前置确认:先区分连接失败和DNS推送异常的边界

排查的第一步首先要排除非DNS类的连接故障,先打开OpenVPN客户端的运行日志,查看有没有TLS握手完成、路由表推送成功的明确提示,如果日志里出现用户名密码校验失败、服务端端口无响应、证书校验不通过这类报错,说明VPN本身还没完成连接,根本不属于DNS推送的问题,不要直接去修改服务端配置浪费时间。

确认VPN连接完全建立之后,猫头鹰VPN打开本地命令行工具直接ping公网公共DNS的IP地址,如果能收到正常的响应包,但是ping普通公网域名时返回找不到主机的报错,就可以100%把故障范围锁定在DNS解析环节,正式进入OpenVPN DNS推送的排查流程。

运维排查OpenVPNDNS推送连接故障

运维人员实操排查OpenVPN DNS推送异常导致的VPN连接故障

服务端配置侧的DNS推送规则校验

打开OpenVPN服务端的server.conf主配置文件,先搜索有没有push "dhcp-option DNS x.x.x.x"这类指令,很多新手直接照搬网上的精简配置模板,漏写了DNS推送的专属指令,OpenVPN默认不会主动给客户端下发任何DNS地址,客户端会继续使用本地原有运营商的DNS,跨网络环境下很容易出现解析冲突,最终表现为连接后无法访问网页。

接下来还要检查配置文件里有没有push "redirect-gateway def1 bypass-dhcp"这行指令,这行配置的作用是把客户端的所有公网流量都引导走OpenVPN隧道,如果漏写这行,就算服务端正确推送了DNS地址,客户端的DNS请求也不会发往隧道内的DNS服务器,还是走本地原有网络链路,一旦本地运营商DNS和VPN内网环境不兼容,就会直接出现解析失败的问题。

这里有个非常常见的配置误区,不少用户图省事把推送的DNS地址设置为127.0.0.1,要是OpenVPN服务端本地没有部署运行的DNS解析服务,这个配置下发到客户端之后完全无效,直接填写经过验证的公共可信DNS,猫头鹰或者你内网部署的专属DNS地址即可,不要用回环地址凑数。

不同客户端系统的DNS推送生效规则排查

Windows系统下运行的OpenVPN客户端,默认需要系统管理员权限才能修改虚拟网卡的DNS配置,很多用户直接双击启动客户端时没有选择“以管理员身份运行”,就算服务端的所有配置都完全正确,推送的DNS规则也没有权限写入系统的虚拟网卡属性,这时候你去查看TAP/TUN虚拟网卡的IPv4配置,就会发现DNS地址栏还是空白的,手动填入对应DNS地址之后就能临时验证效果。

Linux和macOS系统下的OpenVPN客户端,默认依赖专属的up脚本去修改系统的DNS配置文件,很多精简版的系统镜像,或者用户自己手动编译的OpenVPN安装包,都没有自带openvpn-update-resolv-conf这个适配脚本,就算服务端正常推送了DNS规则,系统的resolv.conf配置文件也不会同步更新,你可以手动检查脚本的执行权限,确认没有被系统安全规则拦截。

移动端的官方OpenVPN Connect客户端,部分旧版本移动操作系统会限制VPN应用修改全局DNS的权限,你不需要反复调整服务端配置,可以直接进入客户端的高级设置页面,找到DNS Override选项,手动填入和服务端推送规则完全一致的DNS地址,绕过系统的默认权限限制完成测试。

推送规则生效后的验证与异常兜底

所有配置调整完成重新连接OpenVPN之后,先在本地客户端执行对应系统的网络配置查询命令,Windows下运行ipconfig /all,Linux下运行cat /etc/resolv.conf,查看虚拟网卡对应的DNS地址,是不是你在服务端配置里填写的推送地址,如果显示的地址和预期不符,说明之前的配置调整没有真正生效,回去重新检查对应环节的权限限制问题即可。

如果确认DNS地址已经被正确推送到客户端,但是域名解析还是报错,你可以手动用nslookup工具测试推送过来的DNS地址,看能不能正常返回公网域名的解析结果,如果请求全部超时,说明你选择的DNS服务器本身在VPN隧道的网络环境里不可达,更换一个在当前隧道环境下可正常访问的DNS地址重新推送即可。

DNS推送异常是OpenVPN日常使用中非常高频的故障场景,排查的时候不要一上来就盲目修改服务端的端口、加密套件或者认证规则,按照从边界校验到配置检查再到客户端适配的顺序逐步推进,绝大多数场景下都可以快速定位根因,猫头鹰不需要盲目升级或者替换OpenVPN服务端版本。

远程办公编辑组
围绕办公网络、视频会议和远程访问,说明连接准备与常见排查步骤。
查看更多文章
连接指南

找到适合当前设备的指南

遇到支持人员索取完整密钥相关问题,可从“通过可信支持渠道提供脱敏日志和错误代码”开始阅读。无法判断身份的请求不应直接取得完整配置,需要结合具体环境判断。