ECS容器内执行curl命令超时(使用awsvpc网络)问题咨询
awsvpc 网络模式下容器curl公网超时的高频诱因
以下为实际运维排查中最常出现的问题点,可按顺序逐一校验:
- ENI 安全组规则拦截
awsvpc 模式和默认桥接网络逻辑不同,容器会直接绑定专属弹性网卡(ENI),不存在共享宿主机网络栈做NAT转换的环节。很多人容易忽略这个特性:容器用的ENI关联的安全组是独立配置的,不会自动继承宿主机的安全组规则。如果这个ENI没有配置放行出站方向80/443端口到公网的规则,所有对外请求会直接被云侧防火墙丢包,最终表现就是无响应超时。 - 子网公网路由或IP配置缺失
给容器分配ENI的子网如果是纯私有子网,路由表没有配置指向互联网网关(IGW)的0.0.0.0/0公网路由;或者子网虽然是公有子网,但ENI没有绑定公网IP/弹性IP,请求发出后没有对应的返回路径,就会直接触发连接超时。 - 容器DNS解析环节故障
本次执行的curl命令访问的是域名而非纯IP地址,如果容器配置的DNS服务无法正常解析www.google.com的对应地址,curl会卡在域名解析阶段,最终超时返回。 - 区域链路层面的访问限制
如果承载EC2的AWS区域本身对Google公共服务的公网连通性存在策略拦截,哪怕VPC内部所有网络配置完全正确,请求也无法顺利到达目标服务器,最终触发超时。
快速校验排查步骤
- 先在容器内执行
curl -v 142.250.80.4(跳过DNS环节直接测试IP连通性),如果依然超时,可直接排除DNS故障,优先排查ENI、子网路由、安全组配置- 核对目标容器绑定ENI的配置:确认是否绑定公网IP、关联的安全组出站规则是否放行对应端口
- 检查ENI所在子网的路由表,确认公网流量的路由指向是否正确
- 从同VPC内的普通EC2实例直接测试curl对应Google地址,排除区域侧的链路访问限制
内容的提问来源于stack exchange,提问作者Kottakji
相关产品推荐
相关产品推荐

