☰
Jenkins插件下载慢?国内镜像源对比与配置教程
2026/10/2 7:40:50 网站建设 项目流程

先问一句:你是不是也被Jenkins插件下载折磨过?点开“系统管理 → 插件管理”,页面卡在“正在检查最新版本”半天不动,装个插件转圈转到怀疑人生,最后要么等个五分钟超时,要么直接报错让你重试。这问题在咱们国内团队里太普遍了,尤其是刚刚搭好Jenkins环境、急着补一堆Git、构建、通知插件的时候,体验几乎可以用“劝退”来形容。

这篇文章我就用实际经验和踩坑记录,把Jenkins插件下载慢这事彻底捋清楚。重点会放在国内三种主流镜像源——清华源、华为源、腾讯源的对比和配置方法上,照着操作三分钟就能搞定,配置完装插件的速度和本地下载差不多。无论你是刚入门的小白,还是在公司维护CI/CD环境的运维,这篇都值得看完再动手。

1. 先把问题说清楚:为什么Jenkins插件下载总是卡在“进度条不动”

1.1 插件下载慢的真实原因

Jenkins本体是一个开源自动化服务器,它的插件生态非常庞大,里面大多数插件都托管在境外服务器上。默认情况下,Jenkins的插件管理功能会从官方源拉取插件列表和插件包,这个官方源的下载速度在咱们这边经常是几KB每秒甚至直接超时。

很多人在这一步容易有个误解:觉得只要把“插件管理”里的更新站点地址换成国内镜像就行了。其实插件下载这个过程是分两段的:

  • 第一段:Jenkins启动时会访问更新站点,获取一个叫update-center.json的索引文件。这个文件不大,但它是所有插件信息的“目录”。
  • 第二段:你在插件管理页面勾选插件并点击安装后,Jenkins会根据索引文件里的地址去真实下载.hpi插件包,这才是最慢的一环。

官方默认的更新站点是https://updates.jenkins.io/update-center.json,插件包则从get.jenkins.io之类的地址拉取。这两个域名在国内的访问质量都不稳定。而国内镜像源做的事情,就是把索引文件和插件包都同步一份放到国内服务器上,你只要告诉Jenkins去离你最近的地方取货,速度自然就上来了。

1.2 只改插件镜像还不够,更新源才是关键

还有个细节容易被忽视:Jenkins从某个版本开始,即使你改了更新站点地址,插件列表可能还是来自官方同一个CDN。这是因为更新站点在下发update-center.json时,会在文件里面给你“动态拼接”出插件包的下载地址。

所以,如果镜像是“不完整的静态镜像”,可能会出现一个奇葩现象:插件列表加载快了,但实际下载插件时又跳回境外地址。这也是为什么我们选镜像源时,不能只看它能不能访问,还要看它是不是把插件真正的二进制包也做了同步。这个后面的对比环节会重点验证。

提示:改镜像源之前,最好先确认一下你自己Jenkins的版本,因为不同大版本的插件兼容规则不太一样。虽然镜像源一般不做版本限制,但旧版Jenkins(比如2.2xx以下)在加载新版索引时偶尔会有解析问题,这种情况我放到第四章单独说。

2. 国内主流镜像源摸底:清华、华为、腾讯到底选哪个

2.1 清华源——老牌稳定,但版本策略要留意

清华大学开源软件镜像站(TUNA)是国内用得最久的一批开源镜像之一。它同步了海量开源项目,Jenkins仓库也一直在维护,地址是https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/。

它的优点是稳定,带宽和同步频率都有保障。但有个细节我得提醒你:清华源的Jenkins仓库,默认情况下只保留近期版本的插件文件,历史版本会被清理掉。什么意思呢?如果你家Jenkins版本比较旧,需要的插件版本也偏老,那么清华源上可能已经找不到对应的.hpi文件,安装时就会提示404 Not Found。

实际操作时,如果你用的是当前主流版本(Jenkins 2.6xx以上),清华源基本没问题,速度快且省心。如果你的生产环境还是两三年前的版本,建议先看一眼源目录里有没有匹配的版本,或者干脆用华为源、腾讯源这类由云厂商维护的完整镜像。

2.2 华为源——云厂商运维规范,响应快

华为云的开源镜像站上线时间也不短了,Jenkins仓库地址是https://mirrors.huaweicloud.com/jenkins/updates/。

我用下来最大的感受是“规整”。华为源的目录结构很清晰,updates/下面直接就是update-center.json和相关配置文件,插件归档文件也很全。而且因为是云厂商在维护,服务器带宽比较高,下载速度在多数网络条件下都能跑满。

还有一点比较加分:华为源支持HTTPS,证书是正规签发的,Jenkins在访问时不会提示证书问题。有些人可能会问,这有什么好单独说的?你如果试过某些个人维护的镜像源,就知道自签名证书或者镜像站证书过期能在日志里刷出多少报错。

