AWS Console 分配私有IP并关联弹性IP

分配辅助私有 IPv4 地址

可以在启动实例时或在实例运行后为实例的网络接口分配辅助私有 IPv4 地址。本节包括以下过程。

以下以现有实例运行后的情况为例:

  • 首先登陆AWS Console控制台
  • 选择网络管理IP分配新的IP
AWS EC2 绑定多个弹性IP(辅助IP)配置教程-跑广告网|facebook广告|google广告|twitter广告|Tiktok广告|海外社交广告出海推广
AWS EC2 绑定多个弹性IP(辅助IP)配置教程-跑广告网|facebook广告|google广告|twitter广告|Tiktok广告|海外社交广告出海推广
  • 分配新的弹性IP(不影响业务,请选择对应的辅助IP进行关联EIP,防止出错)
AWS EC2 绑定多个弹性IP(辅助IP)配置教程-跑广告网|facebook广告|google广告|twitter广告|Tiktok广告|海外社交广告出海推广

不同的实例类型可以创建的网络接口以及网络接口能够绑定的最多IP数量是不同的,有关更多信息,请参阅 每个实例类型的每个网络接口的 IP 地址

使机器能够识别你新增的IP*

为实例分配辅助私有 IPv4 地址后,需要在实例上配置操作系统,以识别辅助私有 IP 地址。

如果使用的是 Amazon Linux,ec2-net-utils 包可以在此步骤上为您提供帮助。它能在实例运行期间配置您附加的其他网络接口,在 DHCP 租约续订期间更新辅助 IPv4 地址,并更新相关的路由规则。可以使用 sudo service network restart 命令立即刷新接口列表,然后使用 ip addr li 查看最新列表。如果您需要手动控制网络配置,可以删除 ec2-net-utils 包。有关更多信息,请参阅使用 ec2-net-utils 配置网络接口

简而言之,若是Amazon Linux, ec2-net-utils包默认可以处理掉所有事情,然后直接使用sudo service network restart进行直接识别到。

比较坑爹的是Amazon Linux是收费的,而且还不便宜,所以一般情况下都是使用centos.

以下实例以centos 7为例:

1. sudo ip addr add 172.x.x.x/24 dev eth0

2. 添加开机启动:sudo vim /etc/rc.local,在exit 0 之前加入代码sudo ip addr add 172.x.x.x/24 dev eth0

3. 查看网卡IP列表:ip addr list dev eth0

这里要注意,有些人可能在添加私有IP至网卡时可能会出现错误:

Device "eth0" does not exist.

而且也无法重启网络服务:

[[email protected] ~]# service network restart
network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network)
   Active: failed (Result: exit-code) since三 2014-11-05 15:30:10 CST; 1min 5s ago
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists
11月 05 15:30:10 localhost.localdomain systemd[1]: network.service: control process exited, code=exited 
status=1
11月 05 15:30:10 localhost.localdomain systemd[1]: Failed to start LSB: Bring up/down networking.
11月 05 15:30:10 localhost.localdomain systemd[1]: Unit network.service entered failed state.

查看网卡文件:

[[email protected] ~]$ ll /etc/sysconfig/network-scripts/ total 236
-rw-r–r–. 1 root root 159 Jan 28 12:26 ifcfg-ens5
-rw-r–r– 1 root root 151 Jan 28 18:42 ifcfg-eth0

发现eth0 网卡文件存在,输入ifconfig查看一下网络配置:

[[email protected] ~]$ ifconfig                                          
ens5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 172.31.36.7  netmask 255.255.240.0  broadcast 172.31.47.255

发现原来网卡用的配置是ens5,有可能是创建实例的时候没有选择弹性ip,所以aws默认没有添加网络接口,导致系统没有使用eth0网卡。

修改Centos网卡配置文件70-persistent-net.rules

[[email protected] ~]$ cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="1f:r4:6h:a0:w6:x0", NAME="ens5"
[[email protected] ~]$ sudo vim /etc/udev/rules.d/70-persistent-net.rules

将最后的网卡ens5修改为eth0即可。

最后别忘记重启实例。

添加网卡eth1

1. 添加网卡和OS设置完全一样,只不过需要把代码改成sudo ip addr add 172.xxx.xxx.xxx/24 dev eth1

2. 此外,还需要查看当前网卡情况。通过ifconfig -a命令,显示“UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1”,RUNNING表示当前的网卡是up的状态。当然,你也可以通过ethtool eth0来查看,“Link detected: yes”表示up。

3. 如果当前网卡是down,那么通过以下命令可以把它up起来:

sudo ifconfig eth1 up

up起来之后,你还要修改Kernel route,让部分流量走eth1,例如:

sudo route add -host 10.0.1.160 dev eth1

有用的链接:

https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/MultipleIP.html#StepTwoConfigOS

https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/MultipleIP.html#working-with-multiple-ipv4

https://blog.csdn.net/xiaobei4929/article/details/40515247

https://blog.csdn.net/zkja595470467/article/details/53007915

http://yanghongfei.me/2019/11/19/aws_dual_eip_configure/#%E8%AE%B0%E4%B8%80%E6%AC%A1aws-ec2-%E5%A4%9Aeip%E8%BE%85%E5%8A%A9ip%E9%85%8D%E7%BD%AE%E8%BF%87%E7%A8%8B

http://www.weithenn.org/2017/05/centos-68-journey-part14.html