She*_*acu 5 networking amazon-ec2
我目前有一个 ec2 实例,我希望有 2 个公共 IP 指向它。我分配了 2 个 EIP,EIP 附加到的 2 个网络接口,它们都附加到运行 ubuntu 14.04.2 LTS 的单个 EC2 实例。最近添加了第二个EIP和网络接口,确实eth1弹出了一个,虽然我目前必须手动运行dhclient,但这不是问题。问题是没有数据包通过。我已经三重检查了我的安全组,所有这些都允许来自任何 IP 地址的端口 80。但是,向 iptables 添加字节计数器规则,例如iptables -A INPUT -i eth1显示正好 0 个数据包通过第二个接口到达我的机器。
我找到并阅读了这个,但它没有帮助。
我错过了什么?有没有我忘记点击的按钮?
一年多后,我终于想通了!感谢这篇文章。总之:
如果还没有,请在新界面上运行 dhclient:
# dhclient eth1
Run Code Online (Sandbox Code Playgroud)
然后,找出您的新私有 IP 地址是什么。您可以查看 EC2 控制台,或者运行
ip addr
Run Code Online (Sandbox Code Playgroud)
您还需要知道网关IP。在大多数情况下,它是your.ip.0.1,但只是为了确保运行:
ip route
Run Code Online (Sandbox Code Playgroud)
你应该看到类似的内容:
default via 12.34.0.1 dev eth0
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
要测试您的配置:
curl --interface 12.34.56.78 ifconfig.me
Run Code Online (Sandbox Code Playgroud)
然后,为了使您的更改永久生效,请添加/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
Run Code Online (Sandbox Code Playgroud)
注意:在更改持久网络设置之前,请确保您拥有实例的快照,以防出现故障并且您无法访问您的实例。