AWS中如何获取RDS实例的IP地址

How to get the IP address of RDS instance in AWS

关于如何在 AWS 中获取 RDS 实例的 IP 地址的问题,我在互联网上到处得到相同的答案,但我不知道 dig 是什么以及如何使用它.

How to allocate IP address in VPC to RDS instance?

请帮我在AWS中找到我的RDS实例的IP地址?

您的AWS实例的IP地址将是RDS实例的IP地址。

如果您的 AWS 实例的主机名是 blah.blah.amazonaws.com 那么您可以使用 dig 命令(在 Linux 机器上)或 ping 命令在两个 Windows 和 Linux 找出主机的 IP 地址:

ping blah.blah.amazonaws.com

这会给你返回主机的 IP 地址(类似这样的东西):

c:\ping www.google.com

Pinging www.google.com [216.58.210.100] with 32 bytes of data:
Reply from 216.58.210.100: bytes=32 time=14ms TTL=58
Reply from 216.58.210.100: bytes=32 time=15ms TTL=58
Reply from 216.58.210.100: bytes=32 time=14ms TTL=58

所以www.google.com的IP地址是216.58.210.100。 dig 会给你更多的输出,但 IP 地址也在那里。但有时您的 AWS 实例的实际 IP 地址实际上在主机名本身中。例如:

ip-12-34-56-78.us-west-2.compute.internal

IP 地址 12.34.56.78 已在名称中(取决于您的实例)。您可以在 AWS Console/Dashboard.

中找到主机名

它不会在 RDS 实例的配置页面上显示 IP 地址,因为 RDS IP 本质上是动态的。如果需要,您可以为它们 dig,但最好使用实例的 DNS 端点作为服务器。这保持静态,可以在 AWS 中 RDS 实例的详细信息选项卡上找到。

使用这个:

SELECT inet_server_addr();

很好,但只适用于 Postgresql

对于Microsoft SQL Server,请使用:

SELECT 
  local_net_address = ConnectionProperty('local_net_address')
, local_tcp_port = ConnectionProperty('local_tcp_port') 

您也可以使用 Nslookup <<RDS SQL Server>> 命令来计算出此 AWS blog post 中建议的 IP 地址。

dig 是 command-line 实用程序,用于查找域名指向的 IP 地址。

您可以简单地安装它:

apt-get update && apt-get install dnsutils -y

然后找到RDS实例的IP(端点xxx.yyy.us-east-1.rds.amazonaws.com),运行以下命令:

dig xxx.yyy.us-east-1.rds.amazonaws.com

dig 的输出中,您将能够在答案部分找到 IP 地址:

;; ANSWER SECTION:
xxx.yyy.us-east-1.rds.amazonaws.com. 5 IN A 172.30.1.253

如您所见,RDS 实例端点已解析为 A 类型的 DNS 记录 Private IP address

在 AWS 管理控制台上 - 位置:AWS 管理控制台 -> EC2 -> 网络与安全,网络接口

  • 您可以在描述选项卡上看到所有 IP 地址及其资源的详细信息。

查找 RDS IP 地址的简单方法:从本地计算机打开命令提示符并 ping 您的 RDS 端点。您将看到来自目标主机 IP 地址的回复。那是你的 RDS ip 地址!不管它是否 public 可访问。