如何正确设置多个IP地址指向EC2中的一个实例?

我目前有一个ec2实例,我想有2个公共IP指向。 我分配了2个EIP,2个EIP连接的networking接口,这两个接口都连接到运行ubuntu 14.04.2 LTS的单个EC2实例。 第二个EIP和networking接口最近被添加了,确实有一个eth1popup,虽然我现在不得不手动运行dhclient ,但这不是问题。 问题是没有数据包通过。 我已经三重检查了我的安全组,所有这些组都允许从任何IP地址的端口80。 但是,向iptables(如iptables -A INPUT -i eth1添加一个字节计数器规则,显示正好有0个数据包通过第二个接口到达我的机器。

我已经find并阅读这个,但它没有帮助。

我错过了什么? 有忘记点击的button吗?

我有正确的工作ec2实例与2个私人IP地址,2个EIP,连接到他们,但我用一个子接口为第二个IP,而不是另一个networking接口

/ etc / network / interfaces(debian wheezy)的内容

 auto lo iface lo inet loopback auto eth0 eth0:0 iface eth0 inet dhcp post-up ifconfig eth0:0 172.31.xx.yy netmask 255.255.240.0 up 

我不记得为什么我手动分配一个IP地址到eth0:0的原因,但是这个设置工作。 也用testing

 curl --interface PRIVATE_IP ifconfig.me 

显示,来自eth0和eth0:0的输出stream量实际上是从正确的EIP启动的。

一年多以后,我终于明白了! 感谢这篇文章 。 综上所述:

如果还没有,请在新界面上运行dhclient:

 # dhclient eth1 

然后,找出你的新私人IP地址是什么。 您可以查看EC2控制台,也可以运行

 ip addr 

您还需要了解网关IP。 在大多数情况下,它是your.ip.0.1 ,但只是为了确保运行:

 ip route 

你应该看到像这样的东西:

 default via 12.34.0.1 dev eth0 

在这种情况下, 12.34.0.1是网关。 为了演示,我将假设私有IP是12.34.56.78 。 现在运行(以root身份):

 ip rule add from 12.34.56.78 table 1000 ip route add default via 12.34.0.1 dev eth1 table 1000 ip route flush cache 

要testing您的configuration:

 curl --interface 12.34.56.78 ifconfig.me 

然后,为了使您的更改永久化,请添加到/etc/network/interfaces这些命令和它们的对手:

 auto eth1 iface eth1 inet dhcp up ip rule add from 12.34.56.78 table 1000 up ip route add default via 12.34.0.1 dev eth1 table 1000 down ip rule del from 12.34.56.78 table 1000 down ip route del default via 12.34.0.1 dev eth1 table 1000 

注意:在更改持久networking设置之前,请确保您拥有实例的快照,以防发生中断并且无法访问您的实例。