Ajenti 介绍与选型指南
Ajenti(ajenti/ajenti)Python 轻量自托管服务器管理面板介绍与选型指南:定位与历史、核心架构、27 个官方插件功能矩阵、快速上手路径、适用场景与限制,以及与 Cockpit、Webmin、1Panel 的量化选型对比(数据实查于 2026-11-02)。
Ajenti 介绍与选型指南
目标:回答"Ajenti 是什么、架构如何、能管哪些事、适合什么场景、和 Cockpit/Webmin/1Panel 怎么选"。本文为认知篇,全部信息联网实查自官方仓库、官方文档与 PyPI/GitHub 公开数据(查询日期 2026-11-02),不含本地实测;动手部署见《Ajenti Docker Compose 部署指南》篇。
一、环境信息
本文取证环境与数据渠道:
- 数据渠道:GitHub 仓库
ajenti/ajenti(README、目录结构、Releases)、官方文档站 docs.ajenti.org(仓库docs/source/man/同源)、PyPI(ajenti-panel、aj、ajenti三个发行包)、shields.io 徽章(星数/贡献者/提交活跃度) - 查询日期:2026-11-02(本文所有版本号、星数、日期均为此日实查值)
- 官方主页:http://ajenti.org/core/ ;文档站:https://docs.ajenti.org/
- 最新 GitHub Release:v2.2.15(发布于 2026-03-31);最新 PyPI 可安装版本:ajenti-panel / aj 2.2.18(pip 通道发布快于 GitHub tag)
💡 说明:GitHub Release 与 PyPI 版本双轨是 Ajenti 的发布特点——
v2.2.15是仓库标签,而 pip 上实际已滚动发布到2.2.18(含url_prefix反代前缀支持)。选型与部署时应以 PyPI 2.2.18 为"最新稳定可安装版"。
二、软件概述
2.1 定位与历史
Ajenti(发音近似 "a-jen-ti")是一个 Linux 与 BSD 的模块化服务器管理面板(官方 README 首句:"Ajenti is a Linux & BSD modular server admin panel")。仓库创建于 2010-03-03,至今仍在维护(最近推送 2026-11-01),MIT 许可证,主语言 Python。
项目分两个世代:
| 世代 | 技术栈 | 状态(2026-11-02 实查) |
|---|---|---|
| Ajenti 1.x | Python 2 时代产物 | 已停更;PyPI 上 ajenti 包停留在 1.2.23.13(约 2015 年) |
| Ajenti 2 | Python 3 + AngularJS,全新界面与架构 | 活跃维护,即本文对象,仓库 ajenti/ajenti |
Ajenti 2 的设计口号(README Feature highlights 原文归纳):安装容易、接管现有配置(picks up your current configuration)、非破坏性修改(不覆盖你的配置文件、选项与注释)、电池全备(内置大量系统/软件/监控/管理插件)、Python 易扩展、界面现代(平板/手机可访问)、轻量(可跑在低端机、墙插、路由器上)。
💡 技术拓展:服务器管理面板按交互形态大致分四类,选型前先认清自己要哪一类——
形态 代表 特点 适用 Web 管理面板 Ajenti、Webmin、Cockpit、1Panel 浏览器操作全套系统功能 不想敲命令的日常运维 终端 TUI 面板 wtf、Glances SSH 里看仪表盘,不开放端口 极简/安全敏感环境 起始页/仪表盘 homepage、Heimdall 只聚合入口与状态,不管理系统 家庭实验室导航 云控制台代理 Portainer、CloudPanel 面板本身不管 OS,管容器/云资源 单一职责场景 本文的 Ajenti 属第一类"Web 管理面板",且是其中少见的直接读写系统原生配置文件(apt、systemd、网络、cron)的非托管型面板。
2.2 社区与维护量化指标(2026-11-02 实查)
| 指标 | 数值 | 渠道 |
|---|---|---|
| GitHub 星数 | 7968(shields 徽章显示 8k) | img.shields.io/github/stars |
| Fork 数 | 856 | GitHub 仓库元数据 |
| 贡献者 | 26 | shields.io/github/contributors |
| 提交活跃度 | 111 次/年 | shields.io/github/commit-activity/y |
| 未关闭 Issue | 10 | GitHub 仓库元数据 |
| 最新 Release | v2.2.15(2026-03-31) | GitHub Releases |
| 最近推送 | 2026-11-01 | GitHub 仓库元数据 |
解读:星数与活跃度属于"小而稳"梯队——不像 1Panel 那样高速增长,但十四年不断档、2026 年仍有提交与安全修复(v2.2.15 的 Release 正文即"Add anti-framing headers / More checks on tasks"两项安全加固),issue 极少(10 个未关闭),维护负担小。
三、核心架构
3.1 仓库分层
ajenti/ajenti 单仓库承载全部官方代码(2026-11-02 实查根目录):
| 目录 | 内容 | 发布形态 |
|---|---|---|
ajenti-core/ | 核心框架,Python 包名 aj(HTTP/WebSocket 服务、配置、权限、任务、插件 API) | PyPI aj(2.2.18) |
ajenti-panel/ | 面板入口与守护进程,含 ajenti-panel、ajenti-ssl-gen、ajenti-client-ssl-gen、ajenti-upgrade 四个可执行脚本与默认 config.yml | PyPI ajenti-panel(2.2.18) |
plugins/ | 27 个官方插件,各自独立目录、独立 pip 包 | PyPI ajenti.plugin.* |
docs/ | Sphinx 文档源(docs.ajenti.org 同源) | 文档站 |
debian/、scripts/ | deb 打包与安装脚本(install.sh / install-venv.sh / fail2ban 过滤器) | — |
3.2 运行时模型
- 进程:单 Python 进程
ajenti-panel,基于 gevent 协程处理 HTTP 与 WebSocket;默认监听 TCP 8000 端口、HTTPS(自签证书/etc/ajenti/ajenti.pem)。 - 前端:AngularJS 单页应用,登录后所有操作走 WebSocket 推送(仪表盘指标、任务进度实时回推)。
- 配置:全部 YAML,集中在
/etc/ajenti/(config.yml主配置、users.yml用户库、smtp.yml邮件中继凭据)。 - 认证:两种 provider——
os(直接校验系统用户口令,默认)与users(面板自管用户库,scrypt 派生密钥存users.yml);另支持客户端证书登录(ssl.client_auth)。 - 权限:细粒度键值(如
packages:install、sidebar:view:/view/cron),可按用户开关。 - 提权模型:受限功能以
restricted_user(默认nobody)身份执行;auth.allow_sudo允许 sudo 组成员在面板内提权。 - 扩展:插件即 pip 包,用
aj.entry.*装饰器注册入口点(官方文档 dev/intro 提供"Write your first plugin"教程)。
💡 技术拓展:面板类软件的认证底座常见三选一——
方案 代表 优点 代价 复用系统账号(os/PAM) Ajenti provider: os、Cockpit零额外账号体系,权限即系统权限 面板口令=系统口令,泄露半径大 面板自管用户库 Ajenti provider: users、1Panel、Webmin与系统账号隔离,可发独立权限 需维护第二套口令 外部 IdP/SSO Keycloak 前置、Cronmaster OIDC 企业统一身份 部署复杂 Ajenti 两种内置可选,本系列实验采用
os+ root 方案。
四、功能特性
4.1 官方插件矩阵(official_plugins.json,27 个,2026-11-02 实查)
| 功能域 | 插件 | 能力 |
|---|---|---|
| 基础 | core / dashboard / settings / plugins / session_list | 侧边栏/任务/推送框架、总览仪表盘、设置页、插件安装管理、在线会话列表 |
| 文件 | filemanager / filesystem / ace / notepad | 文件管理器(权限/上传/下载)、文件系统浏览、ACE 编辑器内核、便签 |
| 系统 | services / cron / supervisor / power / datetime | systemd/init 服务管理、crontab、supervisord、关机重启挂起、时区与 NTP |
| 软件 | packages / passwd / auth_users | apt 软件源与包管理、系统用户口令、面板用户库管理 |
| 网络 | network / iptables / dns_api / traffic | interfaces/hosts/resolv 编辑、iptables 规则、DNS API、流量统计 |
| 配置 | augeas / fstab / softraid | Augeas 树式改配置(nginx/apache 等)、/etc/fstab、软 RAID |
| 容器 | docker | Docker 容器/镜像查看管理 |
| 终端 | terminal | 浏览器内 xterm 终端 |
| 安全 | check_certificates | TLS 证书到期检查 |
4.2 特性要点
- 非破坏式改配置:官方强调"Does not overwrite your config files, options and comments"——如
packages只增删源文件、augeas按语法树定点改值,不重排你的注释。 - 接管现有系统:装上面板即识别现有服务/源/网络配置,无需"先纳管后使用"。
- 任务系统:apt 升级、文件批量操作等长任务带进度条与取消能力(core 的 tasks API)。
- 移动端友好:响应式 UI,平板/手机可直接操作。
- 轻量:gevent 单进程,官方宣称可跑在"墙插、路由器"级设备(README Lightweight 条目)。
- 安全配套:官方提供 fail2ban 过滤器(
scripts/ajenti.conf),失败登录记入/var/log/ajenti/ajenti.log;2.2.1+ 支持trusted_domains/trusted_proxies防 Host 头滥用与真实 IP 还原;2.2.18+ 支持url_prefix反代子路径。
五、快速开始(官方推荐路径)
⚠️ 本节命令逐字摘自官方文档 docs.ajenti.org(man/install.rst 与 man/run.rst,查询日期 2026-11-02),认知篇不做本地实测;完整部署与验证过程见《Ajenti Docker Compose 部署指南》篇。
官方支持的系统(install.rst CAUTION 块原文口径):Debian 9+、Ubuntu Bionic(18.04)+、RHEL 8+,其他 Linux "可能可用但需手动安装法"。
方式一:venv 自动安装(官方当前推荐)——规避 Debian 12+/Ubuntu 24.04+ 的 externally-managed-environment 报错:
curl https://raw.githubusercontent.com/ajenti/ajenti/master/scripts/install-venv.sh | sudo bash -s -
方式二:手动 pip 安装(最小集):
sudo pip3 install setuptools pip wheel -U
sudo pip3 install ajenti-panel ajenti.plugin.core ajenti.plugin.dashboard ajenti.plugin.settings ajenti.plugin.plugins
方式三:手动 pip 安装(全插件集):
sudo pip3 install ajenti-panel ajenti.plugin.ace ajenti.plugin.augeas ajenti.plugin.auth-users ajenti.plugin.core ajenti.plugin.dashboard ajenti.plugin.datetime ajenti.plugin.filemanager ajenti.plugin.filesystem ajenti.plugin.network ajenti.plugin.notepad ajenti.plugin.packages ajenti.plugin.passwd ajenti.plugin.plugins ajenti.plugin.power ajenti.plugin.services ajenti.plugin.settings ajenti.plugin.terminal
安装脚本(方式一/旧版 install.sh)会生成 systemd 单元 ajenti 与日志目录 /var/log/ajenti/。启动与访问:
systemctl restart ajenti
浏览器打开 https://服务器IP:8000**(自签证书需手动信任),用户名 root、口令为系统 root 口令**。排障入口:ajenti-panel -v 前台调试模式,日志看 /var/log/ajenti/ajenti.log,崩溃栈在 /var/log/ajenti/crash-DATE.log。
六、适用场景与限制
6.1 适合
- 单台 VPS / 家用服务器 / NAS 的"图形化 SSH 替代":服务管理、apt 装包、文件编辑、cron、防火墙一屏搞定。
- 低配机器:协程单进程、无外部数据库依赖(配置即 YAML 文件),比 PHP+MySQL 栈的传统面板省资源。
- 需要 BSD 支持的场景(官方明确 Linux & BSD)。
- 二次开发:Python 插件 API 成熟,写一个自定义面板页门槛低。
6.2 限制(选型前必读)
- 无官方容器镜像:官方安装形态是主机 pip/systemd;容器化需自备 Dockerfile(本系列 B2 篇给出完整自建方案)。
- 插件生态规模:27 个官方插件覆盖系统管理主干,但应用商店类能力(一键部署 WordPress/数据库容器组)为零——这是与 1Panel 的核心差距。
- 前端技术栈陈旧:AngularJS 1.x 已停止官方支持,UI 风格停留在 2015 年代;功能可用但无现代化组件生态。
- 默认 HTTPS 自签证书 + 8000 端口:生产接入建议前置反代(配合
trusted_domains/trusted_proxies/url_prefix)。 - os 认证模式下面板口令=系统 root 口令:公网裸奔风险高,必须配合 fail2ban 或改
provider: users并降权。 - 多语言现状:默认语言历史遗留为
ru(仓库默认 config.yml 写language: ru),部署时应显式改en或zh。
七、同类选型对比
7.1 量化对比表(星数/版本实查于 2026-11-02)
| 维度 | Ajenti 2 | Cockpit | Webmin | 1Panel |
|---|---|---|---|---|
| GitHub | ajenti/ajenti | cockpit-project/cockpit | webmin/webmin | 1Panel-dev/1Panel |
| 星数 | 7968 | ~15k | ~6.1k | ~37k |
| 最新稳定版 | v2.2.15 / pip 2.2.18 | v370 | v2.670 | v2.4.2 |
| 首次发布年 | 2010 | 2013 | 1997 | 2022 |
| 语言/栈 | Python 3 + AngularJS | C/JS + systemd | Perl | Go + Vue |
| 许可证 | MIT | LGPL-2.1 | BSD 类(自定义) | GPL-3.0 |
| 资源占用 | 单协程进程,极低 | 极低(socket 激活) | 中(Perl 常驻) | 中(Go 常驻) |
| 官方容器镜像 | 无 | 无(宿主机服务) | 无 | 有(面板可容器化) |
| 系统配置方式 | 直改原生配置文件 | 走 systemd/D-Bus 原生 API | 自有 mini-parser 改配置 | 自有逻辑+Docker |
| 特色 | 非破坏改配置、BSD、Python 插件 | Red Hat 背书、终端/存储/容器全 | 模块最全(1800+ 可管 Apache/Bind 全家桶) | 应用商店、容器编排、中文生态 |
| 短板 | 生态小、前端旧 | 面向 RHEL 系、Debian 体验一般 | 界面老、Perl 扩展门槛 | 强绑定 Docker 生态 |
7.2 选型建议
- 要"SSH 图形化 + 直接改配置文件"的轻量面板(含 BSD/低配机):选 Ajenti——它是四者中唯一把"不覆盖你的注释和选项"写进设计目标的。
- RHEL/Fedora/Alma 系、要 systemd 级集成与零常驻开销:选 Cockpit(发行版仓库自带,socket 激活)。
- 要"什么都能在网页里配"(邮件/DNS/虚拟主机全栈):选 Webmin,模块广度无出其右。
- 国内环境、以 Docker 应用部署为中心、要中文 UI 与社区:选 1Panel。
八、参考链接
- 官方仓库:https://github.com/ajenti/ajenti (README、official_plugins.json、scripts/)
- 官方文档:https://docs.ajenti.org/ (man/install.rst、man/config.rst、man/run.rst、man/security.rst,查询日期 2026-11-02)
- 官方主页:http://ajenti.org/core/
- PyPI:https://pypi.org/project/ajenti-panel/ (2.2.18,查询日期 2026-11-02)
- GitHub Releases:https://github.com/ajenti/ajenti/releases (v2.2.15,2026-03-31)
- 插件开发入门:https://docs.ajenti.org/en/latest/dev/intro.html
- 同系列篇目:《Ajenti Docker Compose 部署指南》、《Ajenti 2.2.18 配置参数详解》、《Ajenti 2.2.18 常用 CLI 命令与工具详解》(站内链接随专栏发布后回填)