You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不中断业务的情况下为AWS EC2实例移除公网IPv4?

如何在不中断业务的情况下为AWS EC2实例移除公网IPv4?

我完全理解你的困扰——自从2024年2月1日AWS开始对公网IPv4收费后,很多人都在想办法优化成本,同时不想折腾业务中断的问题。你遇到的核心矛盾是:移除实例的公网IPv4后,它没法访问IPv4互联网了,但又不想修改VPC/子网配置或者重建实例。其实不用终止实例,咱们一步步来解决这个问题:


前置确认

首先要明确:你的实例需要访问IPv4互联网的话,必须通过NAT网关来转发IPv4流量(因为实例本身没有公网IPv4了)。但这个操作不需要改动实例所在的VPC或子网,也不用重启/重建实例,放心往下走。


步骤一:创建NAT网关(如果还没有的话)

NAT网关是用来让私有子网里的实例访问IPv4互联网的核心组件,它只需要一个弹性IP(成本远低于给每个实例分配公网IPv4):

  • 打开AWS控制台的VPC服务,找到“NAT网关”选项,点击“创建NAT网关”
  • 给NAT网关起个名字(比如Cost-Optimized-NAT),选择一个有公网IPv4的子网(也就是你的“公共子网”,原来能直接访问互联网的那种)
  • 点击“分配弹性IP”,AWS会自动给NAT网关分配一个弹性IP(这个IP是给NAT网关用的,不是给你的实例)
  • 确认配置后点击“创建NAT网关”,等待状态变成“可用”(大概1-2分钟)

步骤二:调整实例所在子网的路由表

这一步是让实例的IPv4流量通过NAT网关出去,不用自己带公网IPv4:

  • 找到你的EC2实例,在“详情”标签里查看它所在的“子网”
  • 进入VPC控制台的“路由表”页面,找到和这个子网关联的路由表(可以通过路由表的“关联”标签确认)
  • 编辑这个路由表的路由规则:
    • 删除原来指向互联网网关的0.0.0.0/0路由(如果有的话)
    • 添加一条新路由:目标填0.0.0.0/0,下一跳选择你刚才创建的NAT网关
    • 保存路由规则

步骤三:移除实例的公网IPv4(无需重启实例)

现在可以安全地去掉实例的公网IPv4了:

  • 回到EC2控制台,选中目标实例,点击“操作”→“网络和安全”→“管理IP地址”
  • 在“IPv4地址”区域,找到公网IPv4对应的条目,点击“释放”(如果是自动分配的,也可以取消“自动分配公网IPv4”的设置,但释放更直接)
  • 确认操作后,实例的公网IPv4就会被移除,同时保留私有IPv4和IPv6地址

步骤四:验证连通性

最后确认一切正常:

  • 登录实例,测试IPv4访问:比如ping 8.8.8.8或者curl https://ipv4.icanhazip.com,应该能正常返回结果
  • 测试IPv6访问:比如ping6 2606:4700:4700::1111或者curl https://ipv6.icanhazip.com,确保依然正常
  • 验证私有IPv4通信:比如和同VPC内的其他实例互通,没问题就大功告成了

额外注意事项

  • NAT网关成本:NAT网关按小时收费,加上弹性IP的少量费用,但对比多个实例的公网IPv4费用,长期来看还是划算的
  • 外部IPv4访问需求:如果你的实例需要被外部IPv4访问,那不能移除公网IPv4,或者得搭配负载均衡、CloudFront等服务来做反向代理
  • 安全组/网络ACL:确保实例所在子网的安全组允许出站IPv4流量,网络ACL也允许入站/出站的IPv4相关规则(默认配置一般没问题,但如果之前改过要检查)

备注:内容来源于stack exchange,提问作者TNT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 07:49:40