AWS上Docker部署的Jenkins无法通过公网IP访问
排查AWS EC2 Docker Jenkins公网访问拒绝问题
以下是针对性的排查和解决步骤:
检查Docker端口映射配置
确认启动Jenkins容器时的端口映射参数,若使用了-p 127.0.0.1:8080:8080,则容器端口仅绑定到EC2实例的回环地址,外部无法访问。需修改为:docker run -d -p 0.0.0.0:8080:8080 -p 50000:50000 jenkins/jenkins:lts或简化为
-p 8080:8080,让容器端口绑定到主机的所有网卡(包括公网IP)。验证主机端口监听状态
在EC2实例上执行以下命令,查看8080端口的监听地址:ss -tulpn | grep 8080若输出显示
127.0.0.1:8080,说明端口仅绑定回环地址,需调整Docker端口映射;若显示0.0.0.0:8080,则监听正常,继续排查其他环节。再次确认安全组入站规则
检查EC2实例关联的安全组,确保入站规则满足:- 协议:TCP
- 端口范围:8080
- 来源:
0.0.0.0/0(允许所有公网IP访问)或你指定的IP段
注意:避免规则中误选UDP协议,或端口范围设置错误。
检查EC2实例网络属性
- 确认实例已分配公网IP/弹性IP,且状态为"已关联"
- 若实例位于私有子网,需确保子网关联了NAT网关,且路由表配置了公网路由(不过你本地curl公网IP被拒,此场景概率较低)
测试私网IP访问
在EC2实例上执行curl <EC2私网IP>:8080,若能正常响应但公网IP不行,需再次检查安全组和网络ACL配置;若私网IP也无法访问,回到端口映射和监听状态的排查。
内容的提问来源于stack exchange,提问作者Nischaya Sharma
相关产品推荐
相关产品推荐

