JumpServer开源堡垒机全方位部署与运维指南
2026-04-04 09:38:35作者:宣海椒Queenly
[!TIP] 本文档提供JumpServer堡垒机从环境准备到安全加固的完整实施路径,适合企业级运维团队部署特权访问管理(PAM)系统,实现对服务器、数据库等核心资源的安全管控。
一、价值定位:为什么选择JumpServer
1.1 核心功能解析
JumpServer作为开源堡垒机解决方案,提供三大核心价值:
- 集中访问控制:通过Web界面统一管理SSH、RDP、Kubernetes等多协议连接
- 完整审计体系:记录所有操作行为并支持视频回放,满足合规审计要求
- 细粒度权限管理:基于最小权限原则,实现用户-资源-操作的精准授权
1.2 技术原理专栏
JumpServer采用B/S架构设计,通过Docker容器化部署实现组件解耦。核心模块包括:
- 认证网关:处理用户身份验证与MFA多因素认证
- 资源管理:维护资产信息与权限映射关系
- 会话管理:记录并存储用户操作会话数据
- 审计引擎:分析操作日志生成合规报告
图1:JumpServer系统架构示意图,展示核心功能模块与安全防护机制
二、环境预检:系统部署前置条件
[!IMPORTANT] 环境配置直接影响系统稳定性,建议严格按照推荐配置执行,生产环境禁止使用最低配置。
2.1 硬件配置要求
| 配置类型 | CPU核心 | 内存容量 | 磁盘空间 | 适用场景 |
|---|---|---|---|---|
| 最低配置 | 2核 | 4GB | 50GB | 测试环境 |
| 推荐配置 | 4核 | 8GB | 100GB | 生产环境(50用户内) |
| 高级配置 | 8核 | 16GB | 200GB | 生产环境(100+用户) |
2.2 软件环境准备
准备阶段
- 操作系统:CentOS 7.9/Ubuntu 20.04 LTS 64位
- 依赖组件:Docker 20.10+、Docker Compose 2.0+
执行阶段
# CentOS系统依赖安装
yum update -y && yum install -y curl wget git policycoreutils openssh-server
# Ubuntu系统依赖安装
apt update && apt install -y curl wget git openssh-server ufw
验证阶段
# 检查Docker是否安装成功
docker --version
docker-compose --version
Docker version 20.10.12, build e91ed57
docker-compose version 2.12.2, build 7240ff3
2.3 网络环境配置
🔍 检查点:确认以下端口未被占用且已开放防火墙
- 80/tcp:Web服务端口
- 443/tcp:HTTPS加密端口
- 2222/tcp:SSH协议转发端口
⚠️ 注意项:生产环境建议部署在隔离网段,仅允许特定IP访问管理端口
三、多元部署:灵活选择安装方式
[!NOTE] 提供两种部署方案,快速部署适合测试与小型环境,手动部署适合定制化需求场景。
3.1 快速部署方案(推荐)
准备阶段
# 克隆项目仓库
git clone https://gitcode.com/feizhiyun/jumpserver
cd jumpserver
执行阶段
# 启动一键安装脚本
chmod +x ./utils/quick_start.sh
./utils/quick_start.sh -d /opt/jumpserver -p 8080
| 参数 | 作用 | 默认值 |
|---|---|---|
| -d | 指定安装目录 | /opt/jumpserver |
| -p | Web服务端口 | 80 |
| -h | 显示帮助信息 | - |
验证阶段
# 查看服务状态
./jmsctl.sh status
Name Command State Ports
--------------------------------------------------------------------------------------------------
jumpserver_core /opt/jumpserver/co ... Up 0.0.0.0:2222->2222/tcp,:::2222->2222/tcp
jumpserver_db docker-entrypoint.s ... Up (healthy) 3306/tcp, 33060/tcp
jumpserver_redis docker-entrypoint.s ... Up (healthy) 6379/tcp
jumpserver_web /docker-entrypoint. ... Up 0.0.0.0:80->80/tcp,:::80->80/tcp
3.2 手动部署方案
准备阶段
# 创建安装目录
mkdir -p /opt/jumpserver && cd /opt/jumpserver
# 下载安装包
wget https://download.jumpserver.org/latest/jumpserver-offline.tar.gz
tar -xf jumpserver-offline.tar.gz
执行阶段
# 初始化配置
./jmsctl.sh config
# 启动服务
./jmsctl.sh start -d
💡 技巧提示:使用./jmsctl.sh config命令可交互式配置数据库、Redis等核心参数
验证阶段
访问服务器IP地址,出现JumpServer登录界面即表示部署成功
四、运维指南:日常管理与故障处理
[!TIP] 建立规范的运维流程可显著提升系统稳定性,建议定期执行数据备份与日志清理。
4.1 服务管理命令
基本操作
# 启动服务
./jmsctl.sh start
# 停止服务
./jmsctl.sh stop
# 重启服务
./jmsctl.sh restart
状态监控
# 查看实时日志
./jmsctl.sh logs -f core
# 检查服务健康状态
./jmsctl.sh health
4.2 数据备份策略
准备阶段
创建备份目录并设置权限:
mkdir -p /data/backups/jumpserver
chmod 700 /data/backups/jumpserver
执行阶段
# 执行数据库备份
./jmsctl.sh backup_db -d /data/backups/jumpserver
# 执行配置备份
./jmsctl.sh backup_config -d /data/backups/jumpserver
验证阶段
# 检查备份文件
ls -lh /data/backups/jumpserver
-rw-r--r-- 1 root root 12M Mar 2 10:30 jumpserver_db_202603021030.sql
-rw-r--r-- 1 root root 4K Mar 2 10:30 jumpserver_config_202603021030.tar.gz
4.3 常见故障速查
故障1:服务启动失败
- 现象:执行
./jmsctl.sh start后web服务未正常启动 - 排查:查看日志
./jmsctl.sh logs web - 解决方案:检查端口占用情况,释放冲突端口或修改配置文件中的端口设置
故障2:数据库连接错误
- 现象:服务启动后提示数据库连接失败
- 排查:检查数据库容器状态
docker ps | grep jumpserver_db - 解决方案:重启数据库服务
./jmsctl.sh restart db,如仍失败检查数据库密码配置
故障3:MFA认证失败
- 现象:登录时提示验证码错误
- 排查:检查服务器时间是否与客户端同步
- 解决方案:同步系统时间
ntpdate time1.aliyun.com
五、安全加固:构建纵深防御体系
[!WARNING] 堡垒机作为安全基础设施,自身安全尤为重要,建议完成以下所有加固措施。
5.1 端口安全策略
准备阶段
规划端口访问控制策略,仅开放必要端口
执行阶段
# CentOS防火墙配置
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=2222/tcp --permanent
firewall-cmd --reload
# Ubuntu防火墙配置
ufw allow 443/tcp
ufw allow 2222/tcp
ufw enable
验证阶段
# 检查开放端口
ss -tuln
5.2 SSL证书配置
准备阶段
准备SSL证书文件(cert.pem和key.pem)
执行阶段
# 创建证书目录
mkdir -p /opt/jumpserver/config/nginx/ssl
# 复制证书文件
cp cert.pem key.pem /opt/jumpserver/config/nginx/ssl/
# 重启Web服务
./jmsctl.sh restart web
💡 技巧提示:可使用Let's Encrypt免费证书,通过certbot工具自动续期
5.3 多因素认证配置
准备阶段
确保用户已安装认证器应用(如Google Authenticator)
执行阶段
- 登录JumpServer管理界面
- 进入"个人设置" → "安全设置"
- 启用"TOTP多因素认证"
- 使用认证器扫描二维码
验证阶段
退出当前登录,重新登录时将要求输入TOTP验证码
5.4 安全审计配置
执行阶段
# 启用操作日志审计
./jmsctl.sh set LOG_LEVEL=DEBUG
./jmsctl.sh restart core
# 配置日志轮转
cp ./docs/logrotate/jumpserver /etc/logrotate.d/
⚠️ 注意项:生产环境建议将审计日志同步到专用日志服务器,防止日志被篡改
扩展阅读
- 管理员手册:docs/admin_guide.md - 详细介绍系统管理功能与最佳实践
- API开发指南:docs/api_guide.md - 提供RESTful API使用说明与示例代码
- 部署架构文档:docs/architecture.md - 介绍分布式部署方案与 scalability设计
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust098- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
项目优选
收起
deepin linux kernel
C
28
16
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
566
98
暂无描述
Dockerfile
707
4.51 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
413
339
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
958
955
Ascend Extension for PyTorch
Python
572
694
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.6 K
940
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
1.42 K
116
AI 将任意文档转换为精美可编辑的 PPTX 演示文稿 — 无需设计基础 | 包含 15 个案例、229 页内容
Python
79
5
暂无简介
Dart
951
235
