Jenkins 部署
一句话版:Jenkins 是代码的「自动流水线工坊」——代码一提交,构建、测试、发 布它自动干;内网云隧道再给工坊开扇公网大门,人在外面也能随时看构建结果。
前置:先有隧道,再跑 Jenkins。 先到内网云 Web 控制台开通你的隧道(域名访问或端口访问都行),拿到属于你的公网地址(域名或
域名:端口)。下面命令里的账号、节点、端口,都以你控制台里隧道显示的信息为准,不要照抄示例。
一、环境准备
- 一台 Linux 服务器(Debian / Ubuntu 系为例),建议至少 2 核 4G;
- Java:Jenkins 需要 Java 运行环境,请按官方 Java 支持政策安装受支持版本(当前官方推荐 Java 21);
- 已装好 Git、Maven 等构建工具(按你的项目需要);
- 一个已开通的内网云隧道(公网地址就来自它)。
二、安装 Jenkins(Debian/Ubuntu 官方仓库)
Jenkins 官方 Debian 仓库目前是
pkg.jenkins.io/debian-stable(长期支持版 LTS)。下面用官方推荐的 keyring 方式添加仓库(老式apt-key已被官方废弃,不要再用了)。安装命令以 Jenkins 官方 Linux 安装文档 为准。
# 1. 先装 Java(官方建议先装 Java,再装 Jenkins)
sudo apt-get update
sudo apt-get install -y fontconfig openjdk-21-jre
# 注:Debian 12 及更早系统仓库里可能没有 openjdk-21,
# 可到 Adoptium 官网下载安装对应版本,或直接用系统自带的受支持 Java
# 2. 下载官方签名密钥,存到 /usr/share/keyrings/
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2026.key
# 3. 添加官方软件源
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/" | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
# 4. 更新并安装 Jenkins
sudo apt-get update
sudo apt-get install -y jenkins
# 5. 启动并设置开机自启
sudo systemctl enable --now jenkins
sudo systemctl status jenkins
安装完成后 Jenkins 默认监听 8080 端口。如需改端口,请参考官方文档修改 systemd 配置后重启服务。
三、初始化配置向导
- 本机先访问
http://127.0.0.1:8080确认 Jenkins 已起来; - 查看初始管理员密码:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- 按向导选择「安装推荐的插件」;
- 创建你的第一个管理员账号;
- 实例 URL 暂时可填
http://127.0.0.1:8080,等隧道建好后改成你的公网地址。
四、用 nssh 把 Jenkins 发布到公网
4.1 下载 nssh 客户端
从 内网云客户端下载页 下载对应系统的 nssh 客户端,放到服务器上并赋予执行权限。下载安装细节见 nssh 部署教程。
4.2 建立隧道
把本机的 8080 端口映射到你隧道的公网入口(示例用公网 80 端口做域名访问;如果你的隧道是端口访问类型,把 80 换成 平台分配给你的公网端口即可):
# 前台跑一次,看到 Tunnel established 说明通了
nssh -R 80:127.0.0.1:8080 <你的用户名>@<你的节点地址> -p 22 --passwd <你的密码>
# 确认没问题后,改用守护进程模式后台运行(推荐)
nssh --daemon -R 80:127.0.0.1:8080 <你的用户名>@<你的节点地址> -p 22 --passwd <你的密码>
参数含义:
| 参数 | 说明 |
|---|---|
--daemon | 守护进程模式,后台运行 + 断线自动重连 |
-R 80:127.0.0.1:8080 | 公网端口 80 → 本机 127.0.0.1:8080(Jenkins) |
<你的用户名>@<你的节点地址> | 你的内网云账号与节点,见控制台 |
-p 22 | SSH 端口(以控制台为准) |
--passwd | 你的 SSH 密码 |
4.3 验证并设置 Jenkins 公网地址
nssh --list看隧道是否 online;- 用浏览器打开你的公网地址(域名或
域名:端口),应能看到 Jenkins 登录页; - 到 Jenkins「系统管理 → 系统配置」把 Jenkins URL 改成你的公网地址,这样构建通知里的链接才是外网能点开的。
五、使用建议
- Pipeline 流水线:用 Jenkinsfile 定义构建流程,实现持续集成 / 持续部署;
- 触发构建:配置 Git 仓库的 Webhook,代码提交后自动构建;也可设定时构建;
- 构建通知:配置邮件通知,或直接用 Blue Ocean 看构建状态;
- 安全配置:创建独立账号并做权限管理,保留 CSRF 保护,定期备份
/var/lib/jenkins。
六、常见问题
| 问题 | 排查 |
|---|---|
| Jenkins 启动失败 | systemctl status jenkins 看日志,重点检查 Java 版本是否受支持、8080 是否被占用 |
| 构建失败 | 看构建日志,确认 Maven/Git 等构建工具已正确配置 |
| 公网打不开 | nssh --list 看隧道状态;用前台模式跑一次看日志;确认你的公网入口端口与命令里的端口一致 |
记住内网云:Jenkins 是条流水线,代码提交自动干;隧道把门开到公网,构建状态随时看。