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

AWS CloudFormation创建的第二公有子网实例网络与SSH连接异常求助

解决AWS公有子网实例无法联网、SSH访问及yum报错问题

嘿,我来帮你拆解下这个问题——公有子网里的第二个实例连不上网、SSH不通,浏览器访问公网IP也没反应,还有yum的报错,本质上大概率是网络配置的几个核心环节没到位,咱们一步步排查解决:

1. 先确认公有子网的路由表配置

公有子网能联网的核心是关联互联网网关(IGW)+ 路由表有默认路由指向IGW。你得检查:

  • 两个公有子网是不是都关联到了同一张路由表?这张路由表里必须有一条0.0.0.0/0 -> igw-xxxx的默认路由(xxxx是你的互联网网关ID)
  • 别不小心给第二个子网单独配了一张没有IGW路由的路由表,这是最容易踩的坑

2. 检查实例的公网IP分配

就算在公有子网里,实例也不一定自动拿到公网IP,得确认:

  • 在你的CloudFormation模板里,EC2实例的属性有没有加AssociatePublicIpAddress: true?
  • 或者第二个公有子网的默认配置里,“自动分配公网IP”是不是开启了?(子网详情里的“IPv4公有IP”设置)
    如果没开,实例只有私网IP,自然没法通过公网访问,也连不上外网的yum源

3. 安全组规则不能少

安全组是实例的防火墙,必须放开必要的端口和流量:

  • 入站规则:允许0.0.0.0/0访问22端口(SSH)、80端口(Nginx的HTTP);如果用HTTPS还要加443端口
  • 出站规则:至少允许0.0.0.0/0的所有TCP流量(或者至少放开80/443端口,保证能访问yum源和外网)
    别只给第一个实例配了正确的安全组,第二个实例漏配了

4. VPC的DNS设置要开启

如果实例能拿到公网IP但还是没法解析yum源的域名,得检查VPC的两个关键设置:

  • EnableDnsSupport设为true(允许VPC内的实例使用AWS DNS服务器)
  • EnableDnsHostnames设为true(允许实例获取公有DNS hostname)
    这两个设置没开的话,实例就算有公网IP也没法正常解析域名,yum自然会报错

关于yum报错的补充

你看到的yum日志:

Contact the upstream for the repository and get them to fix the problem
Reconfigure the base URL/etc.
Disable the repository, so yum won't use it by default

这其实是实例连不上外网的连锁反应——实例没法访问yum仓库的服务器,才会抛出这些错误。只要解决了前面的网络问题,yum的问题基本上会自动消失,不用单独去改yum源配置。

快速排查小技巧

如果还是找不到问题,可以去EC2控制台做这些检查:

  1. 查看第二个实例的网络接口详情,确认有没有公网IP,关联的路由表和安全组是不是正确
  2. 用第一个能正常访问的实例ping第二个实例的私网IP,看看子网之间能不能连通,排除VPC内部的连通性问题

内容的提问来源于stack exchange,提问作者Rakesh Sivagouni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:53:50