自建科学上网:酷猫云Xray代理面板架构与部署实录
技术栈总览
层级 | 选型 | 说明 |
|---|---|---|
Web 框架 | FastAPI 0.111 + Uvicorn | 异步 ASGI,单机可撑数千并发 |
数据库 | SQLite(WAL 模式) | 零运维,23 张表,内置迁移机制 |
ORM | SQLAlchemy 2.0 async | 配合 aiosqlite 全异步读写 |
前端渲染 | Jinja2 + HTMX + Alpine.js | 服务端渲染,无需 Node.js 构建 |
样式 | Tailwind CSS(CDN) | 紫色/品红主色调,响应式布局 |
定时任务 | APScheduler 3.10 | 11 个后台任务,流量采集到自动备份 |
远程管理 | AsyncSSH + HTTP Agent | 面板通过 SSH 或轻量 Agent 调度落地机 |
代理内核 | Xray-core | 脚本自动安装,支持 VLESS Reality / SS |
HTTPS | Caddy(可选) | 自动签发 Let's Encrypt 证书 |
整套系统不依赖 MySQL、Redis、Docker,也不需要 npm 构建,一台 1 核 1G 的 VPS 就能跑面板本体。前端用 HTMX 做局部刷新、Alpine.js 处理客户端交互,改完模板立刻生效,对二开非常友好。

登录页 -- 浅紫背景 + 居中白色卡片,品牌色贯穿全站
部署条件与流程
服务器要求:
系统:Ubuntu 20+ 或 Debian 11+(仅支持 Linux)
配置:1 核 CPU / 1 GB 内存起步
权限:root
网络:需放行面板端口(默认 18080)和节点端口
部署耗时: 全新服务器约 10 分钟完成,含 Xray 内核 + 网络优化 + BBR + 面板。
关键步骤:
将源码上传至服务器
/root/xray-panel执行一键部署脚本:
bash install-all.sh脚本自动完成:安装 Python 依赖、初始化数据库、创建 systemd 服务、安装 Xray 内核、开启 BBR 和网络优化
部署完成后终端打印面板地址和管理员密码,浏览器直接访问
(可选)绑定域名并开启 HTTPS:
bash panel_install.sh install --https your-domain.com扩容落地机:在面板添加服务器 IP → 远端一键装 Agent → 面板下发配置
国内服务器可加 --mirror cn 参数走清华镜像加速安装。支持在已有 Xray 的机器上增量装面板,自动导入现有节点配置。

管理后台仪表盘 -- KPI 一屏总览,24h 流量曲线实时刷新
核心功能梳理
管理端
节点与协议管理 -- 支持 VLESS Reality、Shadowsocks、SOCKS5、HTTP 四类协议。节点可设流量配额、带宽限速、设备数限制、IP 白名单、流量倍率、到期时间,配置变更留档可回滚。后台每 60 秒自动 TCP 探活,异常节点触发 Telegram 告警。
多服务器纳管 -- 一个面板管所有机器。新增服务器填 IP 和 SSH 凭据即可,也可在落地机装轻量 Agent(单文件 FastAPI 微服务),面板通过 HTTP 下发 Xray 配置,比纯 SSH 更快更稳。支持远程一键网络优化和 Agent 批量升级。
商业化闭环 -- 套餐管理(按时长 / 按流量两种计费)、订单自动开通、对接易支付协议(微信 / 支付宝 / USDT)、用户钱包余额抵扣、邀请返佣机制、工单系统、公告管理,运营所需功能一应俱全。

节点管理 -- 协议、流量、倍率、到期时间一目了然
用户端
用户注册后拥有独立门户:查看套餐状态和流量余额、一键获取订阅链接和二维码、按 iOS / Android / PC 平台分类展示客户端导入方式、内置图文教程、自助工单和邀请返利。订阅链接每 24 小时自动同步节点变更,用户无需手动更新。

用户端首页 -- 套餐状态、KPI 卡片、订阅链接、系统公告集中展示
监控与自动化
系统内置 11 个定时任务覆盖运营全周期:每 30 秒采集流量、每 60 秒探活节点、每分钟巡检配额和到期状态、每日自动备份数据库(保留 14 份)、每月 1 日重置流量。24 小时流量曲线用纯 SVG 绘制,不依赖任何图表库。Telegram 机器人自动推送节点掉线、配额耗尽、即将到期等告警,同一事件 12 小时内只推一次。
二开空间评估
源码状态: 全量 Python 源码交付,无编译、无混淆、无加密。46 个 Python 文件约 14000 行,48 个 HTML 模板约 5500 行,代码注释充分(中英双语),开发阶段标注清晰(Phase 1 ~ Phase 31)。
改动难度: 低。前端是纯 Jinja2 模板 + Tailwind CSS,改样式和布局不需要任何构建步骤,保存即生效。后端 FastAPI 路由拆分到 16 个模块文件,职责清晰,加接口或改逻辑都比较顺畅。数据库用 SQLite 单文件,内置了自动迁移机制(db.py 里维护了 150+ 列迁移),加字段不需要手动写 migration 脚本。
可改方向举例:
换品牌:站点名称、配色、Logo 均可在后台设置页直接改,不用动代码
加协议:在 xray_manager.py 的配置生成器中扩展 inbound 模板
对接其他支付:payment.py 当前对接易支付协议,可参照其结构接入其他网关
多语言:模板中的中文文案集中在 HTML 里,可抽取为语言包

套餐商店 -- 支持按时长和按流量两种计费,对接微信/支付宝/USDT
总结
维度 | 结论 |
|---|---|
能否部署 | 能。一键脚本 10 分钟完成,附 6 篇部署文档 + 3 篇使用手册 |
能否二开 | 能。纯 Python 源码无加密,前端无构建步骤,改完即生效 |
适合谁 | 需要搭建代理订阅服务并商业化运营的个人或小团队 |
技术门槛 | 低。懂基础 Linux 操作即可部署;二开需要 Python + HTML 基础 |
短板 | SQLite 单文件数据库在超大用户量下可能成为瓶颈;不支持 Windows 部署 |
下载地址
会员免费本资源为会员专享,登录后可下载

