
如何在 ARM 小主机上 30 分钟跑起 JumpServer 堡垒机兼容性实战指南【免费下载链接】JumpServer广受欢迎的开源堡垒机项目地址: https://gitcode.com/feizhiyun/jumpserver想用树莓派、香橙派或国产 ARM 开发板搭一套私有化堡垒机JumpServer 这个广受欢迎的开源堡垒机PAM 特权访问管理平台确实能跑在 ARM 上但直接照搬 x86 的安装思路你会被 Docker 的平台不匹配报错卡住一整天。这篇文章用一个真实踩坑故事开场带你从环境自检、方案选型到验证验收一步步把 JumpServer 社区版部署到 ARM 设备上。核心关键词JumpServer ARM 部署长尾关键词ARM 环境下的安装前置检查、ARM 堡垒机部署方案选型、JumpServer 在线安装脚本、ARM 平台兼容性验证、堡垒机容器镜像架构检查一、开场一个真实的翻车夜晚晚上十点小陈刚把一台 RK3588 的 ARM 开发板刷好 Ubuntu 22.04准备把公司的 JumpServer 堡垒机从 x86 服务器搬到这块低功耗设备上省点电费。他按照以往 x86 的习惯下载了社区版离线安装包解压后执行安装脚本。结果 Docker 直接甩了他一个脸色ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries翻译一下你要的容器镜像是给 x86_64 编译的我的 ARM 主机跑不了。小陈又试了手动docker pull各组件镜像依旧报错。折腾到凌晨他终于明白一件事不是 JumpServer 不支持 ARM而是离线包里的镜像是按 x86 打包的。换一条路问题立刻迎刃而解。如果你也正准备在 ARM 设备上部署 JumpServer别急着复制粘贴命令先花 5 分钟做下面的自检。二、ARM 环境下的安装前置检查部署前必做清单动手之前先确认硬件、系统、依赖三件事。任何一项不满足后面都会白忙。1. 硬件规格CPU 架构arm64对应 Docker 输出里的linux/arm64内存建议 ≥ 8 GB至少 4 GBJumpServer 由 Core、KoKo、Lion、Web 等多个组件组成每个都要占内存磁盘建议预留 ≥ 50 GB含镜像、数据库、录像与日志存储2. 操作系统推荐 Debian 系Ubuntu 20.04/22.04、Debian 11/12下文命令基于该系统验证也支持其他主流发行版但包管理命令需对应调整3. 依赖与网络Docker Engine ≥ 20.10老版本对多架构镜像支持不完整Docker Compose 插件docker compose version能输出版本号即可稳定的外网连接在线安装需要从镜像仓库拉取多架构镜像这点在 ARM 路线中是硬性要求网络最好能访问镜像加速器国内环境强烈建议配置否则拉取几个 GB 的镜像会非常煎熬4. 一键自检命令复制到终端执行# 查看 CPU 架构确认是 aarch64/arm64 uname -m # 查看系统版本 cat /etc/os-release | head -3 # 查看内存与磁盘 free -h df -h / # 查看 Docker 版本与平台信息 docker version --format {{.Server.Version}} docker info --format {{.Architecture}}预期结果uname -m输出aarch64docker info中Architecture输出aarch64内存不小于 4 GB。全部通过就可以进入方案选型了。三、堡垒机部署方案选型对比离线包、在线脚本还是自建编译ARM 部署有三条主流路线先看结论再决定走哪条。方案适用人群优点缺点ARM 推荐度官方离线安装包内网隔离环境、x86 用户一次性下载、离线可用镜像按 x86_64 构建ARM 上无法使用不推荐官方在线安装脚本绝大多数新手与普通运维自动识别架构、一条命令启动、组件齐全依赖外网、镜像体积较大强烈推荐自建镜像 / 源码编译有定制需求、熟悉 Docker 的进阶用户可定制、可精简组件耗时长、依赖构建工具链、维护成本高进阶可选选型建议如果只是想把 JumpServer 堡垒机跑起来直接用在线脚本如果你需要深度定制镜像内容再看下面的进阶章节。不要一上来就挑战源码编译先把基础链路走通。小提示如果你之前用离线包在 x86 机器上拉过镜像转到 ARM 设备后这些 x86 镜像不仅用不上还会占用磁盘。可以用docker image prune -a清理避免平台冲突。四、核心实操ARM 平台上用在线脚本部署 JumpServer下面按做什么 → 执行什么命令 → 预期看到什么的节奏一步步来。第 1 步安装 Docker 与 Docker Compose如果系统是全新的先装依赖sudo apt update sudo apt install -y ca-certificates curl添加 Docker 官方源并安装ARM 设备会自动匹配 arm64 版本curl -fsSL https://get.docker.com | sudo sh sudo systemctl enable --now docker预期看到docker --version正常输出版本号sudo systemctl is-active docker输出active。验证 Compose 插件docker compose version第 2 步拉取并执行 JumpServer 在线安装脚本官方在线脚本会自动检测架构脚本内部通过uname -m/ Docker 平台信息判断在 ARM 设备上会拉取 arm64 版本的各组件镜像。curl -sSL https://github.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash注意该命令是下载脚本并直接交给 bash 执行请确保网络可访问上述地址并确认脚本来源可信后再运行。预期看到终端开始拉取jumpserver/core、jumpserver/koko、jumpserver/lion、postgres、redis等镜像随后自动编排启动最终输出服务启动成功字样。第 3 步等待初始化并确认容器状态脚本完成后检查各组件容器是否都处于运行状态docker ps --format table {{.Names}}\t{{.Image}}\t{{.Status}}预期看到jms_core、jms_koko、jms_lion、jms_mysql或 postgres、jms_redis等容器全部Up。首次启动会自动执行数据库迁移和初始化可能需要几分钟耐心等待即可。第 4 步登录 Web 控制台浏览器访问http://你的ARM设备IP/看到登录页说明核心服务已就绪默认账号admin默认密码ChangeMe首次登录后系统会要求立即修改这是强制安全策略建议修改密码后立刻在系统设置 → 安全设置里调整密码策略并配置 MFA多因素认证。堡垒机管的是所有服务器账号安全配置不能省。五、验证与验收怎么确认 ARM 部署真的成功了部署不等于成功按下面三步做验收。1. 检查平台架构是否匹配docker inspect jms_core --format {{.Architecture}}预期输出arm64。如果这里显示amd64说明镜像拉错了回退检查镜像是否来自多架构仓库。2. 走通一条真实业务链路在资产管理里添加一台目标服务器建议先加一台同网段的 Linux 测试机创建系统用户并授权授权时选 SSH 协议点击Web 终端发起连接输入目标机账号密码能成功进入目标机 shell说明 KoKo 字符协议链路完整可用这是堡垒机最核心的功能。3. 观察资源占用是否稳定docker stats --no-stream运行 30 分钟后再看一次。空闲状态下内存占用保持稳定、CPU 波动正常说明容器没有异常重启或内存泄漏。顺手再确认一遍docker ps里所有容器仍然是Up而不是Restarting。六、避坑与排查ARM 部署高频问题对照表报错现象原因对策no matching manifest for linux/arm64拉取的镜像是 x86 专用改用在线脚本安装或指定--platform linux/arm64重新拉取docker composecommand not found只装了旧版docker-compose安装 Compose 插件sudo apt install docker-compose-plugin拉镜像超时 / 速度极慢网络到国外仓库不稳定配置镜像加速器后重启 Dockersudo systemctl restart docker端口 80/8080 被占用与已有服务冲突修改安装目录下的.env中端口映射后重新docker compose up -d登录页能开但 Web 终端一直连不上KoKo/Lion 容器未就绪或 WebSocket 端口被防火墙拦截docker ps确认相关容器为 Up检查 2222SSH 转发等端口放行情况数据库初始化失败残留数据卷冲突备份数据后docker compose down -v清空重建慎用会丢数据两个高频疑难点的补充说明镜像平台不匹配的根治办法先docker rmi删掉错误的 x86 镜像再通过在线脚本重新部署让它按当前架构重新拉取不要混用两种架构的镜像。ARM 设备的性能余量4 核 8 GB 是够用如果同时在线会话多、录像量大建议上 8 核 16 GB。遇到卡顿先看docker stats通常瓶颈在内存或磁盘 IO而不是 CPU。七、进阶与延伸ARM 环境的性能优化与生产建议基础部署完成后想跑得更稳可以做这几件事。1. 数据落盘与备份JumpServer 默认把数据放在 Docker 卷里。生产环境建议把数据库与录像存储目录映射到独立数据盘用项目自带的备份脚本定期备份参考仓库utils/backup_db.sh对录像、审计日志配置单独的归档策略避免单盘写满2. 精简资源占用低配 ARM 设备上可以考虑关闭不常用的组件如 Web 数据库组件 Chen、RemoteApp 组件把资源留给核心的 SSH/RDP 通道。具体在.env中调整启用的服务列表后重启即可。3. 版本升级策略JumpServer 迭代很快。升级前务必先备份数据库与config.yml仓库中的config_example.yml是配置模板实际配置在部署目录的config.yml查看版本差异与升级文档跨大版本升级建议逐版本过渡升级后执行一遍本文验证与验收章节的完整流程4. 自定义镜像进阶玩法如果官方多架构镜像不满足需求可以自行构建。仓库根目录的Dockerfile展示了官方镜像的构建方式基于jumpserver/core-base基础镜像构建。在 ARM 机器上执行git clone https://gitcode.com/feizhiyun/jumpserver cd jumpserver docker build -t jumpserver/core:custom-arm64 .这会完整走一遍依赖安装、静态资源收集、i18n 编译的流程耗时较长适合有定制需求且愿意折腾的读者。八、收尾ARM 上跑堡垒机其实没那么难回到开头的场景小陈换用在线脚本后半小时内就在 RK3588 上把 JumpServer 堡垒机跑了起来第二天顺利把开发环境的服务器账号全部纳入统一管控。一句话总结ARM 设备上部署 JumpServer 社区版关键不是能不能装而是用什么方式装——绕开按 x86 打包的离线包选择支持多架构的在线安装路径问题就解决了一大半。希望这份指南能帮你省下一个熬夜的晚上。相关资源项目源码https://gitcode.com/feizhiyun/jumpserver部署配置模板config_example.yml服务启动入口脚本entrypoint.sh数据库备份工具utils/backup_db.sh前端控制台与 Web 终端组件分别位于仓库的apps目录Django 后端与配套的 Lina/Luna 前端工程有二次开发需求的读者可以从这些目录入手阅读源码。【免费下载链接】JumpServer广受欢迎的开源堡垒机项目地址: https://gitcode.com/feizhiyun/jumpserver创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考