> 技术文档 > 【Linux】jumpserver开源堡垒机部署_jumpserver部署教程

【Linux】jumpserver开源堡垒机部署_jumpserver部署教程


JumpServer 安装部署指南

本文档详细记录了 JumpServer 安装部署的过程、核心脚本功能说明以及后续管理使用提示,方便运维人员快速查阅和二次安装。


1. 前提条件

  • 操作系统要求:
    仅支持 Linux 系统,不支持 Darwin(macOS)。脚本内对 OS 类型进行了判断,若检测为 Darwin,则会中止执行。

  • 必备工具:
    脚本会自动检测并安装以下工具:

    • curl
    • wget
    • tar
    • iptables
      若系统中未安装上述命令,会尝试根据所使用的包管理器(dnf、yum、apt、zypper、apk)自动安装,不存在则报错退出。
  • 网络要求:
    确保服务器能够访问外部网络,以便下载脚本和安装包


2. 脚本说明与准备工作

2.1 下载官方安装脚本

在 JumpServer 服务器上执行以下命令,下载官方安装脚本并保存为 install.sh

# 下载官方脚本文件curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh >> ./install.sh
lscat install.sh

2.2 脚本结构解析

定义变量
  • VERSION
    当前版本号(例如 v4.8.1)。

  • DOWNLOAD_URL
    下载安装包的基础 URL。

安装依赖函数:install_soft

根据系统内置的包管理器(dnf、yum、apt、zypper、apk),检测并安装缺失的软件包;同时针对 apk 的情况,额外安装 gettext-devpython3,确保依赖完整。

依赖检查函数:prepare_install

遍历检查所需的工具(curl、wget、tar、iptables),若不存在则调用 install_soft 自动安装。

获取安装器函数:get_installer
  • 进入 /opt 目录,在该目录下创建或使用 jumpserver-installer-${VERSION} 文件夹。
  • 使用 wget 下载相应版本的安装包(tar.gz 格式),并在 60 秒内限时下载。
  • 下载成功后解压安装包至 /opt 目录,解压失败则清理并退出提示错误。
配置与启动函数:config_installer
  • 进入安装包所在目录 /opt/jumpserver-installer-${VERSION}
  • 修改配置示例文件,将 # DOCKER_IMAGE_MIRROR=1 替换为 DOCKER_IMAGE_MIRROR=1,启用 Docker 镜像加速。
  • 依次调用 ./jmsctl.sh install 进行安装配置,再调用 ./jmsctl.sh start 启动服务。
主程序 main
  • 判断是否在 Darwin 系统下运行(若是则退出)。
  • 执行依赖检查、下载安装包及配置安装步骤。

脚本结构如下:

#!/usr/bin/env bashVERSION=v4.8.1DOWNLOAD_URL=https://resource.fit2cloud.comfunction install_soft() { if command -v dnf &>/dev/null; then dnf -q -y install \"$1\" elif command -v yum &>/dev/null; then yum -q -y install \"$1\" elif command -v apt &>/dev/null; then apt-get -qqy install \"$1\" elif command -v zypper &>/dev/null; then zypper -q -n install \"$1\" elif command -v apk &>/dev/null; then apk add -q \"$1\" command -v gettext &>/dev/null || { apk add -q gettext-dev python3 } else echo -e \"[\\033[31m ERROR \\033[0m] $1 command not found, Please install it first\" exit 1 fi}function prepare_install() { for i in curl wget tar iptables; do command -v $i &>/dev/null || install_soft $i done}function get_installer() { echo \"download install script to /opt/jumpserver-installer-${VERSION}\" cd /opt || exit 1 if [ ! -d \"/opt/jumpserver-installer-${VERSION}\" ]; then timeout 60 wget -qO jumpserver-installer-${VERSION}.tar.gz ${DOWNLOAD_URL}/jumpserver/installer/releases/download/${VERSION}/jumpserver-installer-${VERSION}.tar.gz || { rm -f /opt/jumpserver-installer-${VERSION}.tar.gz echo -e \"[\\033[31m ERROR \\033[0m] Failed to download jumpserver-installer-${VERSION}\" exit 1 } tar -xf /opt/jumpserver-installer-${VERSION}.tar.gz -C /opt || { rm -rf /opt/jumpserver-installer-${VERSION} echo -e \"[\\033[31m ERROR \\033[0m] Failed to unzip jumpserver-installer-${VERSION}\" exit 1 } rm -f /opt/jumpserver-installer-${VERSION}.tar.gz fi}function config_installer() { cd /opt/jumpserver-installer-${VERSION} || exit 1 sed -i \"s/# DOCKER_IMAGE_MIRROR=1/DOCKER_IMAGE_MIRROR=1/g\" /opt/jumpserver-installer-${VERSION}/config-example.txt ./jmsctl.sh install ./jmsctl.sh start}function main(){ if [[ \"${OS}\" == \'Darwin\' ]]; then echo echo \"Unsupported Operating System Error\" exit 1 fi prepare_install get_installer config_installer}main

