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

从没有公有 IP 地址的 AWS VPC 实例访问互联网

孙德本
2023-03-14

我们正在设置一个Amazon VPC,我们将在其中提供(目前)一个EC2实例和一个RDS实例。这是为了“扩展我们的数据中心”,并且只能使用私有子网。

所以实际上,我们有这个设置,它运行良好(插入笑脸图标)。出于所有意图和目的,我们将 Amazon 在此处概述的 VPC 方案 4 镜像:http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario4.html

tl; dr:单个VCP,VPN连接到我们的公司网络。VPN使用虚拟专用网关(VPC端)和客户网关(我们的端)允许我们根据需要访问EC2,其中包含一个根据需要连接到RDS实例的网络服务器。我们网络上的任何人都可以通过URL访问在EC2上运行的网络服务器。所有这些都按预期工作。

当EC2实例需要访问Internet上的资源时,问题就出现了——我们的想法是不要有任何公共子网,而是通过我们的虚拟专用网路由来自EC2实例的所有流量,并将其路由到我们公司Internet访问的“标准”路径之外。然而,我们在设置它时遇到了麻烦。

事实上,这是可以做到的,这在亚马逊的常见问题解答中有所强调:https://aws.amazon.com/vpc/faqs/

问:没有公共IP地址的实例如何访问Internet?

没有公共IP地址的实例可以通过以下两种方式之一访问Internet:

>

  • 没有公有 IP 地址的实例可以通过 NAT 网关或 NAT 实例路由其流量以访问互联网。这些实例使用 NAT 网关或 NAT 实例的公有 IP 地址遍历公有 IP。NAT 网关或 NAT 实例允许出站通信,但不允许互联网上的计算机启动与专用地址实例的连接。

    对于具有硬件VPN连接或直接连接的VPC,实例可以通过虚拟专用网关将其Internet流量路由到现有数据中心。从那里,它可以通过您现有的出口点和网络安全/监控设备访问互联网。

    我们试图避免选择#1,因为这涉及成本(以及复杂性和安全问题)。#2对我们来说是完美的解决方案,但是理解设置它的过程已经有一段时间了。

    有人能告诉我们需要做些什么(或给我们指出正确的资源)来确保EC2实例*可以通过VPN、公司数据中心和现有的互联网接入点访问互联网吗?

    * 以及专用子网内的任何内容

  • 共有1个答案

    曹恩
    2023-03-14

    如果您使用的是场景 #2,那么 AWS 端要做的就是确保发往互联网的流量 0.0.0.0/0 路由到您的虚拟私有网关。

    一旦流量流向那里,它将进入您的客户网关,并进入您的企业数据中心。如果可能的话,这取决于您当地的IT人员,以获得互联网目的地的流量。但在这一点上,这不再是AWS的问题。

     类似资料:
    • 我在aws上工作。我创建了一个公共子网,该子网具有允许所有网络流量的网络ACL,并与路由表中的Internet网关相关联。 然后我创建了一个没有弹性ip的ec2实例和一个有弹性ip的ec2实例,安全组也允许所有流量。 我ssh到具有弹性ip的实例。当我运行yum update和curl www.baidu.com等软件时,效果很好。但是当我ssh到没有弹性ip的ec2实例时,我无法访问互联网。有人

    • 我在AWS中有一个公共子网,我在其中有3个实例。。。 WebApp01 (例如弹性 IP - 54.23.61.239) WebApp02 (私有 IP - 192.168.0.24) 虚拟应用程序03 (私有 IP - 192.168.0.25) 我的路由表设置为192.168.0.0/16 - 我可以看到拥有公共IP的实例可以访问互联网,但没有公共IP的实例无法访问互联网。 如何让Intern

    • 我希望创建一个EMR集群,其中出于安全原因,没有为任何实例分配公共IP地址。我已经能够在我的VPC中启动集群,并使用我自己的自定义安全组,但由于某些原因,默认情况下所有节点都分配了一个公共IP地址。 我在EMR CLI文档中找不到有关如何禁用此功能的任何信息:http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-

    • 我正在将minikube作为docker映像运行。我试图使用Nodeport将我的服务公开给外部世界。 这是我的yaml文件。 搜索了大量关于nodePort的信息,我们需要节点ip才能访问该服务。我可以使用minikube service docker hello world svc访问我的服务——url,它为我提供了访问服务的urlhttp://127.0.0.1:52526但此处的端口号与n

    • 如何访问postgres-docker container其他docker container没有ip地址?我想通过使用MyWeb将数据存储在postgres中。在jar中给定主机,如localhost:5432/db。 这是我的作曲文件:

    • 我在带有Internet网关的VPC上使用AWS EC2实例,我需要连接我的公司网络,该网络只接受来自特定IP地址的连接(防火墙)。我的IP地址的出站流量是Internet网关的IP地址。我试过使用NAT网关,但NAT网关仍然使用InternetGateway.Is可以为AWS上的所有传出流量提供弹性IP?