我在公共子网中创建了 ec2 实例(使用 vpc 向导自动创建),并发现其中一些实例无法访问互联网。我了解到其背后的原因是它们没有公共 IP 地址。
如果实例需要公共 IP 才能连接到互联网,那么将它们放在 VPC / 防火墙后面的目的是什么。
端口不是已经暴露给互联网了吗?我这里漏掉了什么?
答案1
这个问题可能有无数种答案。我认为拥有灵活性是一件好事。我想到的三个用例是:
- 我想要一台热备用机器,可以重新指向 EIP 以实现故障转移。
- 我只想要一个子网,并且不需要服务器与互联网通信。
- 我不希望我的服务器始终有一个公共 IP
第一个答案是现实原因。第二个和第三个答案是假设的,但可能是原因。
如果您希望服务器默认自动分配 IP,您可以更改子网中的设置。
从控制台
- 去私有云平台->子网。
- 选择要更改的子网。
- 点击操作并选择
Modify auto-assign IP settings
参考
https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html
答案2
如果它是子网下的公共实例,则无法使用 NAT,因为它是公共的,它需要 Internet 网关,并且需要公共 IP。如果您在私有子网下创建实例,它将能够使用 NAT 并连接到互联网,而无需实例特定的公共 IP。