From 5cadde8de9cda516f5e96e447e18038060bb42e4 Mon Sep 17 00:00:00 2001 From: lxh2875931338 Date: Thu, 23 Jul 2026 22:39:27 +0800 Subject: [PATCH] =?UTF-8?q?readme=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frpc-console.db | Bin 36864 -> 0 bytes frpc.log | 3 --- readme.md | 54 +++++++++++++++++++++++++++++++++++++++--------- 3 files changed, 44 insertions(+), 13 deletions(-) delete mode 100644 frpc-console.db delete mode 100644 frpc.log diff --git a/frpc-console.db b/frpc-console.db deleted file mode 100644 index 0ebcfd7aaeb423f08e009e329eba619482a571e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36864 zcmeI*+fUn890zclKrXFlCQXwkF-=B80@RY(ajumrno&ccNua@z;9;{I`-FHnv2h$o zwkNtxdziGhy-fW>`aewjEA}7sq1xk4E+jZ42vyq<)%Pe)9Oqm==V!|aiP?XdH$B2v zZMUv@yu^IOuq^YG=NX0x(IrBci!@7Dy30jkFIKL33^B3a{+N&c&4j}W^WgXBpAVkj z|2k5*9}6pyPp>J5mmmNE2tWV=5V&Ik=ebabTU=yc6+EqC5zTQ_-ELIPqtRM;qa^1P znOAaO8DusjG)*{Q84TH3sCl)

