Ubuntu 20.04上Docker部署的Jenkins需额外开放哪些端口?
所需开放的端口清单及说明
一、主机入站端口(必须保留)
8080: Jenkins Web控制台的访问端口50000: Jenkins主节点与代理节点的通信端口,无代理节点也建议保留以便后续扩展
二、主机出站端口(需放行流量)
Jenkins任务依赖外部服务通信,主机防火墙需允许容器出站访问以下端口:
- GitLab通信端口:
- HTTP协议默认
80,HTTPS协议默认443,根据你实际使用的GitLab地址协议选择放行。
- HTTP协议默认
- Nexus部署/访问端口:
- Nexus默认HTTP端口为
8081,若配置了HTTPS则为443,需匹配你的Nexus实际监听端口放行。
- Nexus默认HTTP端口为
- Maven依赖拉取端口(按需):
- 若项目需从外部公共仓库(如Maven中央仓库)拉取依赖,需放行
443出站(当前公共仓库默认使用HTTPS);若仅使用内部私有仓库,放行对应私有仓库端口即可。
- 若项目需从外部公共仓库(如Maven中央仓库)拉取依赖,需放行
三、容器内部端口说明
Jenkins容器自身监听8080和50000,已通过Docker映射到主机对应端口,无需额外在主机开放。
优化建议
- 优先使用HTTPS协议对接GitLab和Nexus,仅放行
443出站,减少明文传输风险。 - 通过防火墙规则限制出站流量的目标IP,仅允许访问GitLab、Nexus的固定IP,进一步缩小攻击面。
- 若使用GitLab Webhook替代主动轮询,需确保GitLab服务器能访问主机的
8080端口;仅用主动轮询则无需额外开放入站端口给GitLab。
内容的提问来源于stack exchange,提问作者alimash
相关产品推荐
相关产品推荐

