部署在AWS ECS的Dash应用无法通过10000端口访问
AWS ECS部署Dash应用10000端口无法连通排查方案
以下按排查优先级从高到低列可能成因和对应解决方法:
- 应用监听地址配置错误
Dash框架默认启动时仅绑定127.0.0.1回环地址,该配置下仅容器内部进程可访问服务,容器外所有跨网络请求都会被直接丢弃,是这类故障最高发的原因。
排查方法:通过ECS Exec进入运行中的任务容器,执行netstat -tulpn | grep 10000,如果输出的本地地址列为127.0.0.1:10000即可确认问题。
修复方法:修改Dash启动代码,显式指定绑定地址为全网卡地址,参考配置:
注意生产环境不要开启debug模式,避免出现安全风险。if __name__ == '__main__': app.run_server(host='0.0.0.0', port=10000, debug=False) - 端口映射配置不符合网络模式要求
排查点:- 若任务使用
awsvpc网络模式(Fargate、新版EC2启动类型的默认模式),任务定义中的容器端口必须填10000,主机端口可留空或与容器端口保持一致,该模式下不需要做端口转换,若端口填错会直接导致访问失败; - 若任务使用
bridge网络模式,需确认主机端口映射值为10000,安全组规则需对应放行主机端口的流量,不要混淆容器端口与宿主机端口的配置。
- 若任务使用
- 网络访问控制规则未放行
按从近到远的顺序逐层检查:- 检查任务关联弹性网卡绑定的安全组,入站规则需放行对应访问来源的10000端口TCP流量:公网访问需放行
0.0.0.0/0源地址的10000端口,私网访问需放行客户端所在网段的10000端口; - 检查任务所在子网的网络ACL配置:ACL为无状态规则,需同时放通入站方向10000端口的TCP流量、出站方向临时端口段(1024-65535)的TCP回包流量,避免回包被拦截。
- 检查任务关联弹性网卡绑定的安全组,入站规则需放行对应访问来源的10000端口TCP流量:公网访问需放行
- 公网访问路由配置缺失
若通过公网IP访问,需确认两项配置:- 任务运行在公有子网,子网路由表已绑定互联网网关,存在指向互联网网关的
0.0.0.0/0路由条目; - 任务启动时已开启「自动分配公网IP」选项,若任务部署在私有子网,公网IP无法直接路由到任务,需通过负载均衡或跳板机访问。
- 任务运行在公有子网,子网路由表已绑定互联网网关,存在指向互联网网关的
- 容器内部/应用层拦截
排查点:- 检查容器基础镜像是否默认开启了
iptables、ufw等防火墙服务,是否存在拦截10000端口入站流量的规则; - 检查Dash应用是否配置了IP白名单、访问认证类中间件,是否将客户端来源IP拦截。
- 检查容器基础镜像是否默认开启了
快速定位技巧:进入容器后在10000端口启动临时HTTP测试服务(可直接执行
python3 -m http.server 10000),如果此时端口可正常访问,说明故障在Dash应用配置层;如果仍无法访问,故障在AWS网络配置层。
内容的提问来源于stack exchange,提问作者hippocampus
相关产品推荐
相关产品推荐

