ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

JumpServer 堡垒机如何在 ARM 设备上跑起来?5 步部署 + 3 个避坑要点

2026/8/19 17:56:51 拓冰建站 浏览量
JumpServer 堡垒机如何在 ARM 设备上跑起来?5 步部署 + 3 个避坑要点 JumpServer 堡垒机如何在 ARM 设备上跑起来5 步部署 3 个避坑要点【免费下载链接】JumpServer广受欢迎的开源堡垒机项目地址: https://gitcode.com/feizhiyun/jumpserver想把开源堡垒机 JumpServer 部署到树莓派、ARM 小主机或国产化服务器上却总被 platform does not match 这类平台不兼容报错劝退这篇文章复盘一次真实的 ARM 架构部署 JumpServer 翻车经历把离线包为什么装不上这件事讲透再给出 ARM64 安装 JumpServer 的完整实操流程和高频报错排查表帮你稳稳落地、少走弯路。从一次翻车现场说起ARM 设备上装 JumpServer 堡垒机的真实痛点为什么越来越多人想把开源堡垒机搬上 ARM 主机堡垒机是团队管理服务器入口的第一道闸门。JumpServer 作为广受欢迎的开源堡垒机能直接在浏览器里完成 SSH、RDP、数据库、Kubernetes 等资源的访问授权与全程审计不必再给每台机器单独配置跳板账号堪称运维侧一夫当关的存在。这两年 ARM 生态肉眼可见地成熟ARM 小主机功耗低、噪音小、价格香国产化服务器也大量基于 ARM 指令集。把这些设备当作内部运维网关既省钱又符合合规要求于是在 ARM 上部署 JumpServer 堡垒机成了社区里高频出现的问题。一次典型的平台不兼容事故复盘朋友在一台 ARM64 的 Ubuntu 机器上部署时下载了官方离线安装包解压、加载镜像一气呵成结果 Docker 拉取组件镜像时直接抛错ERROR: no matching manifest for linux/arm64/v8 in the manifest list entries WARNING: The requested images platform (linux/amd64) does not match the detected host platform (linux/arm64/v8)他第一反应是镜像下载坏了重试三次依旧如此。其实这行报错和网络、镜像完整性都没关系问题出在一个极易被忽略的环节——镜像自身的平台属性。先搞懂镜像的籍贯ARM64 安装 JumpServer 前必知的概念容器镜像的平台标签是什么Docker 镜像不只是一堆文件它还带一份身份信息里面明确记录了为哪种 CPU 指令集编译这个字段就叫平台标签常见取值有linux/amd64、linux/arm64/v8等。拉取镜像时Docker 会做一道对暗号的动作把镜像声明的平台和宿主机实际平台做比对对不上就拒绝运行并给出平台不兼容提示。离线安装包为何在 ARM 上水土不服离线安装包的设计初衷是解决内网断网环境装不上的问题因此会提前把整套组件镜像打包好。但打包含包时通常会锁定一种平台目前社区版离线包主要面向 x86_64 编译这正是它在 ARM 设备上安装失败的根源。而在线拉取走的是多架构清单机制镜像仓库里同时挂着 amd64、arm64 等多个变体客户端根据自身架构自动挑选。同样是 JumpServer 的组件镜像在线方式能按需取件离线包却是固定尺码——这就是两者在 ARM 设备上命运截然不同的根本原因。动手前的三项准备别急着敲命令核对硬件架构与系统版本先确认机器到底是什么架构别凭感觉猜测uname -m cat /etc/os-releaseuname -m输出aarch64就代表 64 位 ARM可以直接按本文流程走如果输出x86_64说明是传统架构走常规安装即可。Docker 与 Compose 插件检查清单在线部署依赖 Docker 与 Compose 插件逐项核对检查项命令期望结果Docker 版本docker --version20.10 以上Compose 插件docker compose version能正常输出版本号宿主机架构docker info | grep Architectureaarch64注意老版本 Docker 只有docker-compose带横杠的独立命令新版推荐docker compose插件两者别混用否则容易踩command not found的坑。清理历史 x86 镜像给磁盘瘦身如果之前尝试过离线安装机器上大概率残留一批 amd64 镜像既占空间又容易让人误判。先看一眼再清理docker images docker image prune -a -f清干净之后后续拉取 arm64 镜像时才不会被同名不同平台的旧缓存干扰。5 步完成 ARM 架构部署 JumpServer 堡垒机第一步获取官方在线安装脚本最省事的路径是使用 JumpServer 官方提供的一键安装脚本到项目官方发布页下载quick_start.sh后执行即可。脚本会自动识别宿主机架构决定从镜像仓库拉取哪一套变体全程无需人工干预特别适合第一次上手的新手。如果想把每一步的底层逻辑搞清楚可以走第二步的 Compose 手动编排路线两条路最终效果一致。第二步用 Docker Compose 手动编排核心组件JumpServer 由多个组件协作Core 负责核心业务与 APIKoKo 承载字符协议连接WebLina/Luna提供界面入口底层依赖 PostgreSQL 与 Redis。下面是一份精简的编排示例生产环境请以项目 docs 目录下的官方部署文档为准services: postgres: image: postgres:15 container_name: jms-postgres environment: POSTGRES_USER: jumpserver POSTGRES_PASSWORD: your-strong-password POSTGRES_DB: jumpserver volumes: - ./postgres-data:/var/lib/postgresql/data redis: image: redis:7 container_name: jms-redis command: redis-server --requirepass your-strong-password volumes: - ./redis-data:/data core: image: jumpserver/core container_name: jms-core depends_on: [postgres, redis] environment: SECRET_KEY: 见第三步生成的密钥 BOOTSTRAP_TOKEN: 见第三步生成的令牌 DB_HOST: postgres DB_PORT: 5432 DB_USER: jumpserver DB_PASSWORD: your-strong-password DB_NAME: jumpserver REDIS_HOST: redis REDIS_PORT: 6379 REDIS_PASSWORD: your-strong-password volumes: - ./core-data:/opt/jumpserver/data细心的话会发现这里用的都是postgres:15、redis:7、jumpserver/core这类常规镜像名并没有特意指定 arm64 版本。这正是多架构镜像的好处——镜像名相同Docker 会按宿主机架构自动选对变体。第三步生成密钥并启动容器SECRET_KEY和BOOTSTRAP_TOKEN是 JumpServer 的安全基石千万别用默认值。项目根目录的 config_example.yml 里就给出了生成方法cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49; echo拿到两串随机值后填入上面的编排文件然后启动并观察日志docker compose up -d docker logs -f jms-core看到启动完成、健康检查通过的相关日志说明核心组件已经就绪。第四步登录 Web 界面验证服务浏览器访问http://服务器IP/首次部署的默认账号是admin、默认密码ChangeMe登录后系统会引导立即修改。跳转后的界面长这样能顺利进入控制台就代表核心组件、数据库、Redis 之间的链路已经全部打通。第五步开启 MFA 加固账号安全堡垒机是入口中的入口强烈建议给管理员账号绑定 MFA。在系统设置里开启 OTP 二次验证用手机上的认证器 App 扫描页面中的二维码即可完成绑定绑定之后即使密码泄露攻击者也很难绕过这层动态口令。JumpServer 平台不兼容报错等高频问题排查误区一把离线安装包当成万能钥匙不少同学抱着离线包最保险的想法在 ARM 设备上反复重试白白耗掉几个小时。请记住一个原则离线安装包解决的是没网的问题而不是全平台的问题。只要网络可用在线方式永远更省心因为它天然兼容多架构。误区二镜像缓存污染导致反复失败还有一种隐蔽情况之前用旧架构试过本机缓存里留着同名镜像的 amd64 版本新拉取时 Docker 复用了旧缓存于是再次报平台不兼容。遇到这种情况先执行docker image prune清掉缓存再重新拉取即可。高频报错对照速查表报错信息节选可能原因处理建议no matching manifest for linux/arm64/v8镜像本身没有 ARM 变体改用官方多架构镜像或在线安装platform (linux/amd64) does not match离线包为 x86_64 打包切换到在线安装方式反复提示镜像拉取超时网络不稳定或仓库连接慢配置镜像加速或错峰重试启动后 502 / 页面无法访问组件尚未完全就绪用docker logs -f观察核心组件日志ARM 部署后的收益与给进阶用户的一条建议跨架构部署带来的实际价值把 JumpServer 堡垒机跑在 ARM 设备上意味着团队可以用更低的硬件成本获得完整的权限管控与操作审计能力统一的账号管理、细粒度的授权策略、全程录像与命令审计这些核心能力与底层架构无关arm64 上体验不缩水。对国产化、信创场景来说这更是绕不开的一环。进阶延伸从源码到自定义镜像如果后续想定制功能或深入理解实现细节可以直接拉取源码阅读git clone https://gitcode.com/feizhiyun/jumpserver源码根目录的 config_example.yml 注释非常详尽几乎每个配置项都写明了用途组件与部署说明可以参考 docs/README.mdapps 目录下按业务模块拆分清晰非常适合进阶开发者按图索骥。想要更极致的 ARM 体验甚至可以基于源码自行构建 arm64 镜像把平台兼容的主动权完全握在自己手里。【免费下载链接】JumpServer广受欢迎的开源堡垒机项目地址: https://gitcode.com/feizhiyun/jumpserver创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考