传出流量 AWS 的公共 IP 地址
Posted
技术标签:
【中文标题】传出流量 AWS 的公共 IP 地址【英文标题】:Public IP address for outgoing traffic AWS 【发布时间】:2017-04-07 01:47:22 【问题描述】:我在 VPC 上使用带有 Internet 网关的 AWS EC2 实例,我需要连接我的公司网络,该网络仅接受来自特定 IP 地址的连接(防火墙)。我的 IP 地址的出站流量是 Internet 网关的 IP 地址。我尝试使用 NAT 网关,但 NAT 网关仍然使用 Internet 网关。AWS 上的所有传出流量是否可以使用弹性 IP?
【问题讨论】:
“我的 IP 地址的出站流量是 Internet 网关的 IP 地址。” 嗯...不,它不是。不可能,因为 Internet 网关对象没有自己的 IP 地址。您需要更仔细地查看这一点以了解实际发生的情况。此外,NAT 网关始终具有弹性 IP,因此您似乎在问如何解决 NAT 网关自动解决的问题。 您的实例是在公有子网还是私有子网中? 我的实例在私有子网上 【参考方案1】:如果您有一组静态 IP 地址(贵公司的)作为目标,我通过执行以下操作(基于 this post)解决了同样的问题:
创建一个新子网来托管 NAT 网关。 在上述子网中创建 NAT 网关,并分配一个新的弹性 IP。这将是我们用于访问外部 API 的传出 IP。 为 NAT 子网创建路由表。所有出站流量 (0.0.0.0/0) 应通过 NAT 网关路由。分配创建的子网以使用新的路由表。 修改主路由表(处理我们所有 EC2 实例请求的路由表),并添加外部 API 的 IP,将其目标设置为 NAT 网关。这样,您可以通过 NAT 网关将任何请求路由到您的公司 IP。所有其他请求都通过默认 Internet 网关路由。
【讨论】:
以上是关于传出流量 AWS 的公共 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章
ec2 实例无法在没有弹性 IP 地址的情况下访问公共子网中的互联网?
如何使用 Ruby SDK 从 AWS 获取公共 IP 地址