我在 Ubuntu 实例上运行 OpenVPN,我想连接到位于私有网络上的 MySQL 数据库。它是 AWS/EC2 和 RDS。数据库有一个安全组,允许来自它所在的私有网络的所有连接(它应该是这样的)。现在,在 OpenVPN 启动后,有两个私有网络,我无法连接到数据库,因为它认为我是从其私有网络外部连接的。
有人能帮我吗 - 如何设置,以便数据库连接在 OpenVPN 运行时在其专用网络上运行(同时通过其隧道路由所有其余流量)?谢谢!
答案1
最简单的方法是将 RDS 和 VPN GW 放入同一个 VPC 中,并允许从VPC 路由。
例如,默认 VPC 通常具有 CIDR(=IP 地址范围)172.31.0.0/16,子网为 172.31.0.0/20、172.31.32.0/20 和 172.31.64.0/20。即使 RDS 和 OpenVPN GW 位于不同的子网中,您仍然可以允许从整个 172.31.0.0/16 访问 RDS,而不仅仅是从其子网(例如 172.31.32.0/20)访问。
希望有帮助:)
答案2
碰巧的是,我前几天刚刚自己设置了它。如果你正确设置了 VPC,它应该“正常工作”,但事实并非如此,我建议检查以下内容:
- 安全组 - 数据库的安全组是否允许从 VPN 服务器访问?
- 路由 - 您能否从 VPC 中的一个私有网络到达另一个私有网络?(检查 VPC 管理控制台中的路由表。)
- VPC - 我假设两个网络都在同一个 VPC 中。如果不是,您需要放弃一个 VPC 并在与数据库相同的 VPC 中设置 VPN 服务器,或者设置 VPC Peering 连接和相关路由。
- 您是否可以直接从 VPN 服务器访问数据库,而不是从桌面访问,而是从 VPN 服务器本身访问?如果连接后您可以从那里访问,但无法从桌面访问,则说明您的 VPN 配置存在问题。
另外,请仔细检查您的家庭 WiFi 网络和您尝试通过 VPN 接入的 VPC 之间是否存在子网重叠。我以前也遇到过这种情况。
如果你确实发现 VPN 配置有问题,我曾尝试过这个 Docker 镜像大约一周前。