JumpServer 离线部署:内网服务器选对 2 条路线,少走一周弯路
发布时间:2026/9/3 12:07:09
分类:文化教育
浏览:1234

JumpServer 离线部署内网服务器选对 2 条路线少走一周弯路【免费下载链接】jumpserverJumpServer is an open-source Privileged Access Management (PAM) platform that provides DevOps and IT teams with on-demand and secure access to SSH, RDP, Kubernetes, Database and RemoteApp endpoints through a web browser.项目地址: https://gitcode.com/GitHub_Trending/ju/jumpserver服务器在内网出不去网JumpServer 却必须装上去先别急着敲命令花 30 秒做个决策目标机能装 Docker就走镜像搬迁路线是台裸机老系统就走原生依赖移植路线。这套 JumpServer 离线部署打法下面分开讲清楚。一、先选路线再动手 选错路线的代价比选错命令大得多。两条路各有脾气先看这张对比表对比维度镜像搬迁法Docker原生依赖移植法适用场景目标机可装 Docker交付环境相对标准无 Docker、老系统、有 OS 基线管控的内网准备成本联网机 build save 一次产物 1~2GB 镜像包系统包、Python 包两轮下载依赖包准备工作量更大出错回滚难度docker rm后重新 load 镜像十分钟级依赖缺一个就要回联网机补一轮半天起步一句话判断能容忍 2GB 文件传输且目标机够新优先镜像搬迁剩下的是硬骨头进路线二。二、路线一Docker 离线镜像三步走2.1 联网机把镜像造出来并封存在联网机上克隆仓库后用项目自带的构建脚本打镜像再导成 tar。版本参数自己按 pyproject.toml 里的当前版本填# utils/build_docker.sh 需要传入版本号随后导出离线镜像 sh utils/build_docker.sh 4.0.0 docker save jumpserver/jumpserver:4.0.0 -o jumpserver-4.0.0.tar sha256sum jumpserver-4.0.0.tar记下这个 sha256后面验用。2.2 介质传输别省这一步校验镜像包走硬盘、U 盘或内网文件服务器都行落地后第一件事是sha256sum对一遍。大文件传断了不报错启动时才崩排查起来最费劲。2.3 离线机加载并启动把 tar 和一份改好的config.yml数据库指向内网库放到目标机加载镜像后起容器docker load -i jumpserver-4.0.0.tar docker run -d --name jumpserver -p 80:80 \ -v /data/jumpserver/config.yml:/opt/jumpserver/config.yml \ -v /data/jumpserver/data:/opt/jumpserver/data \ jumpserver/jumpserver:4.0.0注意挂载的config.yml里SECRET_KEY和BOOTSTRAP_TOKEN不能留空这是新手最常踩的第一颗雷。三、路线二原生依赖移植四层递进先说个关键前提下载依赖的联网机最好和目标机同发行版、同大版本、同 CPU 架构。因为无论是.deb、.rpm还是.whl本质都是预编译产物里面写死了对 glibc、库版本的依赖。在 Ubuntu 22.04 上下的包塞给 CentOS 7要么装不上要么运行时报GLIBC_2.xx not found。省掉这一步后面全是坑。3.1 系统层包按清单一次下全系统依赖清单直接维护在 requirements/deb_pkg.sh 里RHEL 系看同目录的 rpm_pkg.sh照抄包名到联网机下载离线机上批量安装# 联网机与目标机同版本系统下载不安装 apt-get download g make iputils-ping libpq-dev libffi-dev libldap2-dev \ libsasl2-dev openssh-client sshpass pkg-config libxml2-dev \ libxmlsec1-dev libxmlsec1-openssl libaio-dev freetds-dev freerdp2-dev # 离线机dpkg -i 安装全部 deb 包RHEL 系则用yumdownloader --resolve把清单下全createrepo建本地源再装原理相同。3.2 Python 层包锁版本整仓打包项目依赖版本固定在 pyproject.toml 里先导出再下载保证离线装的就是锁定的那套# 联网机导出清单并下载全部 wheel uv export --frozen requirements.txt pip download -r requirements.txt -d ./wheelhouse # 离线机离线安装 pip install --no-index --find-links./wheelhouse -r requirements.txt--no-index是灵魂它保证 pip 不偷偷去访问外网。3.3 配置与初始化改三个点跑两条命令数据库支持 sqlite、MySQL、PostgreSQL按 config_example.yml 的注释改即可重点填SECRET_KEY、BOOTSTRAP_TOKEN和数据库四件套cp config_example.yml config.yml python apps/manage.py migrate python apps/manage.py createsuperuser3.4 服务托管先跑通再谈规范先用前台方式确认能起来把报错看明白nohup python jms start all /var/log/jms.log 21 稳定后写个 systemd unitExecStart指向python jms start allRestartalways参考 entrypoint.sh 里的启动逻辑即可不必另造轮子。四、踩坑排查三类高频故障依赖缺失现象pip install报No matching distribution found或启动报GLIBC_xx not found。 原因下载机和目标机版本/架构不一致或 wheelhouse 传丢文件。 解法核对两侧uname -m和系统版本重下不一致的那一层。数据库未就绪现象服务反复重启日志刷connection refused或认证失败。 原因内网库没起、端口没放通或 config.yml 密码填错。 解法在应用机上psql/mysql直连一次通了再回头查配置。服务启动失败现象进程秒退80 端口连不上。 原因端口被占用或SECRET_KEY为空。 解法看/var/log/jms.log最后一行报错ss -lntp查端口占用。五、部署完成后5 条自检清单浏览器能打开登录页才算真的部署完成内网机器curl能通 80 端口页面非空白config.yml中 SECRET_KEY、BOOTSTRAP_TOKEN 已填且已保密管理员账号可登录能创建资产日志里没有持续刷出的 ERROR数据库账号最小权限且已纳入备份细节和进阶配置参考 docs/README.md 里指向的官方文档入口按版本对号入座就行。部署这种事路线选对后面都是体力活。【免费下载链接】jumpserverJumpServer is an open-source Privileged Access Management (PAM) platform that provides DevOps and IT teams with on-demand and secure access to SSH, RDP, Kubernetes, Database and RemoteApp endpoints through a web browser.项目地址: https://gitcode.com/GitHub_Trending/ju/jumpserver创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考