我在同一 VPC(自定义)和同一可用区内有 3 个 EC2 实例(Amazon-Linux AMI)。全部使用相同的安全组和相同的 ACL。
“A”和“B”位于公共子网下,其路由表包含 IGW 条目,而“C”位于私有子网下,其路由表包含 NAT 网关条目。 “A”有公共IP,但“B”和“C”没有任何公共IP。 “A”用于通过 SSH 连接到“B”和“C”。 “sudo yum update”命令在“A”和“C”中有效,但在 B 中出现超时错误。
这是预期的行为还是我做错了什么。
安全组:
Type Protocol Port Source/Destination
---------------------------------------------------------
Inbound rule: All Traffic All All Security Group itself
SSH TCP 22 Anywhere
Outbound rule: All Traffic All All Anywhere
ACL(入站和出站)
Type Protocol Port Source/Destination Allow/Deny
-------------------------------------------------------------
All Traffic All All Anywhere Allow
实例“B”位于公共子网中,但没有公共 IP 地址。因此,它无法直接与互联网通信以进行更新,除非它使用实例“A”等中介作为 NAT 实例(您的设置中未提及)。要消除该错误,如果需要直接访问互联网,您需要为“B”分配一个公共 IP。
如果实例“B”缺少公共 IP,即使路由表正确,它也将无法使用 IGW。
或者您可以将实例 A 配置为代理或 NAT 实例,以允许 B 无需公网 IP 即可访问互联网。
并确保“A”已启用 IP 转发并正确设置路由。
(即使是公共子网中的实例,如果它没有公共 IP,您也需要像私有子网中的实例一样对待它)