温馨提示×

如何在centos上配置jenkins的网络

小樊
44
2025-12-15 18:41:04
栏目: 智能运维

在 CentOS 上配置 Jenkins 的网络

一 基础连通性与防火墙

  • 检查网络连通与 DNS 解析:
    • 查看 IP:ip addr
    • 测试外网:ping -c 4 8.8.8.8
    • 测试域名:ping -c 4 www.baidu.com
    • 配置 DNS(如解析异常):编辑 /etc/resolv.conf,添加 nameserver 8.8.8.8nameserver 8.8.4.4
  • 管理防火墙(CentOS 7/8 通常使用 firewalld):
    • 查看状态:sudo systemctl status firewalld
    • 开放端口(示例为 8080):sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
    • 重新加载:sudo firewall-cmd --reload
    • 如需临时禁用防火墙仅用于排查(不推荐生产):sudo systemctl stop firewalld
      以上步骤确保服务器具备基础网络连通并放通 Jenkins 访问端口。

二 配置 Jenkins 监听地址与端口

  • 编辑主配置文件 /etc/sysconfig/jenkins,常用参数:
    • 设置端口:JENKINS_PORT="8080"(或改为如 8000/8899 等未被占用的端口)
    • 允许远程访问:设置 JENKINS_LISTEN_ADDRESS="0.0.0.0"(或确保未限制为 127.0.0.1)
    • 可选:自定义家目录 JENKINS_HOME、运行用户 JENKINS_USER
  • 使配置生效并重启:
    • sudo systemctl restart jenkins
    • sudo systemctl enable jenkins
  • 验证监听端口:
    • sudo ss -lntp | grep :8080(或 netstat -ntlp | grep :8080
      上述方法通过配置文件与系统服务完成端口与监听地址设置,并可用 ss/netstat 验证。

三 可选 反向代理与 HTTPS 配置

  • Nginx 反向代理示例(HTTP,端口 808080):
    • 安装: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
    • 防火墙放通 80:sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --reload
  • 启用 HTTPS(两种方式)
    • 方式 A(推荐,由反向代理终止 TLS):为 Nginx 配置证书(如 Let’s Encrypt),对外提供 443,后端仍连 8080
    • 方式 B(Jenkins 内置 HTTPS,端口 8443):
      • 生成 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
        
      • 配置 systemd 覆盖(创建目录与文件):
        sudo mkdir -p /etc/systemd/system/jenkins.service.d
        cat >/etc/systemd/system/jenkins.service.d/override.conf <<'EOF'
        [Service]
        Environment="JENKINS_HTTPS_PORT=8443"
        Environment="JENKINS_HTTPS_KEYSTORE=/var/lib/jenkins/jenkins.p12"
        Environment="JENKINS_HTTPS_KEYSTORE_PASSWORD=YourPassword"
        EOF
        
      • 重新加载并重启:
        sudo systemctl daemon-reload
        sudo systemctl restart jenkins
        
      • 防火墙放通 8443:sudo firewall-cmd --permanent --add-port=8443/tcp && sudo firewall-cmd --reload
        以上提供通过 Nginx 反向代理与 Jenkins 内置 HTTPS 两种常见做法,可按安全与运维策略选择。

四 常见问题排查

  • 端口冲突:检查是否被占用并更换端口
    • sudo ss -lntp | grep :8080netstat -ntlp | grep :8080
    • 修改 /etc/sysconfig/jenkinsJENKINS_PORT 后重启服务
  • 无法远程访问:
    • 确认监听地址为 0.0.0.0 而非 127.0.0.1
    • 核对防火墙与云安全组已放通对应端口(如 8080/80/443/8443
  • 域名或外网访问异常:
    • 检查 /etc/resolv.confDNS 配置
    • 使用 pingcurl 验证连通与响应
  • 日志定位:
    • 查看 Jenkins 日志:sudo tail -f /var/log/jenkins/jenkins.log
      以上步骤覆盖端口冲突、访问受限与 DNS 解析等高频问题,配合日志可快速定位。

0