1Panel 印尼语技术指南:开源 Linux 服务器管理面板的架构解析、快速安装与安全机制
本文基于 1Panel 仓库的官方印尼语文档(docs/README.id.md)撰写,系统讲解这款现代开源 Linux 服务器管理面板的核心能力、仓库双模块(core + agent)架构、一键安装方式,以及 API 鉴权、防火墙、审计日志与云备份等安全机制,帮助读者在掌握功能全貌的同时理解其源码级实现。
一、什么是 1Panel:核心能力总览
根据官方文档描述,1Panel(Panel)adalah panel kontrol berbasis web yang modern dan open-source untuk manajemen server Linux(一个现代化、开源的 Web 控制面板,用于 Linux 服务器管理)。结合项目描述,它同时也是一个轻量级的 AI 管理平台。原文档列出的五大核心能力如下,后文将逐一结合仓库源码佐证其实现:
| 能力 | 官方说明(印尼语原文要点) | 仓库实现佐证 |
|---|---|---|
| Manajemen Efisien(高效管理) | 通过友好的 Web 图形界面管理 Linux 服务器,涵盖主机监控、文件管理、数据库管理和容器管理 | agent/service/ 下包含 monitor.go、file.go、database.go、[container.go)(agent/service/container.go) 等服务实现 |
| Penyebaran Situs Web Cepat(网站快速部署) | 深度集成开源建站软件 WordPress,简化域名绑定与 SSL 证书配置,一键完成 | agent/service/website_op.go、agent/utils/ssl/(基于 go-acme/lego 的 ACME 证书客户端) |
| Toko Aplikasi(应用商店) | 提供大量优质开源工具与应用,方便安装与更新 | agent/service/app_install.go、agent/service/app_upgrade.go、agent/model/app_detail.go |
| Keamanan dan Keandalan(安全与可靠性) | 借助容器化技术与安全的应用部署实践降低漏洞暴露面,通过集成的防火墙管理与审计日志增强安全 | agent/utils/firewall/(iptables/nftables 双引擎)、agent/middleware/operation.go 操作审计 |
| Cadangan & Pulih Satu Klik(一键备份与恢复) | 一键备份/恢复功能简化数据保护,支持多种云存储方案保障数据完整性与可用性 | agent/service/backup.go 及 backup_mysql.go 等按对象类型的备份实现 |
二、仓库架构:core 与 agent 双 Go 模块设计
从源码结构看,1Panel 采用「面板服务 + 主机代理」的双模块架构,两个独立 Go module 通过 Makefile 统一构建:
- core(
module github.com/1Panel-dev/1Panel/core,见 core/go.mod):负责 Web 面板服务,提供登录认证、会话管理、前端静态资源与对外 API。其 core/app/auth/api_auth.go 实现 API Key 鉴权,core/middleware/session.go、core/init/session/psession/ 负责会话安全,还支持 MFA(core/utils/mfa/)、WebAuthn Passkey(core/utils/passkey/)、SAML/OIDC 单点登录(依赖crewjam/saml、coreos/go-oidc,见 core/go.mod)。 - agent(
module github.com/1Panel-dev/1Panel/agent,见 agent/go.mod):部署在目标主机上,直接执行资源监控、文件操作、Docker 容器管理、数据库管理、防火墙与快照等重活。关键依赖包括docker/docker、compose-go、shirou/gopsutil(主机指标采集,封装于 agent/utils/psutil/)、go-sql-driver/mysql、jackc/pgx、go.mongodb.org/mongo-driver与go-redis/redis,说明其对 MySQL、PostgreSQL、MongoDB、Redis 四类数据库的原生管理是有源码依据的。
两个模块均为 Go 1.26.1(见两个 go.mod 的 go 1.26.1 声明),Web 入口分别为 core/cmd/server/main.go 与 agent/cmd/server/main.go,后者同时携带 Swagger 注解(@BasePath /api/v2),即 Agent 暴露的 REST API 前缀为 /api/v2。
前端技术栈
管理界面位于 frontend/,从 frontend/package.json 可确认其技术栈:Vue 3.5 + Element Plus 2.14 + Vite + Pinia + Tailwind CSS,并集成 CodeMirror/Monaco(在线编辑器)、ECharts(监控图表)、xterm.js 与 noVNC(Web 终端)。Makefile 中的 build_frontend 目标执行 npm install && npm run build:pro,产物嵌入 core 的静态资源目录(core/cmd/server/web/assets)。
三、快速开始:一键安装
官方文档「Panduan Cepat Memulai(快速开始指南)」给出的安装方式为运行官方脚本并跟随提示完成安装:
curl -sSL https://resource.1panel.pro/quick_start.sh -o quick_start.sh && bash quick_start.sh
文档同时引导读者查阅其官方部署文档获取更多安装信息(安装过程会交互式选择面板端口、登录用户名与密码等,详见官方文档站)。对于开发者,也可以直接浏览本仓库源码来理解其实现;Makefile 提供了本地交叉编译目标:
build_all: build_frontend build_core_on_linux build_agent_on_linux
build_core_on_linux:
cd $(CORE_PATH) \
&& CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) $(GOBUILD) -trimpath -ldflags '-s -w' -o $(BUILD_PATH)/$(CORE_NAME) $(CORE_MAIN)
即 build_all 会先构建前端,再以 CGO_ENABLED=0 静态编译 1panel-core 与 1panel-agent 两个二进制(-ldflags '-s -w' 用于去除符号表减小体积),并提供 upx_bin 目标进一步压缩。
四、安全机制:API 鉴权、防火墙与漏洞报告
4.1 API Key 鉴权算法
文档强调 1Panel 通过「防火墙管理与审计日志」提升安全性。从源码看,Agent 对外 API 采用自定义 Token 鉴权,agent/cmd/server/main.go 的 Swagger 注解明确了算法:
Token 格式: md5('1panel' + API-Key + UnixTimestamp)
请求示例:
curl -X GET "http://{host}:{port}/api/v2/toolbox/device/base" \
-H "1Panel-Token: <1panel_token>" \
-H "1Panel-Timestamp: <current_unix_timestamp>"
即调用方需将 API Key 与当前 Unix 秒级时间戳拼接为 1panel{API-Key}{timestamp} 后取 MD5,放入 1Panel-Token 请求头,并将时间戳放入 1Panel-Timestamp 请求头;core 侧对应校验逻辑可参见 core/app/auth/api_auth.go。时间戳参与签名使重放攻击失效,这一细节是阅读源码才能获得的实现事实。
4.2 防火墙与审计
- 防火墙管理位于 agent/utils/firewall/,包含
iptables_helper与nftables_helper两套引擎,并通过 agent/service/firewall_sync.go、agent/service/firewall_docker.go 等实现规则同步与 Docker 端口联动防护(agent/repo/docker_port_guard.go 提供容器端口守护)。 - 审计日志:agent/middleware/operation.go 与 core/middleware/operation.go 作为 Gin 中间件记录操作行为,与文档「kemampuan audit log(审计日志能力)」的描述一致。
4.3 漏洞报告渠道
文档「Informasi Keamanan(安全信息)」部分指出:发现安全问题请通过 wanghe@fit2cloud.com 联系团队。这与仓库的 SECURITY.md 完全一致——该文件声明当前支持 v1.x 版本的安全维护,并请求报告者在补丁发布前不要对外披露漏洞,改为邮件发送给上述地址。
五、备份与多云存储:文档「Cadangan & Pulih Satu Klik」的源码印证
文档称 1Panel 支持「berbagai solusi penyimpanan cloud(多种云存储解决方案)」。agent/utils/cloud_storage/client/ 目录中的客户端文件印证了其覆盖范围:
| 文件 | 云存储/协议 |
|---|---|
| s3.go | 通用 S3 协议 |
| oss.go / ali.go | 阿里云 OSS |
| cos.go | 腾讯云 COS |
| kodo.go / up.go | 七牛 Kodo / 又拍云 |
| onedrive.go / google_drive.go | OneDrive / Google Drive |
| webdav.go | WebDAV |
| sftp.go | SFTP |
| minio.go | MinIO |
| local.go | 本地存储 |
上层 agent/service/backup.go 配合 backup_mysql.go、backup_website.go、backup_container.go 等按对象类型实现备份,另有 agent/service/snapshot.go、snapshot_create.go 实现系统级快照与恢复,与文档「cadangan dan pulih satu klik(一键备份与恢复)」的承诺相对应。
六、许可证(License)
与文档一致,1Panel 在 GNU General Public License v3 (GPLv3) 下发布,许可文本见 LICENSE,SECURITY.md 与两份 main.go 的 Swagger 注解(@license.name GPL-3.0)也均指向同一许可。文档原文说明:未遵循许可证条款不得使用相关代码,且软件按「现状(APA ADANYA)」提供,不附任何明示或默示担保——具体权利与限制以 GPL v3 许可证文本为准。
七、小结
1Panel 以「core 面板服务 + agent 主机代理」的双 Go 模块架构,将主机监控、文件、数据库、容器、网站建站、应用商店、防火墙、审计日志与多云备份统一到 Web 界面中;官方提供的一行 curl 脚本即可完成安装,开发者则可通过 Makefile、core/、agent/ 与 frontend/ 三个入口深入阅读其实现。本文所有架构与功能结论均可在对应源码路径中逐条验证。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0623
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00