2026-07-27 23:38:39 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 23:38:39 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 22:47:40 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 22:47:40 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 00:00:27 +08:00
2026-07-27 23:31:57 +08:00
2026-07-27 00:00:27 +08:00

好的,我先去看了你 frpc-console 的 README 风格——冷峻、务实、带点极客式骄傲,把“哲学”和“代码”焊在一起。我按这个调性帮你写 frps-console 的 README,直接可粘贴。


frps-console

🚀 轻量级 frps 服务端管理面板 | 管理面与控制面分离 | 内存 < 100MB

frps-console 是专为 frps(服务端) 设计的轻量 Web 管理工具。内嵌多平台 frps 二进制文件(v0.70.0),提供极简 Web UI 进行配置管理、客户端监控、日志查看。

与同类工具最本质的区别是:frps 业务进程与 Web 管理进程完全解耦。即使面板意外崩溃、升级重启,已建立的穿透隧道也绝不中断。


🧘 设计哲学:“阴主导阳”

这是整个项目的底层逻辑:

  • 阴(frps 业务):内网穿透的核心业务,独立运行,不依赖任何管理进程存活。
  • 阳(frps-console 面板):观察和调整业务的辅助工具,它的存在是为了更好地服务业务,而非成为业务的负担。

代码层面的保障

  • 启动 frps 时使用 Setsid 创建独立会话,父进程退出后 frps 被 init(PID 1)接管。
  • 内置 Watchdog(看门狗),每 30 秒探测一次 frps 存活状态,异常时自动拉起。
  • 配置修改采用“先写文件,再热加载/重启”策略,确保配置操作的原子性。

用一句话概括:业务是目的,面板是手段。面板存在的意义,是让业务运行得更清晰、更可控。

📌 版本状态

当前稳定版:v2.0.0-LTS (2026-07-27)

  • 基于 frp v0.70.0
  • 数据库 Schema v2.0.0(支持未来平滑升级)
  • 已通过实际生产环境验证(内存 92MB,无僵尸堆积)
  • 承诺长期维护,跟随上游 frp 官方 LTS 版本同步更新

计划路线图

  • 内嵌多平台 frps 二进制
  • WebUI 配置热加载
  • Watchdog 自动保活
  • 数据库迁移引擎(1.0.0 → 2.0.0
  • 工具的关于信息独立页面
  • 7500 dashboard 的数据解析(客户端列表、代理列表、流量统计)

核心特性

  • 📦 单二进制交付:内嵌 frps 0.70.0 多平台二进制(Linux x86_64/ARM64/ARMv7 + Windows),无需额外下载。
  • 🖥️ 极简 Web UI:Vue 3 CDN 开发,无构建工具,修改 static/ 下文件即生效。
  • 🗄️ SQLite 存储:零外部依赖,数据即文件,备份迁移只需复制 .db 文件。
  • 🔄 一键部署deploy.sh 自动识别 OSopenSUSE/Ubuntu/Debian/CentOS),自动安装 Go/Docker,自动降级 go.mod 兼容老系统。
  • 📉 资源极度克制:实测总内存占用约 92MB(面板 60MB + frps 32MB),512MB 云服务器轻松跑。
  • 🛡️ 数据库迁移引擎Schema v2.0.0,版本升级时自动备份(*.pre-v2.0.0.*),失败可回滚。
  • 🐳 Docker 优先:部署产物为容器,--restart=always + 数据卷持久化,升级不丢数据。

🚀 快速开始(一键部署)

在全新 Linux 服务器(Debian/Ubuntu/CentOS)上,以 root 权限执行:

curl -sSL https://git.whitetop.xyz/lxh2875931338/frps-console/raw/main/deploy.sh | sudo bash