eR802yb)1qQ9r>Zzu3H?-? z4ROoM>@U$?JRDheg}V0l1>ci7Uu^hZx>X7o)TBp48!$L z=+Je!>N>Hr8jW$!c4F<$cVqD|sA1w14lBt@$&9~Y&psxNX-($aHBk`af)vk;wPx8z zszpwTHLa-GsM-_C)U~#1Xr1PjcpP?78tb3#sP$HRdj7F^qdQ7Bzj{oFqgm!DnO;&7 z{7uz}=6V$xuBzGa=zM6_^s-`dT3OGm6T5YFhZ_zsJ=Uya+ue9;HLfW$HfisP(P(!c99o^`um>_Yk0`6yfe^ z#XMcu==Ti0Awd8F5P$##AOHafKmY;|fB*y_@b3$p&#)n8{d`W6tadG)Nhhb9bk4P%&dWW-NE8cTTiK;beC+SAS7G z(1m?{XS3DO^G+%*#8YcRdMz&TqV!lwJWggOY`RCs#YX>P=nV-15P$##AOHafKmY;| zfB*y_0D-$J@L6CzGW8RN{@?%KG0}H-cYx?Q1Rwwb2tWV=5P$##AOHafKmY=h1j1~9 zi}Zd7(0~8`hKatJln>h=009U<00Izz00bZa0SG_<0uZ=OflYRvS)2Ld6E?!qB#mFd zW9ipR*VpJ?FC*}IbTfSQ`~O1s{Xf0v9})y0009U<00Izz00bZa0SG_<0w1tI_xJyJ z|Nj9`Fop&J2tWV=5P$##AOHafKmY;|paT8x|G#FUufYKU2tWV=5P$##AOHafKmY;| zfWU1CRM@%2^LgppGf!<2`rib-lvEKDSwj?3S&0alq@jtGL{>|u<62hCWaCC!)OC_c z8}W2TOQeZbNv4cSx++#usYHg53E%(kU;qCt6McIdBSf1JfB*y_009U<00Izz00bZa R0SNpz0`q~z$mk=5e*oV5iYWj9 diff --git a/frpc.log b/frpc.log deleted file mode 100644 index 8d04064..0000000 --- a/frpc.log +++ /dev/null @@ -1,3 +0,0 @@ -2026-07-23 21:35:00.019 [I] [sub/root.go:201] start frpc service for config file [./frpc.toml] with aggregated configuration -2026-07-23 21:35:00.029 [I] [client/service.go:308] try to connect to server... -2026-07-23 21:35:00.201 [I] [client/service.go:328] [097a9da8160ea584] login to server success, get run id [097a9da8160ea584] diff --git a/readme.md b/readme.md index 256c6a7..0330b5d 100644 --- a/readme.md +++ b/readme.md @@ -22,16 +22,6 @@ - 🐳 **容器化就绪** —— 提供 Docker 镜像,开箱即用 - 🎨 **深色磨砂玻璃 UI** —— 现代化视觉体验,日夜皆宜 -### 🎯 与 Podux 的对比 - -| 特性 | frpc-console | Podux | -|---|---|---| -| 数据库 | SQLite (几 MB) | PocketBase (数百 MB) | -| 前端 | Vue CDN (无需构建) | React + Webpack | -| 内存占用 | ~50 MB | 1GB+ (实测 OOM) | -| 部署方式 | 单二进制 / Docker | Docker 专用 | -| 多平台支持 | ✅ 原生交叉编译 | ❌ 需自行构建 | - --- ## 🚀 快速开始 @@ -171,6 +161,50 @@ docker buildx build --platform linux/amd64,linux/arm64 -t frpc-console:latest -- | Linux | ARM64/Aarch64 | 0.70.0 | | Windows | AMD64/x86-64 | 0.69.0 | +#### Q: 为什么不用 / 不推荐 Podux? + +Podux 是个好项目,理念上和我们是一致的:用 Web 界面管理 frpc
+但它的设计取向和我们完全不同: + +| 对比项 | frpc-console | Podux | +|---|---|---| +| 数据库 | SQLite(单文件,几 MB) | PocketBase(带 Admin UI、用户系统、全套 API) | +| 前端 | Vue CDN | React + Webpack | +| 内存占用 | **~50 MB** | **没启动成功,1GB RAM 独立分配仍 OOM(原因不明)** | +| 镜像大小 | ~30 MB | 76.1 MB | +| 部署方式 | 单二进制 / Docker | 单二进制 / Docker | +| 多平台支持 | ✅ 原生交叉编译 | ✅ 原生交叉编译 | + +> Podux 与其说是一个 frp 控制面板,不如说是一个“一站式 frp 管理器 + 可视化数据流”。一站式本身没毛病,但 PocketBase 自带 WebUI 的情况下,Podux 还要再包一层 WebUI——相当于给数据库的 UI 又套了个 UI。更费解的是,这层 WebUI 只支持导入,不支持导出。这设计确实让人有点摸不着头脑。 + + +### Q: 为什么不直接用 frp 官方提供的 web 界面? + +frp 官方确实提供了 `dashboard` 和 `frpc-admin` 功能,但它们更多是“监控”视角,而非“管理”视角。你需要手动编辑配置文件,重启 frpc,或者依赖命令行操作。 + +frpc-console 的目标是: +- **点一点就能新增隧道** +- **开关一拨就能启用/禁用** +- **导入导出无缝迁移** +- **热加载无需重启** + +### Q: 支持 frp 的所有功能吗? + +frpc-console 覆盖了 frp 最核心的 **TCP 隧道管理** 功能,包括 `tcpMux`、负载均衡、心跳配置等。如果你有更复杂的需求(比如 STCP、XTCP、P2P),欢迎提 issue,我们会评估是否加入。 + +--- + +## 🧠 设计哲学 + +frpc-console 遵循 **“够用就好”** 的原则: + +1. **frp 是轻量工具,管理工具也应该是轻量的。** +2. **能用 SQLite 就不用 PostgreSQL,能用 Vue CDN 就不用 React 全家桶。** +3. **前端能做的事,后端不加额外复杂度。** +4. **删掉一个容器等于删掉所有垃圾,所以用 Docker 隔离是对的。** + +我们不追求“企业级”,我们追求 **“嵌入式友好”**。 + --- ## 📝 更新日志