【发布时间】:2017-04-01 18:15:27
【问题描述】:
我在使用私有 IP 的 VPC 中有一个 MongoDB AWS 实例。 MongoDB 这种方式更安全,因为没有对数据库的公共 IP 引用。我正在使用 OpenVPN 运行 VPN 服务器。如果我必须远程访问 MongoDB,我只需使用 IP 地址为 10.0.0.95 的 OpenVPN Connect Client。在我的代码中,我使用 AWS 私有 DNS 名称 ip-10-0-0-95.ec2.internal 引用 MongoDB url。当代码在 VPC 内的 AWS 实例上运行时没有问题。但是,当我在本地机器上运行相同的代码时,它找不到 DNS 地址。就像我说的,我正在运行一个正确连接到 VPN 的 VPN 客户端。如果我将我的代码 url 引用更改为 10.0.0.95,那么一切都可以在本地正常运行并在 VPC 内的 AWS 实例上运行。显然,这是一个正确的解决方案,我可以继续前进。但是,有没有办法在本地运行代码?显然,我的本地机器没有解析 DNS 地址。有什么方法可以用我的 VPN 客户端本地解析 VPC DNS 地址吗?
【问题讨论】:
-
如果您的 VPC 的 CIDR 超网是 10.x.x.x/xx,那么您会发现您的 VPC 内部在 10.0.0.2 有一个 DNS 服务器。您也许可以通过 VPN 访问它,因此请从您的工作站尝试
$ dig @10.0.0.2 ip-10-0-0-95.ec2.internal。如果可行,您可以在 openvpn 配置中将其指定为 DNS 服务器。这将取决于您的 VPN 配置。如果它不起作用,您的 openvpn 服务器的iptables将需要配置为使用其地址 NAT 来自 VPN 的请求到 DNS 服务器,或者您需要在其上安装 DNS 代理。试试上面的方法,让我们知道它是否有效。 -
还有什么和 Dig 等价的吗?正在尝试下载它。想要下载一个 C++ 执行环境,然后重新启动我的机器。试了 3 次,没有运气。真正的痛苦是 3 次 windows 重新启动,然后盯着空间等待 windows 完成。
-
试试
nslookup 10-0-0-95.ec2.internal. 10.0.0.2 -
我试过 nslookup 10-0-0-95.ec2.internal。我得到“*** cdns01.comcast.net 找不到 10-0-0-95.ec2.internal:不存在的域”。还尝试了 10.0.0.2 并得到了同样的错误。很明显我的桌面正在使用互联网连接 dns,在我的例子中是“comcast”,试图解析 dns 地址。
-
尝试将
push "dhcp-option DNS 10.0.0.2"添加到您的服务器openvpn .conf 文件
标签: mongodb amazon-ec2 dns