【Linux】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
ls
cat 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.1
DOWNLOAD_URL=https://resource.fit2cloud.comfunction install_soft() {if command -v dnf &>/dev/null; thendnf -q -y install "$1"elif command -v yum &>/dev/null; thenyum -q -y install "$1"elif command -v apt &>/dev/null; thenapt-get -qqy install "$1"elif command -v zypper &>/dev/null; thenzypper -q -n install "$1"elif command -v apk &>/dev/null; thenapk add -q "$1"command -v gettext &>/dev/null || {apk add -q gettext-dev python3}elseecho -e "[\033[31m ERROR \033[0m] $1 command not found, Please install it first"exit 1fi
}function prepare_install() {for i in curl wget tar iptables; docommand -v $i &>/dev/null || install_soft $idone
}function get_installer() {echo "download install script to /opt/jumpserver-installer-${VERSION}"cd /opt || exit 1if [ ! -d "/opt/jumpserver-installer-${VERSION}" ]; thentimeout 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.gzecho -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.gzfi
}function config_installer() {cd /opt/jumpserver-installer-${VERSION} || exit 1sed -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' ]]; thenechoecho "Unsupported Operating System Error"exit 1fiprepare_installget_installerconfig_installer
}main

3. 安裝執行過程

3.1 執行安裝腳本

運行以下命令啟動安裝流程:

bash install.sh

安裝過程會輸出相關信息,例如:

#執行安裝腳本
root@jumpserver:~> bash install.sh
download install script to /opt/jumpserver-installer-v4.8.1██╗██╗   ██╗███╗   ███╗██████╗ ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗██║██║   ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗██║██║   ██║██╔████╔██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝██   ██║██║   ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║     ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║╚════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝Version:  v4.8.1-ce1. Check Configuration File
Path 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 JumpServer
1. Configure Private Key
SECRETE_KEY:     3e1e8dea32665fe01eed82a44b52a90556c0a7f61cf91a79
BOOTSTRAP_TOKEN: zZEHIGACppkAaC123RED0ywp
complete2. Configure Persistent Directory
Do 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/jumpserver
Note: 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 DB
Do you want to use external PostgreSQL? (y/n)  (default n):
complete4. Configure Redis
Please enter Redis Engine? (redis/sentinel)  (default redis):
Do you want to use external Redis? (y/n)  (default n): y
Please enter Redis server IP (default redis):
Please enter Redis server port (default 6379):
Please enter Redis password (no default):
complete5. Configure External Access
Do 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

登錄后如下
在這里插入圖片描述

4.2 常用管理命令

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

# 啟動 JumpServer
cd /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/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76244.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76244.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76244.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

餐飲廚房開源監控安全系統的智能革命

面對日益嚴格的合規要求和消費者對衛生的信任危機,傳統人工監督已力不從心:衛生死角難發現、違規操作難追溯、安全隱患防不勝防。如何讓后廚更透明、更安全、更可信?餐飲廚房視頻安全系統橫空出世!這套系統融合實時監控與AI技術&a…

HashMap為什么擴容為原來2倍呢?

