温馨提示×

CentOS上如何配置Jenkins的网络设置

小樊
46
2025-11-28 01:56:13
栏目: 智能运维

CentOS 上配置 Jenkins 的网络设置

一 基础网络与防火墙

  • 确认网络连通与 DNS:
    • 测试连通性:ping -c 4 www.baidu.com
    • 配置 DNS(如解析异常):编辑 /etc/resolv.conf,添加 nameserver 8.8.8.8nameserver 8.8.4.4
  • 防火墙放行端口(推荐仅开放必要端口):
    • 放行 HTTP 端口(示例为 8080):sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp && sudo firewall-cmd --reload
    • 若启用 HTTPS,放行 443sudo firewall-cmd --permanent --add-service=https && sudo firewall-cmd --reload
    • 查看状态:sudo firewall-cmd --list-portssudo firewall-cmd --list-services
  • 云服务器安全组:在云平台控制台放行对应 TCP 端口(如 8080/443)

二 修改 Jenkins 监听端口与监听地址

  • 编辑主配置文件(路径因安装方式可能为其中之一):
    • /etc/sysconfig/jenkins
    • /etc/default/jenkins
  • 设置端口(示例改为 8081):JENKINS_PORT="8081"
  • 设置监听地址(允许所有接口访问):JENKINS_LISTEN_ADDRESS="0.0.0.0"(或按需改为内网 IP)
  • 使配置生效:sudo systemctl restart jenkins
  • 验证:ss -lntp | grep 8081 应看到 java 进程监听对应端口。

三 反向代理与 HTTPS 配置

  • Nginx 反向代理示例(HTTP 到 Jenkins):
    • 安装:sudo yum install -y epel-release && sudo yum install -y nginx
    • 配置 /etc/nginx/conf.d/jenkins.conf
      server {
        listen 80;
        server_name your_domain_or_ip;
        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;
        }
      }
      
    • 启用并重启:sudo systemctl enable --now nginx && sudo systemctl restart nginx
    • 防火墙放行 80/443sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload
  • 直接在 Jenkins 启用 HTTPS(可选,使用 systemd 环境变量):
    • 生成 PKCS#12 证书(示例):
      openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out jenkins.pem
      openssl pkcs12 -inkey key.pem -in jenkins.pem -export -out jenkins.p12
      
    • 创建覆盖目录与文件:/etc/systemd/system/jenkins.service.d/override.conf
      [Service]
      Environment="JENKINS_HTTPS_PORT=8443"
      Environment="JENKINS_HTTPS_KEYSTORE=/var/lib/jenkins/jenkins.p12"
      Environment="JENKINS_HTTPS_KEYSTORE_PASSWORD=YourPassword"
      
    • 重载并重启:sudo systemctl daemon-reload && sudo systemctl restart jenkins
    • 访问:https://your_domain_or_ip:8443
  • 提示:若经由 Nginx 终止 TLS,Jenkins 侧保持 HTTP 8080 即可,由 Nginx 处理 443/HTTPS

四 验证与常见问题排查

  • 访问测试:
    • HTTP:http://服务器IP:8080http://域名
    • HTTPS:https://服务器IP:8443https://域名
  • 查看日志定位启动与网络问题:
    • 系统日志:sudo journalctl -u jenkins -xe
    • 应用日志:查看 /var/log/jenkins/jenkins.log
  • 常见原因与修复:
    • 端口未放行或被占用:检查 firewall-cmd --list-portsss -lntp | grep 8080,必要时更换端口并重启服务
    • 监听地址限制:确认 JENKINS_LISTEN_ADDRESS=0.0.0.0 而非 127.0.0.1
    • SELinux 拦截:临时排查可用 sudo setenforce 0,长期方案请配置正确的 SELinux 布尔值或策略
    • 云安全组未放行:在控制台打开对应 TCP 端口(如 8080/443/8443)

0