远程办公

OpenVPNDNS推送配置生效日常实用检查方法操作指南

很多自行部署OpenVPN的用户都会遇到这类场景:明明在服务端配置了DNS推送规则,连接VPN后本地域名解析还是走了运营商的默认DNS,不仅可能出现内网域名无法访问的问题,还可能导致部分DNS请求脱离VPN隧道,出现预期外的网络泄露。本文梳理的OpenVPN DNS推送:日常检查方法全部基于原生OpenVPN功能实现,不需要额外付费工具,按顺序排查就能快速定位绝大多数配置异常问题。

运维做OpenVPNDNS推送日常检查 | ProtonVPN

运维人员正在本地校验OpenVPN服务端的DNS推送配置规则,排查配置疏漏问题。

服务端推送配置基础校验

很多配置不生效的根源是服务端本身的规则写法存在疏漏,初检阶段不需要启动VPN连接,直接打开OpenVPN服务端的主配置文件,检索所有包含dhcp-option DNS的语句,确认语句前后的双引号没有缺失,DNS地址没有输入错误的私有地址或者不存在的服务地址。

还要额外确认推送语句的作用范围,如果把DNS推送规则写在了特定客户端的CCD单独配置段里,没有给对应客户端开启ccd-exclusive权限,这条规则就不会对该客户端生效。同时要排查配置里有没有其他冲突的dhcp相关语句,比如部分旧教程里错误配置了指向本地未运行DNS服务的回环地址,这类无效配置哪怕推送成功也无法正常提供解析服务。

客户端连接态推送报文核验

完成服务端初检后启动OpenVPN客户端发起连接,连接成功后第一时间查看客户端的运行日志,不同平台的日志入口不同,Windows端可以右键任务栏的OpenVPN托盘图标选择查看日志,Linux和macOS端直接查看终端的实时输出日志,检索日志中包含PUSH_REPLY的段落,正常情况下服务端推送的所有DNS参数都会完整打印在这部分内容里。

如果日志里完全没有出现你配置的推送DNS地址,说明服务端根本没有把对应参数下发到客户端,需要回到服务端再次核对配置的作用范围和语法规则。如果日志里明确显示已经收到了服务端下发的DNS参数,那问题就出在客户端的系统适配层面,和OpenVPN服务端配置没有关联。

这里要注意一个常见误区,很多第三方定制的OpenVPN客户端自带了强制自定义DNS的选项,这类选项的优先级远高于服务端推送的参数,Proton加速器哪怕日志里已经显示收到了推送规则,客户端也会主动覆盖成预设的DNS地址,排查时要先把第三方客户端的自定义DNS开关完全关闭,再重新发起连接测试。

系统层面DNS路由实际校验

确认客户端已经收到推送参数后,免费好用梯子接下来要核验操作系统层面有没有把DNS规则绑定到OpenVPN的虚拟网卡上,不同系统的校验方式存在差异,Windows端要打开管理员权限的命令提示符,执行ipconfig /all命令,找到OpenVPN生成的TAP/TUN虚拟网卡条目,单独查看该网卡对应的DNS服务器列表,不要误看物理网卡的DNS配置,很多用户混淆不同网卡的配置条目,浪费大量排查时间。

Linux发行版现在大多默认用systemd-resolved或者NetworkManager管理DNS,不能直接查看/etc/resolv.conf的内容,这个文件很多时候只是系统服务生成的软链接,直接执行resolvectl output命令,找到对应OpenVPN虚拟接口的配置段,这里显示的DNS地址才是当前虚拟网卡实际生效的解析服务器。如果这里的地址不是你推送的DNS,说明OpenVPN客户端没有获得修改系统网络配置的权限,需要把客户端进程加入对应的系统权限组。

macOS端可以直接打开系统网络偏好设置,在左侧的网卡列表里找到OpenVPN对应的虚拟接口,进入详情页的DNS标签,查看列表里的服务器地址,如果列表为空,大概率是OpenVPN客户端没有获得系统的网络配置授权,在隐私与安全性设置里给客户端开启完全磁盘访问和网络修改权限就能解决。

实际DNS请求路径溯源验证

前面所有配置校验都通过的情况下,最后还要做实际请求的溯源测试,不能只依赖系统配置显示的结果,Windows端可以用nslookup工具随便解析一个公网域名,看返回结果里的默认解析服务器地址是不是你推送的DNS地址,Linux和macOS端可以用dig命令查看解析请求的来源服务器。

如果最终解析请求的来源不是你推送的DNS,大概率是系统里存在优先级更高的DNS规则,比如本地安装的其他代理软件、系统默认开启的DNS over HTTPS强制功能,这类规则会绕过虚拟网卡的DNS配置,直接走物理网卡发起加密解析请求,这类情况不属于OpenVPN DNS推送本身的故障,只需要单独调整本地系统的相关策略就能解决。日常维护时按这套OpenVPN DNS推送:日常检查方法逐段排查,就能快速定位绝大多数异常,避免出现DNS请求脱离VPN隧道的问题。

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

从一个连接问题开始

遇到固定IP配置与VPN冲突相关问题,可从“对照网络规划修正基础设置后再连接”开始阅读。不要用猜测地址替代管理员分配的配置,需要结合具体环境判断。