CentOS 上部署 Jenkins 的网络配置技巧
一 基础连通性与 DNS 优化
- 验证外网连通性:使用 ping www.baidu.com 检查是否能访问互联网;若域名无法解析,编辑 /etc/resolv.conf 添加公共 DNS,例如 nameserver 8.8.8.8、nameserver 8.8.4.4。
- 虚拟机网络模式:在 NAT 模式下,确保虚拟网络的子网与网关配置正确,避免路由不可达。
- DNS 性能与可靠性:优先选择稳定的公共 DNS,必要时配置本地 DNS 缓存,减少解析时延与失败率。
- 连接与安全:避免使用 –permanent 关闭防火墙进行排障,排查完成后务必恢复规则;仅开放必要端口,降低攻击面。
二 防火墙放行与端口规划
- 放行 Jenkins 端口:在 firewalld 中开放 8080/TCP(或自定义端口),并重新加载规则:
- firewall-cmd --zone=public --add-port=8080/tcp --permanent
- firewall-cmd --reload
- 按需放行 443/TCP(启用 HTTPS 时)与 50000/TCP(Jenkins 代理节点通信端口)。
- 端口规划与变更:如需修改默认端口,先规划好新端口,再在系统防火墙与 Jenkins 配置中同步变更,避免端口冲突导致访问失败。
三 静态 IP 与主机名配置
- 配置静态 IP(以 CentOS 7 为例):编辑网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-ens33,设置 BOOTPROTO=static、ONBOOT=yes、IPADDR、NETMASK、GATEWAY,必要时在 /etc/resolv.conf 配置 DNS1/DNS2。
- 使配置生效:执行 systemctl restart network 或重启网络服务。
- 主机名与本地解析:使用 hostnamectl set-hostname 设置主机名,并在 /etc/hosts 添加主机名与 IP 映射,便于本机与局域网解析。
- 虚拟机克隆注意:克隆后应重新生成 MAC 地址,避免网卡配置与应用绑定异常。
四 反向代理与 HTTPS 配置
- 反向代理场景:使用 Nginx 作为反向代理,将 443/HTTPS 流量转发至 http://127.0.0.1:8080,统一证书管理与域名访问。
- 启用 HTTPS 的两种方式:
- 方式一(推荐):反向代理终止 SSL,Jenkins 仍运行在 8080,对外仅暴露 443。
- 方式二:在 Jenkins 内启用 HTTPS,例如通过 systemd 环境变量指定 JENKINS_HTTPS_PORT=8443、JENKINS_HTTPS_KEYSTORE、JENKINS_HTTPS_KEYSTORE_PASSWORD,然后执行 systemctl daemon-reload 与 systemctl restart jenkins。
- 代理头与转发:在反向代理中设置 Host、X-Real-IP、X-Forwarded-For 等请求头,确保 Jenkins 正确识别客户端来源与站点 URL。
五 内网穿透与分布式构建网络
- 无公网 IP 的远程访问与触发:结合 Cpolar 等内网穿透工具,将内网 Jenkins 控制台与 GitHub/Gitee Webhook 暴露到公网,实现外网触发构建与远程访问。
- 分布式构建与代理节点:在 Manage Jenkins → Manage Nodes 添加 代理节点,通过 JNLP/WebSocket 与控制器通信(默认 50000/TCP),分散构建负载、提升并行能力。
- Docker 部署要点:运行官方镜像需同时映射 8080(Web)与 50000(Agent),例如:docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts-jdk21;若省略 50000,后续添加 agent 会出现连接超时。