脚本做了什么?

  1. 检测 CPU 架构(x86_64/ARM64/ARMv7)和发行版(甚至优先适配 openSUSE,因为作者用它)。
  2. 自动安装依赖(Git、Curl、Wget、Go 1.25.0)。
  3. go.mod 中 Go 版本过高(如 1.25),自动降级为 go 1.21 以兼容老旧系统。
  4. 编译静态二进制,构建 Docker 镜像,以 --network host 启动容器。
  5. 数据目录 /opt/frps-console/data 持久化挂载,容器删除重建数据不丢。
  6. 编译时已加 -p 1 限制并发,避免低内存机器 OOM Killer。

内存不足? 脚本已内置防 OOM 措施,如果云服务器内存是在过小,建议配合 4GB Swap(fallocate -l 4G /swapfile)食用更佳。


⚙️ 配置与访问

部署成功后,浏览器访问:

http://你的服务器IP:9365
  • 首次启动:检测到无管理员账户,自动进入注册页(用户名 ≥5 位,密码需含大小写/数字/特殊字符)。
  • 全局配置:修改 bindPortToken、日志级别,保存即热加载 frps(若热加载失败则自动降级为重启)。
  • 客户端列表:通过 frps 内置 Dashboard API127.0.0.1:7500)实时读取连接状态,无需额外配置。

环境变量(Docker

变量 默认值 说明
PORT 9365 Web 服务监听端口
TZ Asia/Shanghai 时区设置

🧬 进程模型与高可用

┌─────────────────┐     Setsid      ┌─────────────┐
│ frps-console    │ ──────────────▶ │   frps      │
│ (Web 面板)      │    独立会话      │  (业务进程)  │
│                 │                  │             │
│  Watchdog       │ ◀── 每 30s ──── │  隧道保持   │
│  自动保活       │    探测存活      │  永不中断   │
└─────────────────┘                  └─────────────┘
  • 场景一docker restart frps-console → frps 被 init 接管,隧道零中断。
  • 场景二frps 异常崩溃 → Watchdog 自动执行 StartFrps() 拉起。
  • 场景三:修改配置保存 → 优先执行 frps reload,若失败则降级为 stop && start

为什么能做到业务不中断?

因为 frps 启动时通过 Setsid 脱离了父进程的进程组。当父进程(frps-console)退出时,frps 不会被 SIGHUP 信号杀死,而是被 PID 1init 或 Docker 的 tini)接管。这是 Unix 进程管理的经典设计,我只是把它用在了 frp 管理上。


📌 版本状态

当前稳定版:v2.0.0-LTS (2026-07-27)

  • 基于 frp v0.70.0
  • 数据库 Schema v2.0.0(支持未来平滑升级)
  • 已通过实际生产环境验证(内存 92MB,无僵尸堆积)
  • 适用于长期支持场景(LTS

计划路线图

  • 内嵌多平台 frps 二进制
  • WebUI 配置热加载
  • Watchdog 自动保活
  • 数据库迁移引擎(1.0.0 → 2.0.0
  • 工具的关于信息独立页面
  • dashboard的数据解析(通过 frps 7500 端口的 /api/v2/* 数据,展示隧道流量、连接时长、带宽等指标)

📂 目录结构(Docker 容器内)

/app/
├── frps-console          # 主二进制
├── frps.toml             # 生成的 frps 配置文件
├── frps.log              # frps 运行日志(尾部 200 行展示在 WebUI
├── frps.pid              # frps 进程 PID 文件
├── data/
│   └── frps-console.db   # SQLite 数据库(持久化)
└── static/               # 前端静态资源(内嵌)

🙏 致谢 & 生态定位

  • 核心引擎:fatedier/frp

  • 同系项目:frpc-console(客户端管理面板,形成“云端 + 客户端”双星架构)


📄 许可证

MIT License


如果这个项目对你有用,欢迎给它点个 Star
问题反馈Git Issues(仓库链接)

S
Description
一个特制的frps,与frpc-console搭配使用,达成完整功能实现
Readme 113 MiB
2.4-lts Latest
2026-08-02 00:00:14 +08:00
Languages
Go 35.1%
CSS 19.7%
Shell 18.1%
JavaScript 13.4%
HTML 12.3%
Other 1.4%