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

无法连接私有VPC内的私有RDS实例,已做多项配置仍存疑问

排查无法通过OpenVPN访问VPC内私有RDS的问题

看起来你已经搭好了基础环境,我帮你梳理几个容易被忽略的细节,大概率能找到问题所在:

  • 确认VPN客户端路由是否实际生效
    你手动添加了路由,但得验证这条路由真的在引导10.0.0.0/16的流量走VPN网关:

    • Linux/macOS:执行 traceroute 10.0.x.x(替换成你的RDS内网IP),看第一跳是不是10.8.0.1;再用 ip route show 确认这条路由的优先级没有被更具体的本地路由覆盖。
    • Windows:执行 tracert 10.0.x.x,第一跳应该是10.8.0.1;用 route print 检查路由表中10.0.0.0/16的条目是否存在,且跃点数(优先级)合理。
  • 检查NAT实例的IP转发是否开启
    Linux系统默认IP转发是关闭的,就算路由配置正确,NAT实例也没法把VPN流量转发到VPC内网:

    • 临时开启:执行 echo 1 > /proc/sys/net/ipv4/ip_forward
    • 永久生效:编辑 /etc/sysctl.conf,将 net.ipv4.ip_forward 设置为1,然后执行 sysctl -p 加载配置。
  • 验证iptables的转发/SNAT规则
    安全组放行后,iptables可能会拦截流量,而且必须确保VPN客户端的流量源被转换成NAT实例的内网IP(否则RDS安全组会拒绝非NAT安全组的流量):

    • 检查SNAT规则:执行 iptables -t nat -L POSTROUTING,确认存在类似规则:-A POSTROUTING -s 10.8.0.0/24 -d 10.0.0.0/16 -j SNAT --to-source <NAT实例内网IP>
    • 检查转发规则:执行 iptables -L FORWARD,确认允许从10.8.0.0/24到10.0.0.0/16的流量通过。
  • 排查RDS域名的DNS解析问题
    如果你用RDS的域名访问,必须确保VPN连接后能解析到RDS的内网IP:

    • 在VPN客户端执行 ping <RDS域名>,看返回的IP是不是10.0.x.x网段的。如果是公网IP,说明DNS配置错误,需要在OpenVPN服务器配置中添加 push "dhcp-option DNS <VPC的DNS服务器IP>"(VPC的DNS一般是网段的第二个IP,比如10.0.0.2),让客户端使用VPC内网DNS解析RDS域名。
  • 确认安全组的出站规则
    你已经配置了NAT实例安全组的入站和RDS安全组的入站,但别漏了NAT实例安全组的出站规则:需要允许到10.0.0.0/16网段的3306端口流量,否则NAT实例没法把请求转发到RDS。

  • 优先使用OpenVPN自动推送路由
    手动添加路由容易出错,建议在OpenVPN服务器配置中添加 push "route 10.0.0.0 255.255.0.0",这样客户端连接后会自动生成正确的路由条目,避免手动配置的疏漏。

内容的提问来源于stack exchange,提问作者TheOni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:39:45