温馨提示×

centos jenkins如何设置代理

小樊
44
2026-10-17 23:49:42
栏目: 智能运维

在 CentOS 上运行的 Jenkins 设置代理,一般有 三种常见场景,你按需选择:


一、Jenkins 本身通过代理访问外网(最常用)

适用于:

  • Jenkins 服务器不能直接访问互联网
  • 插件下载、Git、Maven 等需要走代理

1. 通过 Jenkins Web 界面设置(推荐)

登录 Jenkins → Manage Jenkins → Plugins → Advanced

在 HTTP Proxy Configuration 中填写:

  • Proxy Host
  • Proxy Port
  • 如有认证:
    • Proxy UserName
    • Proxy Password

✅ 保存后,插件安装会走代理


2. 通过启动参数设置(全局 JVM 代理)

编辑 Jenkins 启动文件(systemd):

sudo vi /etc/sysconfig/jenkins

添加:

JENKINS_JAVA_OPTIONS="-Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=8080"

重启 Jenkins:

sudo systemctl restart jenkins

二、Jenkins 构建任务中使用代理(Pipeline / Shell)

适用于:

  • Git、curl、wget、Docker 拉取镜像等

1. Pipeline 中设置环境变量

pipeline {
    agent any
    environment {
        HTTP_PROXY = "http://proxy.example.com:8080"
        HTTPS_PROXY = "http://proxy.example.com:8080"
        NO_PROXY = "localhost,127.0.0.1"
    }
    stages {
        stage('Build') {
            steps {
                sh 'curl https://www.google.com'
            }
        }
    }
}

2. Shell 中临时使用

export http_proxy=http://proxy.example.com:8080
export https_proxy=http://proxy.example.com:8080

三、Jenkins Agent(节点)通过代理连接

适用于:

  • Agent 在隔离网络
  • Controller ↔ Agent 通信走代理(少见)

方式 1:Agent 启动参数

java -Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 -jar agent.jar ...

方式 2:使用 WebSocket(推荐)

Jenkins Controller 开启 WebSocket,避免代理端口问题


四、常见问题排查

✅ 测试代理是否生效:

curl -I https://updates.jenkins.io

✅ 插件仍无法下载:

  • 检查 NO_PROXY
  • 检查 HTTPS 代理是否支持 CONNECT

如果你能说明:

  • Jenkins 版本
  • 是 插件下载慢 还是 构建需要代理
  • 是否使用 Docker

我可以给你更精确的配置示例。

0 踩