多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Proxmox VE 官方面板用腻了,自己弄了个 ProxCenter,记录一下部署过程

Proxmox VE 官方面板用腻了,自己弄了个 ProxCenter,记录一下部署过程 为什么写这个Proxmox VE 的官方面板我用了三年多有些地方实在受不了。建个带 cloud-init 的虚拟机得在存储、镜像、VM、克隆几个页面之间来回跳中间 VMID 还要自己敲。批量操作是没有的十台机器改配置就得点十次。安全运维这块基本空白SSH 有没有人在爆破、有没有可疑进程在监听官方界面一概不管。折腾了一段时间写了个 ProxCenter把常用的操作重新做了一遍。这篇记录一下怎么装、能干什么以及我踩过的坑。一、部署方式一裸机部署推荐第一步先在 PVE 上建一个 API Token。SSH 上去执行pveum useraddpanelpve--commentProxCenter panelpveum user tokenaddpanelpve panel--privsep0输出里的full-tokenid长得像panelpve!panel是 Token IDvalue是 Token Secret两个都记下来。第二步授权pveum acl modify /--userpanelpve--rolesPVEVMAdmin,PVEDatastoreUser,PVESDNUser,PVEAuditor,PVEVMUser这几行 README 里有更细的表格官方文档也说得清楚这里不展开。第三步装面板gitclone https://github.com/yjscloud/ProxCenter.gitcdProxCentersudo./deploy.sh这个脚本会装 Python 依赖、构建前端、建库、装 systemd 服务全程不问你问题重复跑也不会破坏已有配置。装完最后一屏会打印面板地址和初始口令口令只显示这一次记得存下来。默认端口 8080库名proxcenter_panel服务名proxcenter。想看日志用journalctl -u proxcenter -f。方式二Docker 部署宿主机上有 Docker 就行curl-fsSLOhttps://raw.githubusercontent.com/yjscloud/ProxCenter/main/docker-compose.ymldockercompose up-d打开http://服务器IP:8080账号admin口令ProxCenter2026。这里有个坑要注意口令一定要改。三个口令面板登录、数据库、MySQL root都写在docker-compose.yml里搜★ 改这里。另外这些口令只在第一次初始化时生效容器跑起来之后再改文件是没用的得docker compose down -v重建数据会丢或者进库手动改。二、能干什么虚拟机四步创建向导空白新建、模板克隆、云镜像导入都支持。生命周期操作齐全CPU 和内存能在线改磁盘能扩容、能迁存储也能跨节点迁移。批量操作是我用得最多的勾几台一起执行单台失败不影响其他跑完可以只重试失败的。LXC 容器独立的一套页面三步创建rootfs 扩容、网卡增删、快照克隆迁移都有。cloud-init 模板从云镜像一键生成模板中途哪一步失败会自动清理临时虚拟机。模板做好后可以批量部署自动注入主机名、SSH 公钥、IP。网络Bridge、Bond、VLAN 增删改都有改动先进「待应用」点「应用配置」才生效。这个设计是防止你手滑改错网桥把节点网络搞断。防火墙封装的 PVE 原生防火墙数据是同一份。集群、节点、虚拟机容器三个作用域支持安全组、IP 集合、规则模板批量下发。安全运维这块官方 UI 里没有SSH 防爆破按来源 IP 聚合失败次数一键封禁管理 fail2ban安全基线七类检查A~D 评分一键加固校验不过自动回滚端口巡检列出监听端口和进程启发式标记可疑项应急响应可疑虚拟机一键隔离先快照取证、再断网、再关机备份卷防删监控仪表盘、节点实时指标、磁盘容量外推、RRD 曲线。快照备份管理可视化定时备份任务。控制台浏览器内 noVNC支持自动重连和全屏不用把 PVE 的 Web 界面暴露到公网。AI 排查助手把巡检结果丢给大模型做归因输出带source_ref的报告。默认只读执行命令走白名单改系统必须先批准。三、踩过的坑面板能登录但虚拟机、存储列表全是空的这是最常见的坑我在创建 Token 的时候就中招了。PVE 的 Web 界面里建 Token默认勾选「特权分离」。这样建出来的 Token 权限是零需要特权的接口返回 403但/storage这种接口会老老实实返回 200 加一个空数组看起来就像面板坏了。面板里点「设置 → 环境自检」它会去问 PVE 当前凭据有哪些有效权限然后列出该补哪条命令。大概是这样pveum acl modify /--tokensrootpam!panel--rolesPVEVMAdmin pveum acl modify /--tokensrootpam!panel--rolesPVEDatastoreUser pveum acl modify /--tokensrootpam!panel--rolesPVEAuditor为什么第一条命令我写的是--privsep 0这里却给了--tokens因为如果你一开始没注意建成了特权分离的就得这样补权限。用pveum token list看privsep是不是 1是的话就是这个原因。控制台打不开或者连上黑屏打不开是 Proxmox 的限制API Token 访问不了vncproxy所以要在设置里额外填一个 PVE 账号的密码建议只给PVEVMUser角色。连上但黑屏是因为云镜像默认不往图形控制台输出启动日志。面板自己建的模板会自动配serial0和vga: serial0手工建的模板得自己在 PVE 里补上。模板构建卡在 importdisk镜像必须放在 dir、NFS 或 CIFS 类型的存储上因为importdisk需要文件级访问。放 LVM 或 ZFS 会失败。失败时面板会自动清理掉临时虚拟机不会留垃圾。Docker 部署容器反复重启一般是数据库口令对不上。看日志确认dockercompose logs panel|tail-30找Access denied或者Cant connect有的话就是这个问题。暴露到公网要套 HTTPS面板自己不提供 TLS。要上公网就用 Nginx 或 Caddy 在 443 上终结反代到 8080。WebSocket 必须一起代理不然控制台连不上location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_read_timeout 3600s; }同时记得设FORCE_HTTPStrue否则直连 8080 还是明文。四、小结ProxCenter 补的主要是官方面板缺的那几块批量操作、cloud-init 流水线、原生的防火墙可视化还有一整套安全运维工具。后端大概 1000 个测试用例分三层跑测试不需要真实的 PVE 环境。在线演示https://prox.yjscloud.com仓库https://github.com/yjscloud/ProxCenter协议Apache-2.0有些功能还在完善可能不太稳定遇到问题提 issue 或者加我微信都行也欢迎 PR。
返回列表