CentOS 上优化 Jenkins 网络设置的实用方案
一 基础网络与端口规划
- 修改 Jenkins 监听端口:编辑 /etc/sysconfig/jenkins,将 JENKINS_PORT 改为业务空闲端口(如 8090),保存后执行
sudo systemctl restart jenkins。
- 规划访问方式:在内网可直接用 IP:端口 访问;对外建议通过 Nginx/Apache 反向代理 提供 HTTP/HTTPS,便于统一证书、压缩、缓存与访问控制。
- 防火墙放行:使用 firewalld 放行对应端口(示例为 8080,如更换端口请同步调整)。
- 静态 IP(可选):在 /etc/sysconfig/network-scripts/ifcfg-<接口名> 中设置 BOOTPROTO=static、IPADDR、NETMASK、GATEWAY、DNS1/DNS2,执行
sudo systemctl restart network 生效。
- 名称解析:编辑 /etc/resolv.conf 添加可靠 DNS(如 8.8.8.8、8.8.4.4),确保插件与依赖下载顺畅。
二 反向代理与 HTTPS 配置
- 建议用 Nginx 终止 TLS 并反向代理到本地 8080/8090,示例要点:
- 仅暴露 80/443,Jenkins 监听本地回环或内网地址,降低暴露面。
- 开启 HTTP/2、Gzip、合理的 缓存 与 超时;为静态资源设置长缓存。
- 配置 HSTS、安全的 TLS 协议与套件;设置合适的 client_max_body_size 以适配大上传(如制品、日志)。
- 反向代理示例(概念):
- location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
- 如采用 HTTPS,在 Jenkins “系统配置”中正确设置 Jenkins URL 为 https:// 开头,避免回调与链接错配。
三 内核网络参数与 TCP 栈优化
- 编辑 /etc/sysctl.conf,在变更前备份并逐项评估,执行
sudo sysctl -p 生效:
- 连接与队列:
- net.core.somaxconn = 65535
- net.ipv4.tcp_max_syn_backlog = 8192
- net.ipv4.tcp_max_tw_buckets = 5000
- net.ipv4.tcp_tw_reuse = 1
- net.ipv4.tcp_fin_timeout = 30
- 端口与保活:
- net.ipv4.ip_local_port_range = 1024 65535
- net.ipv4.tcp_keepalive_time = 1200
- 缓冲区与探测:
- net.ipv4.tcp_rmem = 4096 87380 6291456
- net.ipv4.tcp_wmem = 4096 65536 6291456
- net.ipv4.tcp_mtu_probing = 1
- 文件描述符与进程限制:在 /etc/security/limits.conf 提升 nofile(如 65536 或更高),以支持高并发连接与大量文件操作(Jenkins 与构建工具均受益)。
四 带宽控制与网络隔离
- 带宽限速:对构建节点或特定网段使用 tc(Traffic Control)进行出口/入口限速,避免构建拉取与制品上传挤占业务带宽。
- 多网卡与 VLAN:通过 ip 命令创建 VLAN 接口并绑定到对应物理口,实现与管理/业务网段隔离,提升安全与可维护性。
- 网络别名:为接口配置 多个 IP,用于多租户或多环境隔离(如测试/预发/生产)。
- 连接监控:使用 ss/netstat 观察 ESTABLISHED、TIME_WAIT、重传与 RTT,结合构建日志定位瓶颈。
五 高可用与扩展建议
- 代理节点与并行构建:在 “管理 Jenkins → 管理节点” 添加 代理节点,将耗时任务分摊到多机,缩短整体流水线耗时并提升稳定性。
- 监控与持续优化:安装 Performance Plugin 等监控插件,定期分析 构建时长、队列等待、网络时延/丢包 与 带宽占用,据此微调 并发构建数、代理规模 与 内核/TCP 参数。