CentOS 上优化 Jenkins 网络的可执行方案
一 基础连通性与访问控制
- 确认网络与 DNS 正常:使用 ping 测试外网连通性,必要时在 /etc/resolv.conf 配置公共 DNS(如 8.8.8.8、8.8.4.4)。
- 防火墙放行端口:开放 Jenkins 端口(默认 8080) 与 JNLP 代理端口(50000),并重新加载规则:
- firewall-cmd --zone=public --add-port=8080/tcp --permanent
- firewall-cmd --zone=public --add-port=50000/tcp --permanent
- firewall-cmd --reload
- 如需外网访问,建议通过 Nginx/Apache 反向代理 + HTTPS 暴露服务,避免直接暴露 8080;在代理层配置 HTTP/2、长连接、压缩 与合适的 keepalive。
- 容器部署要点:映射 8080:8080 与 50000:50000,并确保宿主机开启 IPv4 转发(net.ipv4.ip_forward=1),否则从节点可能无法连接主节点。
- 修改默认端口(可选):编辑 /etc/sysconfig/jenkins,设置 JENKINS_PORT=8090,重启生效。
以上措施可提升可达性与访问控制粒度,并为后续性能优化打底。
二 传输性能与并发能力
- TCP/IP 内核参数优化(/etc/sysctl.conf,执行 sysctl -p 生效):
- 增大套接字与半连接队列:net.core.somaxconn=65535;net.ipv4.tcp_max_syn_backlog=8192
- 加速 TIME_WAIT 回收与复用:net.ipv4.tcp_tw_reuse=1;net.ipv4.tcp_fin_timeout=30;net.ipv4.tcp_max_tw_buckets=5000
- 连接保活:net.ipv4.tcp_keepalive_time=1200;net.ipv4.tcp_keepalive_probes=3;net.ipv4.tcp_keepalive_intvl=15
- 扩大本地端口范围与缓冲区:net.ipv4.ip_local_port_range=1024 65535;net.core.rmem_max=6291456;net.core.wmem_max=6291456;net.ipv4.tcp_rmem=4096 87380 6291456;net.ipv4.tcp_wmem=4096 65536 6291456
- 启用 MTU 探测:net.ipv4.tcp_mtu_probing=1
- 文件描述符与进程限制:在 /etc/security/limits.conf 提升 nofile(如 65536)与 nproc,并确认 systemd 服务段包含 LimitNOFILE=65536,以支持高并发连接与大量并发拉取/上传。
- 代理带宽与队列管理:在构建从节点或宿主机使用 tc 做出口限速与整形,避免单任务占满带宽影响其他服务。
- 传输加速:启用 HTTP/2(反向代理层)与 GZIP/Brotli 压缩;对大制品考虑 CDN/对象存储 直传,减少回源压力。
这些参数与策略可显著提升高并发拉取、制品上传与 Web 界面的响应表现。
三 高可用与扩展
- 构建节点扩展:在 “管理 Jenkins → 管理节点” 添加 代理节点,将耗时的 拉取、编译、测试、打包 分布到多台机器,缩短总耗时并提升稳定性。
- 反向代理与静态资源:使用 Nginx 承载静态资源与 API 聚合,启用 长连接、缓存、压缩,降低 Jenkins 应用进程的网络与 CPU 开销。
- 多网卡与静态路由:对跨机房/多出口场景,配置 静态路由 与 源地址策略路由,确保回程路径最优,减少抖动与丢包。
- 监控与告警:持续观测 带宽、丢包、重传率、连接数、RTT,在异常时自动扩容节点或限流。
上述做法通过横向扩展与传输路径优化,提升吞吐与稳定性。
四 容器与更新源优化
- 端口映射与连通性:容器部署务必映射 50000:50000(JNLP),否则 从节点无法注册;如需 IPv4 访问,启用 net.ipv4.ip_forward=1。
- 插件更新源加速:修改 $JENKINS_HOME/hudson.model.UpdateCenter.xml,将 URL 改为国内镜像(如清华源),显著提升插件下载速度:
- https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
- 目录权限与挂载:挂载目录需与容器内 jenkins 用户(UID 1000) 一致,避免权限错误导致拉取/上传失败。
这些优化能明显缩短初始化与日常维护的网络耗时。
五 安全与网络策略
- 精细化防火墙:仅开放 8080/50000 及反向代理所需端口,避免使用 0.0.0.0/0 的宽松策略;按业务划分 安全域 与 ACL。
- 禁用不必要服务:不建议直接长期关闭 firewalld/NetworkManager;如确需关闭,务必在受控窗口内完成并做好回滚预案。
- 加密传输:优先使用 HTTPS/TLS;如采用 systemd 环境变量方式启用 JENKINS_HTTPS_PORT/KEYSTORE,确保证书与密码妥善管理。
- 合规与审计:开启 访问日志 与 构建日志归档,对外部仓库与代理节点访问进行 最小权限 配置。
在安全前提下进行网络优化,可兼顾性能与合规要求。