Pritunl VPN无法解析NLB DNS问题求助
问题排查与解决步骤
1. 确认Pritunl的DNS推送配置
- 登录Pritunl管理控制台,进入对应VPN服务器的Advanced标签,检查
DNS Servers字段是否添加了VPC的DNS服务器地址(通常为VPC网段+2,比如VPC网段是10.0.0.0/16时,DNS地址为10.0.0.2),同时确保Push DNS选项已勾选。 - 客户端连接VPN后,验证DNS配置:
- Linux/macOS:执行
scutil --dns或cat /etc/resolv.conf,确认DNS服务器为VPC的地址 - Windows:执行
ipconfig /all,查看DNS服务器列表是否包含VPC DNS
- Linux/macOS:执行
2. 配置私有域搜索与路由验证
- 若你的Route53是私有托管区,在Pritunl服务器的Advanced设置中,添加
Search Domains为你的私有域名(比如grafana.example.internal),确保客户端知道该域名需走VPC DNS解析。 - 验证路由:执行
traceroute <NLB-DNS地址>,确认流量第一跳为VPN网关,避免流量走公网;若路由异常,检查Pritunl的路由规则是否包含VPC及NLB所在网段。
3. 调整客户端DNS优先级
- 部分系统会优先使用默认DNS而非VPN推送的DNS,需手动调整:
- macOS:系统偏好设置→网络→对应VPN连接→高级→DNS,将VPN推送的DNS拖动到列表最顶部
- Linux:修改
/etc/resolv.conf,确保nameserver为VPC DNS,或用resolvconf工具锁定配置 - Windows:VPN连接属性→IPv4→属性,手动填入VPC DNS地址并保存
4. 验证VPC DNS的可达性与解析能力
- 连接VPN后,ping VPC DNS服务器地址,确认连通性;若不通,检查VPN路由表是否包含VPC DNS所在网段。
- 执行
dig @<VPC-DNS-IP> <NLB-DNS地址>直接测试解析:- 若返回正确NLB IP,说明VPC DNS正常,问题出在客户端DNS配置
- 若仍报NX Domain,检查Route53私有托管区是否关联了当前VPN所在的VPC,或VPN弹性IP是否在托管区的信任范围内
5. 禁用Pritunl的DNS转发功能
- 若Pritunl开启了
DNS Forwarding,进入服务器设置关闭该功能,避免拦截或修改私有域的解析请求,让客户端直接使用VPC DNS解析。
内容的提问来源于stack exchange,提问作者Aryan
相关产品推荐
相关产品推荐

