我想了解分配给EC2实例的 Elastic IP 和 IPv4 Public IP 之间的区别及其意义 .
我一直在尝试从我在新VPC中创建的新公共子网内启动的EC2实例连接到Internet . 我创建了一个新的Internet网关,一个新的路由表,一个新的网络ACL和一个新的安全组,并对它们进行了适当的配置 .
但是,我无法从EC2实例连接到Internet,即使我能够远程SSH到它 .
通过互联网论坛,我了解到,对于从公有子网连接到Internet的EC2实例,该实例应该具有弹性IP . 我创建的实例有 IPv4 Public IP ,但不是 Elastic IP. 有人可以解释是否需要 Elastic IP ?
以下是复制此问题的步骤:
-
创建新的VPC(服务 - >网络和内容交付 - > VPC - >虚拟私有 Cloud - >您的VPC) .
IPv4 CIDR:10.0.0.0/16 .
设置编辑DNS主机名 - >是 . -
在上面的VPC中创建一个新的子网(虚拟私有 Cloud - >子网) .
IPv4 CIDR:10.0.0.0/24 .
设置修改自动分配IP设置 - >启用自动分配公共IPv4地址 . -
创建新的Internet网关(虚拟私有 Cloud - > Internet网关) . Attach to VPC 并选择新的VPC .
-
创建新路由表(虚拟私有 Cloud - >路由表)并将其与新VPC相关联 .
路由选项卡 - >编辑 - >添加另一个路由 - >目标:0.0.0.0/0和目标:在Internet网关上方 .
子网关联 - >关联 - >选择先前创建的新子网 - >保存 . -
创建新的网络ACL(虚拟私有 Cloud - >安全性 - >网络ACL)并将其与新的VPC相关联 .
入站规则 - >编辑 - >
Rule # Type Protocol Port Range Source Allow / Deny
100 SSH(22)TCP(6)22 0.0.0.0/0允许
200 HTTP(80)TCP(6)80 0.0.0.0/0允许
300 HTTPS(443)TCP(6)443 0.0.0.0/0允许
出站规则 - >编辑 - >
Rule # Type Protocol Port Range Source Allow / Deny
100 ALL ALL ALL ALL 0.0.0.0/0 ALLOW
子网关联 - >与新子网关联 - >保存
- 创建新的安全组(虚拟私有 Cloud - >安全 - >安全组)并将其与新的VPC关联 .
入站规则 - >编辑 - >
Type Protocol Port Range Source
HTTP(80)TCP(6)80 0.0.0.0/0
SSH(22)TCP(6)22 0.0.0.0/0
HTTPS(443)TCP(6)443 0.0.0.0/0
出境规则(无变化,如下)
Type Protocol Port Range Source
ALL Traffic ALL ALL 0.0.0.0/0
-
启动新的Ubuntu Server 16.04 LTS EC2实例 .
配置实例 - >网络 - >新建/创建的VPC
配置实例 - >子网 - >新建/创建的子网(自动选中)
配置安全组 - >选择现有安全组 - >新建/创建安全组 - >查看并启动
在EC2实例描述中,Elastic IPs
将为空白并且将填充IPv4 Public IP
(这种差异是导致我的问题) . -
SSH登录到新的Ubuntu EC2实例:
ubuntu
运行$ sudo apt-get update
并且没有响应 .
我不确定EC2实例需要做什么才能访问互联网,或者我犯了哪个错误 . 由于实例位于VPC的公共子网中,我不认为将其移动到私有子网并通过NAT连接将是一个不错的选择 . 我想要的只是从EC2实例直接连接到Internet .
(感谢John提供格式化帮助以及每个回复的人)
2 回答
如果要在停止/启动后保留IP,则需要弹性IP . 如果实例没有弹性IP,则在停止/启动后将获得新的IP .
在您的情况下,您应该能够连接到互联网 . 您是否修改了安全组的默认出站规则?如果没有,请发布
traceroute
或lft
的输出,这将告诉问题所在 .您是手动创建VPC还是使用VPC向导?如果您使用VPC Wizard,则会自动设置所有内容 .
就您的问题而言,相对于IpV4 Public IP,添加弹性IP的次数并不多 . 最后,两者都是IP .
同意@helloV提到的内容
我建议你重新审视你的双向互联网网关配置 . 并阅读VPC(Internet网关配置)