跳转至

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
- 在 Portainer UI:Environments → Add environment → Agent → 填 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 为例)

  1. 1Panel UI → 应用商店 → 搜索 OpenResty(Nginx 发行版)/ MySQL → 安装 → 设置名称、端口映射(改默认端口,见第 6 节)、数据卷路径。
  2. 安装完成后应用卡片页可见:容器状态、端口、数据库连接参数、备份入口。
  3. MySQL 建库建用户在应用详情页内嵌 phpMyAdmin/Adminer 或终端执行 mysql -uroot -p。
  4. 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 助手指导操作时必须遵守)

  1. 默认端口必改:任何面板/服务不得用默认端口暴露(Cockpit 9090、Portainer 9443、1Panel 随机端口保留、Semaphore 3000 等)。改端口操作写进 Ansible。
  2. 强密码:admin 账号强制 16+ 位随机密码;生成后存入用户密码管理器/密钥库,不写入明文文档。首次登录后立即改默认密码(Semaphore ADMIN_PASSWORD 环境变量装完即改)。
  3. 只绑内网:所有面板端口只监听/放行 Hyper-V 内部交换机网段(192.168.56.0/24 等),禁止映射到 NAT 公网侧、禁止 0.0.0.0 + 公网放行。ufw 规则示例:ufw allow from 192.168.56.0/24 to any port <端口>。
  4. 升级前快照:面板升级前先在 Hyper-V 执行 VM 快照(Checkpoint-VM),失败可回滚;升级窗口内记录版本号变更到文档。
  5. 版本锁定:docker 镜像用固定 tag(如 2.45.3),不用 latest;升级前读 release notes(Portainer 注意 CE 停留在 2.x LTS 线,3.0 为 Kubernetes-first)。
  6. 配置不漂移:面板里任何持久性改动,24 小时内回写 git/Ansible;否则标记为待回收。
  7. 不装宝塔(除非用户明确坚持),如装则如实告知强制账号绑定与争议,并要求只绑内网。