3. 安装执行过程

3.1 执行安装脚本

运行以下命令启动安装流程:

bash install.sh

安装过程会输出相关信息,例如:

#执行安装脚本root@jumpserver:~> bash install.shdownload install script to /opt/jumpserver-installer-v4.8.1 ██╗██╗ ██╗███╗ ███╗██████╗ ███████╗███████╗██████╗ ██╗ ██╗███████╗██████╗ ██║██║ ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║ ██║██╔════╝██╔══██╗ ██║██║ ██║██╔████╔██║██████╔╝███████╗█████╗ ██████╔╝██║ ██║█████╗ ██████╔╝ ██ ██║██║ ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██╔══╝ ██╔══██╗ ╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║ ███████║███████╗██║ ██║ ╚████╔╝ ███████╗██║ ██║ ╚════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝ Version: v4.8.1-ce1. Check Configuration FilePath to Configuration file: /opt/jumpserver/config/opt/jumpserver/config/config.txt []/opt/jumpserver/config/loki/promtail.yml []/opt/jumpserver/config/nginx/cert/server.crt []/opt/jumpserver/config/nginx/cert/server.key []

安装脚本会引导完成多个配置步骤:

  1. 配置私钥(SECRETE_KEY 与 BOOTSTRAP_TOKEN)
    会自动生成后显示在提示中,直接按回车确认(如果不需要自定义修改)。

  2. 配置持久化目录

    • 默认目录为 /data/jumpserver
    • 如需自定义,建议选择磁盘空间充足的盘符,但注意:安装后不可更改!
  3. 数据库配置

    • 是否使用外部 PostgreSQL(默认内置)
  4. Redis 配置

    • 配置 Redis 引擎模式(redis/sentinel)
    • 是否使用外部 Redis:若选择外部,则需提供服务器 IP、端口和密码
  5. 外部访问配置

    • 是否修改默认的外部访问端口(默认端口 80)
  6. 初始化数据库
    安装过程中会启动容器并完成数据库初始化、静态文件收集和数据迁移。

>>> Install and Configure JumpServer1. Configure Private KeySECRETE_KEY: 3e1e8dea32665fe01eed82a44b52a90556c0a7f61cf91a79BOOTSTRAP_TOKEN: zZEHIGACppkAaC123RED0ywpcomplete2. Configure Persistent DirectoryDo you need custom persistent store, will use the default directory /data/jumpserver? (y/n) (default n): yTo modify the persistent directory such as logs video, you can select your largest disk and create a directory in it, such as /data/jumpserverNote: you can not change it after installation, otherwise the database may be lostFilesystem Size Used Avail Use% Mounted on/dev/mapper/ubuntu--vg-ubuntu--lv 96G 11G 81G 12% /Persistent storage directory (default /data/jumpserver):complete3. Configure DBDo you want to use external PostgreSQL? (y/n) (default n):complete4. Configure RedisPlease enter Redis Engine? (redis/sentinel) (default redis):Do you want to use external Redis? (y/n) (default n): yPlease enter Redis server IP (default redis):Please enter Redis server port (default 6379):Please enter Redis password (no default):complete5. Configure External AccessDo you need to customize the JumpServer external port? (y/n) (default n):complete6. Init JumpServer Database[+] Running 4/4 ✔ Network jms_net  Created 0.1s ✔ Container jms_redis Started 0.8s ✔ Container jms_core Started 0.8s ✔ Container jms_postgresql Started 0.8s

4. 部署完成后的使用

安装流程结束后,会显示最终的账号信息和管理命令,示例如下:

4.1 默认账号信息

  • Web 访问地址:
    http://192.168.200.200:80

  • 默认账号:

    • 用户名:admin
    • 密码:ChangeMe

登录后如下
【Linux】jumpserver开源堡垒机部署_jumpserver部署教程

4.2 常用管理命令

所有容器和服务均由 /opt/jumpserver-installer-v4.8.1 下的 jmsctl.sh 脚本管理,常用命令包括:

# 启动 JumpServercd /opt/jumpserver-installer-v4.8.1./jmsctl.sh start# 停止 JumpServer./jmsctl.sh stop# 重启 JumpServer./jmsctl.sh restart# 数据备份./jmsctl.sh backup# 升级 JumpServer./jmsctl.sh upgrade# 查看更多命令帮助./jmsctl.sh --help

具体使用

可以参考我写的一篇openstack+jumpserver的文章,里面有介绍jumpserver的简单使用
【Project】基于OpenStack的公司云平台建设与管理方案

4.3 更多信息

  • 官方网站:
    https://www.jumpserver.org/

  • 文档:
    https://docs.jumpserver.org/