2.3 腾讯源——更新频率不错,适合国内团队

腾讯云的镜像站起步比清华晚,但Jenkins仓库同样齐全,地址是https://mirrors.cloud.tencent.com/jenkins/updates/。

在我对比测试中,腾讯源的更新频率是三家里面比较及时的,插件列表和官方基本能保持在同一个版本水平线上。这意味着你装新插件时,不太会遇到“官方源已经更新、镜像源还没同步”的尴尬情况。

不过腾讯源的根路径下文件比较多,如果你第一次找Jenkins目录,别走错层级。正确路径是进入镜像站后找到jenkins目录,再进入updates子目录,这才是配置时需要用到的地址。

2.4 三个源横向对比

光说感受不够直观,我把三个源的地址和关键差异整理成了一张表,方便你按自己的环境选型:

镜像源更新站点地址优点注意事项
清华源https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/老牌稳定,带宽充足历史版本可能被清理,旧版Jenkins需注意
华为源https://mirrors.huaweicloud.com/jenkins/updates/目录规整,同步完整,HTTPS正常更新频率不如腾讯源那么激进
腾讯源https://mirrors.cloud.tencent.com/jenkins/updates/更新及时,公司内网访问快路径层级稍深,易找错

一句话总结:没有绝对的最好,按需选。新版本Jenkins三个源都能胜任,追求稳定选清华,追求完整选华为,追求新插件及时性选腾讯。我自己在公司环境用的是腾讯源,个人本地试验机用清华源,都没出过大问题。

3. 3分钟实操:把Jenkins插件下载切到国内镜像

3.1 方式一:Web界面修改升级站点URL(最常用)

这是对普通用户最友好的办法,完全不需要动服务器文件,全程在浏览器里操作。

进入Jenkins首页,依次点击左侧菜单的“系统管理” → “插件管理”。在插件管理页面顶部有几个选项卡,切到“高级”页签,往下拉,找到“升级站点”这个区域。你会看到一个URL输入框,默认填的是https://updates.jenkins.io/update-center.json。

把这里替换成你选好的国内镜像地址。注意格式,要在结尾加上/update-center.json。比如用华为源,完整的地址是:

https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

清华源对应:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

腾讯源对应:

https://mirrors.cloud.tencent.com/jenkins/updates/update-center.json

填完以后点“提交”或“检查”,接着回到“可选插件”选项卡,你会发现插件列表加载速度明显变快。勾选你需要的插件,点“立即安装”,剩余时间也会从“未知”变成具体的分钟数,下载速度肉眼可见地起来了。

3.2 方式二:直接改配置文件(批量、镜像部署场景)

如果你要管理的Jenkins不止一台,比如公司里搭了好几套环境,那在Web界面一个个点就太慢了。这时候直接改配置文件效率最高,而且可以配合自动化工具统一分发。

Jenkins的配置数据都在它的JENKINS_HOME目录下,默认地址一般是/var/lib/jenkins(Linux包安装方式)。打开这个目录,找到hudson.model.UpdateCenter.xml,文件内容大概长这样:

<?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://updates.jenkins.io/update-center.json</url> </site> </sites>

把url标签里的地址替换成国内镜像,保存文件,然后重启Jenkins服务:

sudo systemctl restart jenkins

重启之后,插件管理页面读取的就是新的镜像源了。这里有个小坑:改完配置后不重启,页面可能还显示旧地址,因为Jenkins在启动时会把这个XML文件的内容加载到内存里,页面展示的是内存中的值,只有重启才生效。

3.3 方式三:Jenkins初始化阶段用脚本指定镜像源

如果你是通过Docker来跑Jenkins,或者想在大规模初始化时批量指定镜像源,手改XML和页面都显得落后了。这时候推荐用Groovy脚本方式。

官方安装的jenkins/jenkins镜像,有一个初始化目录/usr/share/jenkins/ref/init.groovy.d/。你可以往这个目录里丢一个Groovy脚本,容器首次启动时会自动执行。脚本内容如下:

import jenkins.model.Jenkins import hudson.model.UpdateCenter def instance = Jenkins.get() def uc = instance.getUpdateCenter() def site = new hudson.model.UpdateSite("default", "https://mirrors.cloud.tencent.com/jenkins/updates/update-center.json") uc.getSites().clear() uc.getSites().add(site) instance.save()

构建镜像时,把这个脚本挂载或复制进初始化目录:

COPY set-mirror.groovy /usr/share/jenkins/ref/init.groovy.d/set-mirror.groovy

容器起来以后,插件源就是国内镜像了。这种方式的好处是“开箱即用”,后面无论重新创建多少次容器,不用再手动配镜像,特别适合用Docker Compose或Kubernetes部署Jenkins的团队。

