当前位置: 首页 > 知识库问答 >
问题:

EC2实例无法访问Internet

长孙知
2023-03-14

我使用terraform创建了一个新的EC2实例来安装vertica,但无法在实例中访问Internet或pinggoogle.com。

我已使用私有子网设置了 ec2 实例,并使用公有子网设置了 nat 网关。

主路由表允许 0.0.0.0/0 作为目标,目标作为 nat 网关。另一个路由表将子网关联作为私有子网 10.103.2.0/24。互联网网关也连接到 VPC。

我的ec2实例安全组允许以下目标的红移和ssh流量:10.83.0.0/16、10.100.0.0/16和所有出站流量:10.83.0.0/16、10.100.0.0/16

我的问题:

  1. 任何路由表都应该以互联网网关为目标吗?
  2. 安全组是否也应允许 icmp?
  3. 请向我简要介绍我应该如何排除故障以及我应该检查什么?

共有3个答案

颛孙俊
2023-03-14

根据您对其他答案的回答,禁用源/目标检查应该可以解决您的问题。

https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html#EIP_Disable_SrcDestCheck

松阳泽
2023-03-14

很可能您还没有为您的VPC定义任何互联网网关

邢骏
2023-03-14

这种说法

ec2实例有私有子网

与此声明相矛盾

我还为路由表设置了互联网网关

如果您的子网具有到互联网网关的路由,则您有一个公有子网。如果满足所有这些要求,您的实例将具有互联网访问权限:

    < Li > EC2实例有一个公共IP地址。 < li >网络ACL允许所需端口上的入站和出站流量。网络ACL就像一个无状态防火墙。仅允许传出连接是不够的。 < li >您的安全组应该允许所需端口上的传出流量。

如果您的实例没有公共IP地址,则需要部署NAT网关。

 类似资料:
  • 如题所示,我正在努力通过EC2实例连接到我的elasticache实例。我有一个orm连接到EC2实例中的redis,但它在我的日志中失败了,所以我登录到EC2实例,尝试手动连接到redis实例,但超时了: < code >无法连接到位于的Redis 它们位于不同的VPC中(弹性缓存实例和EC2实例),但在我的弹性缓存实例的安全组中,我在端口6379处有来自任何来源的自定义TCP入站规则。 哈尔普

  • 我有一个正在运行的Amazon EC2实例,它具有开放的IAM策略,可以调用通过调用公共S3 bucket来证明的任何资源。但是,如果我自己创建一个S3 bucket(带有一些。csv文件的mybucket)并提供bucket策略 要被EC2用户调用,我会得到以下错误。 为什么我会得到这个400错误代码?

  • 我正在运行一个AWS ECS服务,它正在运行一个具有多个容器的任务。任务在awsvpc网络模式下运行。(EC2,不是Fargate) 集装箱港口映射在ECS任务定义中。 PS:目标(公共IP)可以从远程PC访问。只是不是从港口来的。

  • 我编写了一个非常简单的spring boot应用程序,并将其打包在Docker中。 docker文件的内容是: 我把它推到了docker hub。 我在aws上创建了一个新的EC2实例。然后我连接到它并键入以下命令: 最后一个命令在屏幕上给出了许多消息,表示spring boot应用程序正在运行。 看起来很棒。但是,当我打开浏览器并键入:http://ec2-54-86-87-68.compute

  • 无法通过公共IP访问EC2 Ubuntu 18.04服务器 重启工作EC2实例 正常重启,没有错误 安全组,检查80,443的入站OK 我还能查什么?