AWS EC2 Ubuntu实例无法通过命令行查看关联弹性IP(EIP)的问题咨询
AWS EC2 Ubuntu实例无法通过命令行查看关联弹性IP(EIP)的问题咨询
嗨,这个问题其实挺常见的,我来给你理清楚原因并提供几种实用的解决方法~
首先得明白为什么ip address show看不到EIP:弹性IP(EIP)并不是直接配置在你的Ubuntu实例网卡上的,它是AWS在VPC网关或EC2经典网络层面做的网络地址转换(NAT)映射。实例内部的操作系统只能看到网卡上的私有IP(VPC环境)或者AWS分配的临时公网IP(经典网络),EIP的绑定关系属于AWS云服务层面的配置,所以直接用系统的网络命令是看不到的。
下面是几种能在命令行查看EIP的方法:
方法一:使用AWS CLI直接查询(最准确)
这种方法能直接获取到和当前实例绑定的EIP,前提是你的实例有对应的IAM权限(允许ec2:DescribeAddresses操作)。- 如果实例还没装AWS CLI,先安装:
sudo apt update && sudo apt install awscli -y - 直接运行这条组合命令,无需手动输入实例ID:
这条命令会自动获取当前实例ID,然后查询并输出绑定的EIP地址。aws ec2 describe-addresses --filters "Name=instance-id,Values=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)" --query 'Addresses[*].PublicIp' --output text
- 如果实例还没装AWS CLI,先安装:
方法二:通过实例元数据查看对外公网IP
当你给实例绑定EIP后,实例的公网元数据就会指向这个EIP,你可以通过以下命令直接获取:curl -s http://169.254.169.254/latest/meta-data/public-ipv4返回的地址就是当前实例对外暴露的公网IP,也就是你绑定的EIP,你可以和AWS控制台里的EIP对比确认。
方法三:通过外部服务验证对外IP
你也可以借助外部服务来查看实例的对外IP(也就是EIP),比如:# 方法1 curl -s ifconfig.me # 方法2 dig +short myip.opendns.com @resolver1.opendns.com这些命令会从外部视角返回实例的公网IP,也就是你的EIP。
备注:内容来源于stack exchange,提问作者Alakananda S
相关产品推荐
相关产品推荐