3.4 配置完成后记得做的两件事

换完源并不代表万事大吉,有两次我在帮同事排查速度问题时,发现他们换完源但缓存还是旧的,搞了半天才明白是漏了下面这一步。

第一件事,清掉Jenkins的更新站点缓存。插件管理页面读取过一次update-center.json后,Jenkins会在工作目录下生成一个缓存文件,位置一般在JENKINS_HOME/updates/default.json。如果你换源后没清缓存,页面展示的插件版本可能还是上家的内容,甚至下载时依旧走旧地址。建议直接把这个目录删掉:

rm -rf /var/lib/jenkins/updates/*

重新加载插件管理页面后,Jenkins会重新去新源拉取索引。

第二件事,装完插件一定要重启Jenkins。镜像源加速帮的是“插件文件下载”这一步,但Jenkins的插件本质上是一堆Java类库和资源,必须在Jenkins进程重启后才能真正加载。安装页面会有“安装完成后重启”的选项,建议勾上,不然你会发现插件“装好了”却找不到入口。

4. 镜像配置后的常见问题与排查心得

4.1 常见故障速查表

换源不总是顺风顺水的,我在多个环境里实操下来,遇到过下面这些高频问题,整理成一个速查表给你参考:

症状可能原因解决办法
插件列表加载还是慢没清updates缓存删除JENKINS_HOME/updates后重试
安装插件提示404镜像源已清理旧版本插件换成华为源或官方源找版本
提交URL后页面报错填了镜像根路径,少了update-center.json确认URL以/update-center.json结尾
HTTPS证书报错镜像站证书不完整,或用了个人源改用三个大厂镜像源,证书合规
Jenkins启动后插件源又变回官方修改未生效,配置文件权限或路径不对检查JENKINS_HOME实际路径,重启服务
镜像源本身访问超时公司网络出方向限制尝试另一个镜像源,或走离线安装兜底

4.2 换源后仍然下载失败的三种情况

先泼一盆冷水:换源不是银弹。有几次即便我把源换成了国内镜像,插件下载依然失败,后来复盘发现是下面这三种场景:

第一种,镜像源同步延迟。虽然大厂镜像站有自动化同步,但官方刚发布一个插件新版本,镜像站可能还没拉过去。这时候如果你勾选了旧版本插件,恰好镜像源又只保留了最新版,那么就会出现列表里能看到、下载时却404的尴尬。解决办法是等几个小时候再试,或者直接用官方源装这一个插件。

第二种,公司防火墙拦截。有些公司的网络安全策略比较严格,内部机器只允许访问白名单域名。这时候任何外网镜像都白搭,你在页面上能看到列表,但下载请求被防火墙拦住了。这类环境建议走离线安装,把插件.hpi文件传到服务器上用,具体操作下面单独说。

第三种,Jenkins工作目录磁盘被占满。插件的解压和缓存都会占用磁盘空间,如果JENKINS_HOME所在分区满了,安装会报错,但很多人第一反应以为是网络问题。检查办法很简单:看Jenkins日志里有没有java.io.IOException: No space left on device,有就是磁盘问题,跟镜像源无关。

4.3 补充:离线插件安装的兜底方案

最后我再分享一个兜底技能:离线安装插件。这个方案不是用来替代镜像源的,而是当镜像源、官方源都不好使时的底牌。

先在一台能正常访问网络(或者能访问镜像源)的机器上,找到插件对应的.hpi文件。可以从镜像源目录直接下载,比如华为源里插件包一般都放在updates目录旁边的plugins目录下,按插件名称找:

https://mirrors.huaweicloud.com/jenkins/plugins/git/xxx.hpi

如果镜像源没有独立的插件包目录,也可以从官方插件市场页面下载,或者在一台已经装好插件的Jenkins里,到JENKINS_HOME/plugins目录把对应.hpi文件复制出来。

然后把下载到的.hpi文件上传到目标服务器。注意不要传到工作目录的plugins文件夹就算完事,那样Jenkins扫描不到,需要在页面里操作:进入“系统管理 → 插件管理 → 高级”,找到“上传插件”区域,选择文件上传。上传后Jenkins会自动安装并提示重启,重启后插件就生效了。

我这里有个实际操作建议:平时维护Jenkins的同事,最好在本地留一份常用插件的离线包存档,比如Git、Pipeline、Kubernetes、Blue Ocean这些重度依赖的插件。镜像源偶尔抽风或者新环境初始化时,这份存档能救急。

根据我个人经验,配置国内镜像源虽然只能解决插件下载这一环,但这一环卡住的概率占了Jenkins日常使用中七成以上。把这篇文章里的方法都试一遍,基本能告别“一直转圈”的痛苦。后续你如果还遇到其他插件相关的奇怪问题,欢迎在评论区留言,我看到会尽量回复。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询