如何获取 Amazon EC2 实例的辅助私有 IP 地址

如何获取 Amazon EC2 实例的辅助私有 IP 地址

我正在自动分配一个辅助私有 IPv4 地址在启动实例期间。要配置 Ubuntu 以识别此辅助 IP,我需要运行

ip addr add 10.0.1.15/24 dev eth0

为了访问主要私有 IP 地址,我找到了这个命令(在AWS 文档以及费加罗问题):

curl http://169.254.169.254/latest/meta-data/local-ipv4

但是如何才能让辅助 IP 地址在启动时自动运行 ip 命令呢?对于 Amazon Linux 系统,有 ec2-net-utils 包可以自动处理这个问题。

答案1

您可以使用2个命令获取辅助地址。

获取网络接口的 mac 地址

MAC=`curl http://169.254.169.254/latest/meta-data/mac` 

获取此 mac 地址的所有 IP 地址

curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC}/local-ipv4s

答案2

因为安特罗斯特答案(他的 curl 请求返回所有 IP 地址)我能够编写以下 bash 脚本,它返回次要的仅限私有 IP,并配置 Ubuntu 来识别它:

#!/bin/bash
MAC=`curl -s http://169.254.169.254/latest/meta-data/mac`
ADDRESSES=`curl -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC}/local-ipv4s`
arr=($ADDRESSES)
if [ ${#arr[@]} -ge 2 ];
then
  ip addr add ${arr[1]}/24 dev eth0
fi

相关内容