【问题标题】:Can I remove the public IP on my instance without terminating it?我可以在不终止实例的情况下删除实例上的公共 IP 吗?
【发布时间】:2021-12-12 21:40:16
【问题描述】:

我在一个 vpc 上有几个实例,它们通过它们的私有 ip 相互通信。每个实例都是在一段时间前启动的,并分配了一个不用于任何事情的随机公共 IP。由于任何公开的内容都存在漏洞并且根本没有被使用,因此我想删除它们。

是否可以在不终止实例的情况下删除公共 IP 地址?

【问题讨论】:

  • 如果你正在运行 Linux,使用 Iptables 阻止公共 IP 上的所有传出和传入连接,如果你在 Windows 上使用 Windows 防火墙进行此操作
  • 没有任何东西可以到达您的服务器。只需使用安全组,它们是一种防火墙规则。
  • 这根本无法维护,.. 每次要验证公共 IP 未被使用时,您都必须检查 iptables 或防火墙?

标签: amazon-web-services amazon-ec2


【解决方案1】:

不,不终止实例是不可能的。如果是 Elastic Ip,那么它会起作用。

唯一的选择是获取实例的 AMI,终止实例并在 VPC 中启动 AMI,而不为该实例启用公共 IP 地址。

使用该私有 IP 终止实例后,您可以再次将该私有 IP 分配给您从映像创建的新实例。 (只要它在同一个 VPC 和子网中)这样您就不需要从所有“通过私有 ip 相互通信的 vpc 上的实例”更新私有 IP

【讨论】:

  • 那么简单的重启,无论如何都会释放公共 IP,不起作用?
  • 在 AWS 中简单重启不会改变你必须启动和停止实例的 IP
【解决方案2】:

是的,您可以从实例中删除公共 IP 地址。

当您的实例在启用了“自动分配公共 IP”设置的子网中启动时,此解决方案适用。 这使得 AWS 添加了一个似乎很难删除的公共 IP 地址。

注意事项:

  • 如果您更改子网自动分配设置并停止和启动实例, 这不起作用,它没有效果。公共IP仍然存在。
  • 如果您通过关联弹性 IP 获得公共 IP,那么它是 不同的情况,易于修复;您需要做的就是右键单击 实例或弹性 IP,并选择“网络”、“解除关联” 弹性 IP 地址”)

这里有一个被否决的解决方案,起初似乎可行,但当您再次启动实例时,公共 IP 会返回(作为不同的地址)。

解决方案:(详细步骤如下)

您需要先添加另一个网络接口,(因此有两个或多个 N.I),然后您可以通过添加和删除一个来释放公共地址 弹性IP。

这是详细的分步指南:

  1. 创建一个新的网络接口。
  2. 将新网络接口附加到您的实例。现在会有两个 或多个附加到您的实例的网络接口。这个很重要。 必须有两个或更多才能工作。
  3. 创建一个新的弹性 IP(在 EC2 控制台中)。
  4. 右击新建的EIP,关联公网IP的实例 你想删除。原来的公共 IP 将被新的 IP 替换。
  5. 现在执行第 4 步的相反操作,取消与您刚刚添加的 EIP 的关联。 此时,右键单击实例并选择“网络”,“管理 IP 地址”,您将看到您的实例上没有任何公共 IP 更多的。在此刻。您必须刷新实例视图,否则您 不会看到这个。

    公共 IP 现在已经永远消失了。 即使您停止并启动实例,它也不会返回。

  6. 整理:删除之前创建的弹性IP。不要删除新的 额外的网络接口。这必须留在原地。如果删除新的 / 第二个 NI 然后公共 IP 将在您下次停止时返回 启动实例。

我知道这听起来有点奇怪,但它在 AWS 文档here 中,并且我已经对其进行了测试并且它有效。

该页面上AWS文档的相关部分是:“如果您的实例在VPC中的公共IP地址已被释放,如果有多个网络接口连接到它,它将不会收到新的IP地址你的实例。”

【讨论】:

  • 确保1.您的子网自动分配设置设置为分配公共IP,2.完全按照上面的步骤,特别是第6点;不要删除你刚刚添加的新接口,必须有两个或更多。他们必须留下来保持公共 IP 远离。如果你只有一个,它会在你重新启动时回来。 , 3. 在查看实例进行测试时,一定要刷新页面。 4. 如果您仍有问题,请联系 AWS 技术支持,参考上面描述此工作原理的 AWS 文档中的链接。
  • 这个非常奇怪的解决方法有效,但我不得不停止并重新启动实例。谢谢!
  • 好吧,我回来告诉你,这个解决方案基本上破坏了我的网络。我的服务完全无法访问互联网。我不得不回滚更改。我不是网络专家,所以我不能告诉你这是否与我的错误配置有关,但我仔细地遵循了上述步骤。我认为这个问题可能与此文档有关:aws.amazon.com/premiumsupport/knowledge-center/… 就个人而言,我将保留公共 IP 并配置我的安全组以禁用入站互联网流量。
  • 不确定您所说的“基本上破坏了我的网络”是什么意思,如果您失去了与 Internet 的连接,是的,这就是该程序的目的。这些步骤旨在删除公共(面向互联网的)IP,这就是目标。
  • 对不起,我在最后一条评论中有点吓坏了。目标是让 EC2 实例无法通过 Internet 访问,并让所有流量安全地通过负载均衡器路由。这已经是之前通过使用安全组发生的情况,但出于加强合规性的原因,我想删除 EC2 IP。一定有一些我不明白的地方,因为我认为主要问题是 EC2 实例无法访问互联网,我预计这应该通过负载均衡器发生。也许这是我误解了。
【解决方案3】:

对我有用的步骤:

  1. 在 vpc 子网上禁用自动分配公共 IP 设置。
  2. 停止 ec2 实例。
  3. 打开网络接口管理 IP 地址设置并分配辅助专用 IP。
  4. 打开弹性 IP 并将弹性 IP 与具有辅助私有 IP 的 ec2 相关联。
  5. 启动 Ec2 实例。
  6. 打开网络接口管理 IP 地址设置并取消分配辅助 IP。
  7. 大功告成,现在可以释放之前关联的弹性IP了。

【讨论】:

    【解决方案4】:

    这是一个非常古老的线程,但删除通过 VPC 设置关联的公共 ip 的最简单方法是:

    1. 创建弹性 IP
    2. 将弹性 ip 分配给拥有的主机 你要发布的公网ip(ip在这个时候发布 步骤)
    3. 解除 ip 地址与弹性 ip 管理的关联 屏幕。

    【讨论】:

    • 它似乎对我不起作用。当我解除 IP 与弹性 IP 管理控制台的关联时,不知何故会自动生成一个新的公共 IPv4 并附加到 EC2 主机。
    • 可以确认,刚刚试了,不行,你随机得到一个新的公网IP。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 2019-03-02
    • 2022-06-27
    相关资源
    最近更新 更多