我在aws上工作。我创建了一个公共子网,它的网络 ACL 允许所有网络流量,并与路由表中的互联网网关相关联。
然后我创建一个没有弹性ip的ec2实例和一个有弹性ip的ec2实例,安全组也允许所有流量。
我 ssh 到具有弹性 ip 的实例。当我运行 yum update 和 curl www.baidu.com 等时效果很好。但是当我 ssh 到没有弹性 ip 的 ec2 实例时,我无法访问互联网。有谁知道这是为什么?
我在aws上工作。我创建了一个公共子网,它的网络 ACL 允许所有网络流量,并与路由表中的互联网网关相关联。
然后我创建一个没有弹性ip的ec2实例和一个有弹性ip的ec2实例,安全组也允许所有流量。
我 ssh 到具有弹性 ip 的实例。当我运行 yum update 和 curl www.baidu.com 等时效果很好。但是当我 ssh 到没有弹性 ip 的 ec2 实例时,我无法访问互联网。有谁知道这是为什么?
要使用 Internet 网关从公有子网中的 EC2 实例访问 Internet,该实例需要具有公有 IP 地址。任何一个都可以将实例配置为具有公共 IP 地址或附加 EIP。
参考:http ://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html
如果您不想为具有 Internet 访问权限的实例附加公共 IP 地址(考虑私有子网),NAT 实例和 NAT 网关可以提供帮助。
参考:http ://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat.html
除了位于具有到 Internet 网关的路由的子网中之外,实例还必须具有公共 IP 地址才能与外部世界通信(这与弹性 IP 不同)。
您可以在启动实例时指定此设置,如果没有,则有一个控制此设置的每个子网设置。除了默认 VPC 中的默认子网之外,每个子网设置默认为 false。aws 文档中有更多详细信息。
问题在于连接到您正在使用的子网的网关。要检查您正在使用的网关:
Route table
Routes
->下Destination
查找0.0.0.0/0
并检查您拥有的网关Target
以下是网关的行为方式:
这是一篇帮助您理解和解决问题的好文章: https ://medium.com/awesome-cloud/aws-vpc-difference-between-internet-gateway-and-nat-gateway-c9177e710af6