我有一个运行 CoreOS 1068.9.0 的 EC2 实例。
该服务器正在运行一个非常简单的 Hello World HTTP 服务器。
> curl http://52.43.128.34/
Hello, world!
我有一个分配给同一子网上的网络接口的弹性 IP。它具有公有 IP 地址 54.190.35.220 和私有 IP 地址 10.8.0.104。实例的安全组和网络接口上的安全组均允许来自 的 TCP 端口 80 上的流量0.0.0.0/0
。
我将网络接口添加到实例。CoreOS 日志似乎表明新 IP 已成功添加,并在 ifconfig 中显示为 eth1。
但子网中的其他计算机无法访问 HTTP 服务器,外部也无法访问。VPC 内部和外部的连接均失败——其他计算机无法使用 访问它,curl http://10.8.0.104/
外部计算机也无法使用 访问它curl http://54.190.35.220/
。
是什么赋予了?
编辑:更多信息
- 服务器应该监听所有接口。此外,我在 SSH 服务器上也看到了同样的行为,因此我认为这不是 HTTP 服务器本身的问题。
- 网络 ACL 完全开放。
- 安全组全部对来自 0.0.0.0/0 的端口 80 和端口 22 流量开放。
子网的路由表:
Route Table: rtb-b6449fd1 ---------------------------- Destination | Target ---------------------------- 10.8.0.0/16 | local 0.0.0.0/0 | igw-91eb56f5 172.31.0.0/16 | pcx-f6f64e9f
答案1
我最终通过为同一接口分配多个 IP 地址而不是为同一台机器添加多个接口来实现相同的目的。结果发现,第一种方法对内核路由来说很麻烦。这篇博文让我明白了。