1、減少哈希碰撞 核心原因:HashMap的所有設計都依賴于數組長度為2的冪次方這一前提。 索引計算使用 (n-1)&hash ,其中 n 是數組長度當 n 是 2 的冪次方時,n-1 的二進制形式是全 1(例如,15——>111…

debian系統中文輸入法失效解決

在 Debian 9.6 上無法切換中文輸入法的問題通常與輸入法框架(如 Fcitx 或 IBus)的配置或依賴缺失有關。以下是詳細的解決步驟: 1. 安裝中文語言包 確保系統已安裝中文語言支持: sudo apt update sudo apt install locales sudo…

3DGS之光柵化

光柵化(Rasterization)是計算機圖形學中將連續的幾何圖形(如三角形、直線等)轉換為離散像素的過程,最終在屏幕上形成圖像。 一、光柵化的核心比喻 像畫家在畫布上作畫 假設你是一個畫家,要把一個3D立方體畫…

學習51單片機Day02---實驗:點亮一個LED燈

目錄 1.先看原理圖 2.思考一下(sbit的使用): 3.給0是要讓這個LED亮(LED端口設置為低電平) 4.完成的代碼 1.先看原理圖 比如我們要讓LED3亮起來,對應的是P2^2。 2.思考一下(sbit的使用&…

Redis與Lua原子操作深度解析及案例分析

一、Redis原子操作概述 Redis作為高性能的鍵值存儲系統,其原子性操作是保證數據一致性的核心機制。在Redis中,原子性指的是一個操作要么完全執行,要么完全不執行,不會出現部分執行的情況。 Redis原子性的實現原理 單線程模型&a…

深入理解 GLOG_minloglevel 與 GLOG_v:原理與使用示例

文章目錄 深入理解 GLOG_minloglevel 與 GLOG_v:原理與使用示例1. GLOG_minloglevel:最低日志等級控制2. GLOG_v:控制 VLOG() 的詳細輸出等級3. GLOG_minloglevel 與 GLOG_v 的優先級關系4. 使用示例4.1 基礎示例:不同日志等級4.2…

Cline Memory Bank 結構化文檔持久化 AI 上下文詳解

🎮 什么是 Cline Memory Bank? Memory Bank 是一個結構化文檔系統,允許 Cline 在會話之間保持上下文。它能讓 Cline 從無狀態的助手轉變為持久記憶的開發伙伴,隨著時間推移有效地“記住”項目細節。 🗡? 關鍵優勢 上…

【JavaScript】面向對象與設計模式

個人主頁:Guiat 歸屬專欄:HTML CSS JavaScript 文章目錄 1. JavaScript 中的面向對象編程1.1 對象基礎1.2 構造函數1.3 原型和原型鏈1.4 ES6 類1.5 繼承1.6 封裝 2. 創建型設計模式2.1 工廠模式2.2 單例模式2.3 建造者模式2.4 原型模式 3. 結構型設計模式…

網絡安全防護技術

邊界安全防護——防火墻 控制:在網絡連接點上建立一個安全控制點,對進出數據進行限制隔離:將需要保護的網絡與不可信任網絡進行隔離,隱藏信息并進行安全防護記錄:對進出數據進行檢查,記錄相關信息 防火墻…

Spring MVC 視圖解析器(JSP、Thymeleaf、Freemarker、 JSON/HTML、Bean)詳解

Spring MVC 視圖解析器詳解 1. 視圖解析器概述 視圖解析器(ViewResolver)是 Spring MVC 的核心組件,負責將控制器返回的視圖名稱(如 success)轉換為具體的 View 對象(如 Thymeleaf 模板或 JSP 文件&#x…

# 爬蟲技術的實現

手把手教你網絡爬蟲:從入門到實踐 一、網絡爬蟲簡介 網絡爬蟲(Web Crawler)是一種自動化獲取互聯網數據的程序,廣泛應用于搜索引擎、數據分析、市場調研等領域。通過模擬瀏覽器行為,爬蟲可以高效地從網頁中提取結構化…

【HarmonyOS 5】鴻蒙中@State的原理詳解

一、State在鴻蒙中是做什么的? State 是 HarmonyOS ArkTS 框架中用于管理組件狀態的核心裝飾器,其核心作用是實現數據驅動 UI 的響應式編程模式。通過將變量標記為 State,開發者可以確保當狀態值發生變化時,依賴該狀態的 UI 組件…

influxdb數據導出筆記

influx query ‘from(bucket: “byt-grid-data”) |> range(start: 2025-04-01T00:00:00Z, stop: 2025-04-02T23:59:59Z) |> filter(fn: > r[“_measurement”] “byt-gzsn-hsxn-sc-dcs”) |> filter(fn: > r[“_field”] “F_ACT_FZZ02_FB_O”) |> filt…

HTTP Content-Type:深入解析與應用

HTTP Content-Type:深入解析與應用 引言 在互聯網世界中,數據傳輸是至關重要的。而HTTP協議作為最常用的網絡協議之一,其在數據傳輸過程中扮演著關鍵角色。其中,HTTP Content-Type頭字段在數據傳輸中發揮著至關重要的作用。本文將深入解析HTTP Content-Type,并探討其在實…

使用SQL查詢ES數據

使用SQL查詢ES數據 32 進階:使用SQL查詢ES數據環境準備利用腳本導入測試數據 SQL學習基本查詢排序查詢過濾查詢范圍查詢分組查詢(group)分組過濾查詢(grouphaving)聚合函數統計limit查詢分頁查詢 32 進階:使用SQL查詢ES數據 環境準備 需要首先安裝ES8.…

禁止頁面滾動的方法-微信小程序

在微信小程序中,有幾種方法可以禁止頁面滾動: 一、通過頁面配置禁止滾動 在頁面的JSON配置文件中設置,此方法完全禁止頁面的滾動行為: {"disableScroll": true }二、通過 CSS 樣式禁止滾動 在頁面的WXSS文件中添加&…

用戶畫像(https://github.com/memodb-io/memobase)應用

1.下載項目的源代碼,我們要先啟動后端,用docker啟動 cd src/server cp .env.example .env cp ./api/config.yaml.example ./api/config.yaml 這里我的配置內容如下config.yaml(因為我是調用的符合openai格式的大模型,所以我沒改,如果要是別的大模型的話,需要自己再做兼容…

微信小程序生成某個具體頁面的二維碼

微信小程序,如果要生成某個具體頁面,而非首頁的二維碼,體驗和正式的生成方法如下: 1、體驗版二維碼: 管理---版本管理---修改頁面路徑,輸入具體頁面的路徑以及參數,生成的是二維碼 2、正式小程…

【今日三題】小樂樂改數字 (模擬) / 十字爆破 (預處理+模擬) / 比那名居的桃子 (滑窗 / 前綴和)

??個人主頁:小羊 ??所屬專欄:每日兩三題 很榮幸您能閱讀我的文章,誠請評論指點,歡迎歡迎 ~ 目錄 小樂樂改數字 (模擬)十字爆破 (預處理模擬)比那名居的桃子 (滑窗 / 前綴和) 小樂樂改數字 (模擬) 小樂樂改數字…