You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过OpenVPN Cloud将域名路由至AWS内部负载均衡器?

解决方案:OpenVPN访问私有VPC内部ELB域名失败排查步骤

根据你的场景,内部访问正常但OpenVPN客户端无法通过域名访问,核心问题大概率出在DNS解析链路或OpenVPN的DNS推送配置上,以下是针对性排查步骤:

1. 验证客户端DNS解析结果

在OpenVPN客户端执行以下命令,确认域名解析是否指向内部ELB的私有IP:

nslookup console.example.com
# 或
dig console.example.com
  • 如果返回公共IP或NXDOMAIN,说明客户端未使用私有DNS服务器解析该域名;
  • 如果返回内部ELB的私有IP但仍无法访问,再检查客户端路由(见步骤6)。

2. 检查OpenVPN服务器的DNS推送配置

编辑OpenVPN服务器配置文件(通常路径为/etc/openvpn/server.conf),确保配置了私有VPC的DNS服务器,且未推送公共DNS:

# 推送私有VPC的DNS服务器(VPC网段+2,比如10.10.0.2)
push "dhcp-option DNS 10.10.0.2"
# 禁止推送公共DNS(比如注释掉push "dhcp-option DNS 8.8.8.8"这类配置)

配置完成后重启OpenVPN服务:

sudo systemctl restart openvpn@server

3. 配置Split DNS(域名拆分解析)

确保OpenVPN仅将example.com后缀的域名请求发送到私有DNS,避免公共DNS干扰:
在OpenVPN服务器配置中添加:

# 推送域名后缀,让客户端优先用私有DNS解析
push "dhcp-option DOMAIN-SUFFIX example.com"

4. 检查私有VPC的DNS属性

确认私有VPC的以下两个属性为true,否则AWS私有DNS无法正常解析内部ELB域名:

  • enableDnsSupport:允许VPC内实例使用AWS DNS服务器
  • enableDnsHostnames:允许VPC内实例获取私有DNS主机名

可通过AWS CLI验证:

aws ec2 describe-vpcs --vpc-ids <私有VPC ID> --query 'Vpcs[0].EnableDnsSupport'
aws ec2 describe-vpcs --vpc-ids <私有VPC ID> --query 'Vpcs[0].EnableDnsHostnames'

如果为false,在AWS控制台修改VPC属性即可。

5. 检查Route 53私有托管区(若使用)

如果你的console.example.com是在Route 53私有托管区配置的,需确认托管区同时关联了公有VPC和私有VPC,这样公有VPC内的OpenVPN服务器所在网段能解析该私有域名。

6. 清空客户端DNS缓存

客户端可能缓存了旧的解析记录,执行以下命令清空缓存:

  • Windows:ipconfig /flushdns
  • Linux:sudo systemd-resolve --flush-caches
  • Mac:dscacheutil -flushcache

7. 验证客户端路由表

确保OpenVPN客户端的路由表包含私有VPC的网段,这样解析到ELB私有IP后能正确路由:

  • Windows:route print,查找私有VPC网段对应的路由条目,确认下一跳是OpenVPN虚拟网卡
  • Linux/Mac:ip route,确认私有VPC网段的路由指向tun0(或OpenVPN对应的虚拟接口)

内容的提问来源于stack exchange,提问作者Çağrı BIYIK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 18:52:35