将多个弹性IP分配给EC2实例


Answers:


9

经典EC2实例只能具有一个与其关联的弹性IP地址。要获取多个IP地址,必须使用VPC并在实例上设置多个网络接口。

注意:在2012年至2014年之间的某个时间,AWS发生了变化,因此单个ENI可以分配有多个EIP。结果,这个答案和问题不再相关。


使用新的VPC时,我能否保留当前已分配给EC2实例的当前弹性IP?
伊恩·沃伯顿

1
经典弹性IP地址无法分配给VPC实例。
马特·豪瑟

注意:您可能不一定需要多个网络接口。如果现有网络接口中还剩下空间,则可以在其中添加新的专用IP地址,然后将新的Elastic IP地址分配给这些新的专用地址。然后,一旦网络接口已满,则需要添加新接口。
Guillaume Boudreau 2014年

值得注意的是,在编写问题时,AWS EC2仅允许每个ENI一个EIP,而多个EIP需要多个ENI。当前,一个ENI可以支持多个EIP。因此,您在此问题上发现的关于服务器故障的一些建议已过时,此答案也是如此。
肖恩·威尔逊

@MattHouser的上述评论今天不正确。您可以在ec2CLASSIC和VPC之间移动IP地址,它们现在允许这样做
jitbit

3

要获得与一个ec2实例关联的2个弹性ip,您需要为第二个ip提供不同的路由。这涉及设置一个新的ip规则,该规则指定应使用的路由。

例如,有一个实例具有两个网络接口(分别命名为eth0eth1),每个接口都有一个内部ip(172.31.4.255172.48.55.23),这些内部ip 转换为与其关联的弹性ip。

您需要指定eth1(172.48.55.23)的ip来采用其他路由:

 ip rule add from 172.48.55.23 table default

然后,将其默认路由与该规则相关联:

 ip route add default via 172.48.0.1 dev eth1 table default

并刷新缓存:

ip route flush cache

您可以从本文中挖掘“正式”的解释


谢谢!在EC2上运行Plesk并需要第二个IP地址-是吗?哈!我花了几个小时,这三个命令终于解决了我的路由问题。
dtbaker 2014年

如果在一个接口上有2个IP地址怎么办?
Petah
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.