WebPanel 分册 —— 服务器集中管理 Web 面板速查¶
版本基线: 1Panel v2.4.1(2026-10,飞致云)· Cockpit 369(2026-10-07)· Portainer CE 2.45.3 LTS(2026-10-22)· 宝塔面板 12.0 LTS(2026 年度 LTS,8.x/9.x 仍广泛在用)· Webmin 2.670(2026-09-21)· Semaphore UI 2.19.18(2026-11-02)(核对日期 2026-11-11,来源:官网/GitHub/Docker Hub)
环境约束(本实验环境): - 宿主机:Windows Server,2×Xeon Gold 6138(40 核 80 线程),256GB 内存 - 实验 VM:Ubuntu 22.04,Hyper-V 内由 Vagrant 管理(内部交换机 + NAT 双网卡) - 磁盘:F 盘 895G,剩余约 862G - 落盘约束:所有产物只存
F:\EricLiu\下;服务以 Docker 优先目标: 面板定位为"服务器集中管理 Web 面板",从单机管理逐步扩展到多机纳管。本分册供 AI 助手在指导用户操作时查阅。
1. 选型对比表¶
| 项目 | 定位 | 部署方式 | 资源占用 | 许可证 | 推荐场景 |
|---|---|---|---|---|---|
| 1Panel(飞致云) | 应用商店型 + 系统管理(建站/数据库/容器/AI 一体) | 官方一键脚本(原生安装,内部以容器编排应用) | 中(面板本身约 100~300MB 内存) | GPL-3.0(社区版免费;专业版/企业版付费) | 想要"开箱即用应用商店"快速装 Nginx/MySQL/Redis;中文生态好 |
| Cockpit | 系统管理型(systemd/网络/存储/日志/VM) | apt install(发行版仓库,systemd socket 按需启动) |
极低(不用时不驻留内存) | LGPL-2.1 | 服务器"体检台":看日志、服务、监控、终端;Ubuntu 官方仓库直接装 |
| Portainer CE | 容器管理型(Docker/Swarm/K8s,Agent 多机) | Docker / docker-compose | 低(单容器约 100~200MB) | zlib(CE 免费;Business Edition 3 节点内免费,RBAC 等 BE 功能) | 多台 Docker 主机的容器统一纳管、Stack 部署、日志查看 |
| 宝塔面板 | 应用商店型(建站为主,国内生态) | 原生安装脚本 | 中 | 免费 + 专业版付费(商业软件) | 回避(新部署):强制账号绑定与安全争议(见下方"限制");需国内建站生态时改用 1Panel |
| Webmin | 系统管理型(老牌,模块化,配置文件级) | apt/yum 官方仓库 | 低 | BSD 3-clause | 需要细粒度改系统配置(用户、磁盘、服务);界面较老旧 |
| Semaphore UI | 自动化型(Ansible/Terraform/OpenTofu Web UI) | Docker(官方镜像) | 低(Go 编写,约 50~100MB,需配数据库) | MIT(部分云密钥同步功能 Enterprise-only) | 给 Ansible/Playbook 加 Web 界面,配合现有 IaC 体系 |
各项目主要限制(选型前先看这条):
- 1Panel:原生脚本以 root 安装并接管 ufw/firewalld 的展示与规则,与 Ansible/手写 iptables 可能打架;虚拟机管理等高级能力归专业版。→ 只做"应用商店/快速部署",防火墙仍以 Ansible 为准。
- Cockpit:功能面窄(无应用商店、无多机容器编排),新版 Ubuntu 的 cockpit-docker 已并入 cockpit-podman,容器能力弱于 Portainer;只适合"系统体检"。
- Portainer CE:CE 无 RBAC/细粒度团队权限(属 Business Edition),多租户不够用;只管容器,不碰宿主机配置。
- 宝塔面板:回避。7.0 起核心功能依赖官网账号绑定("暂不绑定"后部分插件/更新仍需登录,社区反馈反复要求重绑);面板以 root 运行,配置与云端 userInfo.json 双向校验,长期存在"厂商锁定/信息上报"争议(官方否认后门)。商用合规与运维可控性都不划算。
- Webmin:直接改配置文件、无变更审计,误操作影响面大;界面陈旧,仅适合精细调参。
- Semaphore UI:部分云密钥同步/审批能力 Enterprise-only;只编排 Ansible/Terraform,不做主机管理。
推荐结论(本环境): - 首选 = 1Panel v2.4.1(应用商店/建站/数据库一键装)+ Portainer CE 2.45 LTS(容器多机纳管):一个补"开箱即用",一个补"多机容器统一视图",职责不重叠;1Panel 装完先把防火墙规则交回 Ansible。 - 选配 = Cockpit(系统观察/日志/服务,socket 按需启动几乎零占用)+ Semaphore UI(Ansible 点按钮执行)+ Webmin(仅需精细改配置时)。 - 回避 = 宝塔面板:强制账号绑定 + root 运行 + 云端校验争议;需要国内建站生态时用 1Panel 替代。
2. 安装¶
约定:所有面板服务落盘在 VM 内 Docker 卷或
/opt下;宿主机不装任何面板。VM IP 以内部交换机网段为例(Vagrant 默认 192.168.56.0/24 或自定义),下文以192.168.56.10代指。
2.1 1Panel(官方脚本,原生安装)¶
# 官方安装脚本(Ubuntu)
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
- 安装中会询问:面板端口(默认随机 5 位,必须改)、安全入口路径(默认随机,务必记录)、面板用户与密码。
- 访问:
http://192.168.56.10:<端口>/<安全入口>—— 无安全入口路径的请求直接 404,这是其防扫描机制。 - 忘记入口:
sudo 1pctl user-info可查看端口/入口/用户信息。 - 注意:1Panel 会接管 firewalld/ufw 的展示与规则管理,与手动 iptables 规则可能冲突;本环境 VM 内防火墙规则变更仍以 Ansible 为准(见第 4 节)。
2.2 Cockpit(apt + 端口 9090)¶
sudo apt install -y cockpit cockpit-docker cockpit-pcp # Ubuntu 22.04 仓库版
sudo systemctl enable --now cockpit.socket
- 访问:
https://192.168.56.10:9090,用系统账号登录(复用 SSH 凭据,无需另建账号)。 -cockpit.socket 为按需启动(systemd socket activation),不用时几乎零资源。 - 宿主机浏览器访问需放行 9090:
sudo ufw allow 9090/tcp(或 Ansible 管理)。
2.3 Portainer CE(docker-compose 模板)¶
# /opt/portainer/docker-compose.yml
services:
portainer:
image: portainer/portainer-ce:2.45.3 # LTS,锁版本
container_name: portainer
restart: unless-stopped
ports:
- "9443:9443" # HTTPS UI
- "8000:8000" # Edge Agent 隧道(内网可选,可不开)
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
cd /opt/portainer && docker compose up -d
- 访问:
https://192.168.56.10:9443,首次进入创建 admin(强密码;30 分钟内未初始化会锁死,需docker compose down && docker volume rm portainer_portainer_data重来)。 - 新版(≥2.43)首次初始化界面有变化(可能要求输入 setup token / 交互更细),以界面提示为准。
2.4 Semaphore UI(Docker)¶
# /opt/semaphore/docker-compose.yml
services:
semaphore:
image: semaphoreui/semaphore:v2.19.18
container_name: semaphore
restart: unless-stopped
ports:
- "3000:3000"
environment:
SEMAPHORE_DB_DIALECT: bolt # 最小化用内嵌库;正式用 MySQL/Postgres
SEMAPHORE_ADMIN: admin
SEMAPHORE_ADMIN_NAME: Admin
SEMAPHORE_ADMIN_EMAIL: admin@lab.local
SEMAPHORE_ADMIN_PASSWORD: "<强密码,装完即改>"
SEMAPHORE_ADMIN_CREATE_ADMIN: "true"
volumes:
- ./data:/data # Playbook/Ansible 配置落盘
cd /opt/semaphore && docker compose up -d
- 访问:
http://192.168.56.10:3000。在 UI 内添加 Git 仓库(Ansible playbook 所在仓库)、密钥(SSH key)、Inventory,即可点按钮跑 Playbook。
3. 高频操作¶
3.1 面板纳管多机¶
Portainer(Agent 模式,首选): - 在每台被管机上跑 Agent(端口 9001,仅内网):
docker run -d --name portainer-agent --restart=unless-stopped \
-p 9001:9001 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
portainer/agent:2.45.3
192.168.56.x:9001。
- Edge Agent 适合被管机不能被主面板直连的场景(Agent 主动外连),本环境内网互通用标准 Agent 即可。
Cockpit 多机:
- 被管机只需 sshd 可达;UI 右上角主机切换器 → Add host → 填 user@192.168.56.x,Cockpit 通过 SSH 连接(可安装被管机 cockpit 包以获得完整功能)。
- 登录凭据用 SSH 密钥:先在主面板机 ssh-copy-id 到各被管机。
1Panel 多机现状(已核实 2026-11): - 1Panel v2 系列支持多机管理:面板"主机"模块可添加多台服务器(SSH 连接),部分虚拟机管理/节点 Agent 能力自 v2.3.0 起增强,其中虚拟机管理等高级能力归属专业版。 - 结论:多机容器纳管以 Portainer 为准,1Panel 多机作为辅助。
3.2 应用商店装 Nginx/MySQL(以 1Panel 为例)¶
- 1Panel UI → 应用商店 → 搜索
OpenResty(Nginx 发行版)/MySQL→ 安装 → 设置名称、端口映射(改默认端口,见第 6 节)、数据卷路径。 - 安装完成后应用卡片页可见:容器状态、端口、数据库连接参数、备份入口。
- MySQL 建库建用户在应用详情页内嵌 phpMyAdmin/Adminer 或终端执行
mysql -uroot -p。 - Portainer 替代方案:Stacks → Add stack → 粘贴 compose 内容 → Deploy(适合自定义 compose 应用)。
3.3 日志与监控查看¶
| 需求 | 操作 |
|---|---|
| 容器日志 | Portainer:Containers → 选容器 → Logs(支持 --tail/搜索/下载);Cockpit:Podman 容器页 |
| 系统日志/journal | Cockpit:Logs 页(按严重级别/服务过滤,内核+journald) |
| CPU/内存/磁盘/网络 | Cockpit:Overview + Metrics(可历史曲线);1Panel:概览页监控;Portainer 仅容器维度 |
| 服务启停 | Cockpit:Services 页操作 systemd 服务(等价 systemctl) |
| 历史性能(PCP) | 装 cockpit-pcp 后 Metrics 页可回看历史,跨重启保留 |
4. 与现有体系集成(面板 vs 命令行分工原则)¶
现有体系:Ansible + git 管理配置变更;Vagrant 管 VM;产物落 F:\EricLiu\。
分工原则:
1. 配置变更以 Ansible + git 为准(source of truth):所有 /etc 下配置、compose 文件、防火墙规则、用户/SSH 配置,走 playbook + git 仓库。面板里手动改的配置一律视为"临时/应急",事后必须回写进 git,否则配置漂移。
2. 面板做观察与应急:看日志、看监控、看容器状态、紧急重启服务、临时查文件——这些用面板快;应急操作后记录到工单/文档。
3. 不通过面板做:数据库主从变更、HA 节点调整(见 HA 分册)、生产防火墙开关、删除卷/数据。
4. Semaphore UI 是桥梁:把日常 Ansible playbook 收进面板,给"点按钮跑自动化"用,不手工改配置。
5. 排障¶
| 症状 | 排查步骤 |
|---|---|
端口冲突(面板起不来,bind: address already in use) |
sudo ss -tlnp \| grep <端口> 找占用进程 → 改面板端口或停掉冲突服务;1Panel:1pctl user-info 查端口;Portainer 改 compose ports 后 docker compose up -d |
| 面板无法访问(宿主机浏览器打不开) | ① VM 内 curl -k https://localhost:9443 判断服务本身是否正常;② ss -tlnp 确认监听 0.0.0.0 而非 127.0.0.1;③ 检查 ufw/安全入口路径(1Panel 少了入口路径必 404);④ Hyper-V 网络核对:宿主机→内部交换机 VM 应直接可达,若走 NAT 网段需确认宿主机路由与 vSwitch 绑定 |
| Portainer Agent 连不上 | ① 被管机 curl 127.0.0.1:9001/id 应返回 JSON;② 主面板机 nc -zv 192.168.56.x 9001 验证网络;③ ufw 放行 9001 仅限内网网段;④ Agent 容器是否 restart: unless-stopped 且 docker.sock 挂载正确 |
| Cockpit 9090 连不上 | systemctl status cockpit.socket;防火墙 firewall-cmd/ufw 是否放行;Cockpit 默认监听所有地址,被改过 cockpit.conf 需检查 |
| 1Panel 打开 404 | 缺安全入口路径;sudo 1pctl user-info 核对 |
| 面板证书告警 | 自签证书为正常现象;如需正式证书,内网可用 ACME DNS 验证或自建 CA,配置写进 Ansible |
6. AI 操作守则(AI 助手指导操作时必须遵守)¶
- 默认端口必改:任何面板/服务不得用默认端口暴露(Cockpit 9090、Portainer 9443、1Panel 随机端口保留、Semaphore 3000 等)。改端口操作写进 Ansible。
- 强密码:admin 账号强制 16+ 位随机密码;生成后存入用户密码管理器/密钥库,不写入明文文档。首次登录后立即改默认密码(Semaphore ADMIN_PASSWORD 环境变量装完即改)。
- 只绑内网:所有面板端口只监听/放行 Hyper-V 内部交换机网段(192.168.56.0/24 等),禁止映射到 NAT 公网侧、禁止 0.0.0.0 + 公网放行。ufw 规则示例:
ufw allow from 192.168.56.0/24 to any port <端口>。 - 升级前快照:面板升级前先在 Hyper-V 执行 VM 快照(
Checkpoint-VM),失败可回滚;升级窗口内记录版本号变更到文档。 - 版本锁定:docker 镜像用固定 tag(如
2.45.3),不用latest;升级前读 release notes(Portainer 注意 CE 停留在 2.x LTS 线,3.0 为 Kubernetes-first)。 - 配置不漂移:面板里任何持久性改动,24 小时内回写 git/Ansible;否则标记为待回收。
- 不装宝塔(除非用户明确坚持),如装则如实告知强制账号绑定与争议,并要求只绑内网。