Terraform部署的EC2配置ACL、安全组、IGW后仍无法建立互联网连接求助
AWS EC2 Ubuntu实例无法执行apt update排查思路
- 先验证实例出站网络基础连通性
- 登录实例后依次执行
ping 8.8.8.8、curl -v http://example.com,确认ICMP、TCP 80端口是否能正常连通公网 - 如果以上操作失败,先核对安全组出站规则:确认你绑定的安全组允许所有出站流量,或至少放行80(HTTP)、443(HTTPS)、53(DNS)端口的出站请求
- 登录实例后依次执行
- 核对子网关联的网络ACL规则
- 网络ACL为无状态规则,除了放行出站的80/443/53端口,还要放行入站的临时端口段1024-65535的流量,否则apt请求的返回包会被ACL拦截
- 确认实例所在子网实际绑定的是你自定义配置的ACL,而非VPC默认ACL,可在AWS控制台子网详情页核对关联的ACL ID
- 验证路由与公网IP配置
- 查看子网绑定的路由表,确认存在
0.0.0.0/0路由指向已绑定的Internet网关,注意不要仅核对VPC主路由表,要以子网实际关联的路由表规则为准 - 确认实例已分配公网IP/弹性公网IP,无公网IP的实例即使路由配置正确也无法直接访问公网
- 查看子网绑定的路由表,确认存在
- 排查实例内部配置问题
- 执行
cat /etc/resolv.conf核对DNS配置,可临时修改为nameserver 8.8.8.8测试是否为DNS解析故障 - 执行
echo $http_proxy $https_proxy确认是否配置了无效的系统代理,若存在代理配置可执行unset http_proxy https_proxy清空后重试
- 执行
- Terraform配置校验
- 确认你已通过
aws_network_acl_association资源将自定义ACL与实例所在子网绑定,未做绑定的情况下子网会默认使用VPC默认ACL - 核对
aws_instance资源的subnet_id、vpc_security_group_ids参数,确认关联的是你已配置好规则的子网和安全组
- 确认你已通过
内容的提问来源于stack exchange,提问作者NikSp
相关产品推荐
相关产品推荐

