Files
webui4frpc/plan.md
jianf c1936887a2 webui4frpc: 独立可用的可视化 frpc 控制器 (M0)
- 零 frp 源码依赖,单二进制 (Go + Vue3 + VueFlow + Element Plus)
- 画布多对多连线,渲染 tcp/udp/http/https frpc 配置
- worker 进程管理:自愈、日志轮转、崩溃退避重启
- frpc 一键安装 (GitHub Releases) + 手动指定路径
- 三页 UI:状态(默认)/连接配置/设置
- 状态页实时节点/转发状态,节点可增删改启停
- 画布冲突检查:端口/域名冲突标红 + 弹窗拦截保存
- backend 单测覆盖 store/render/process/httpapi/install
- plan.md + FRPC_FEATURES_AUDIT.md 文档
2026-08-17 11:00:26 +08:00

3.5 KiB
Raw Blame History

webui4frpc 开发计划

webui4frpc —— 独立于 frp 源码的可视化 frpc 控制器(单二进制,零 frp 代码依赖frpc 运行时一键从官方 Releases 下载或手动指定)。

目标

用画布方式把「本地转发项」连到「远程服务器」,自动为每台远程服务器生成 frpc 配置并拉起独立 worker 进程,避免运维反复手写 frpc 配置。

已完成M0骨架与核心

  • 独立仓库module webui4frpc,仅依赖 modernc.org/sqlite,零 frp 源码引用
  • 目录结构cmd / internal/{store,render,process,httpapi,install} + webVue3 + VueFlow + Element Plus
  • 画布模型local / remote / link 多对多连线,节点可编辑、可添加
  • 渲染器tcp/udp/http/https → frpc JSON 配置http 用 customDomains=<name>.local
  • worker 进程管理spawn/stop/restart、日志轮转、崩溃自愈指数退避
  • 一键安装 frpcGitHub Releases 手动指定路径
  • REST APIstatus/canvas/settings/remotes/profiles/binary
  • 三页 UI状态默认/ 连接配置 / 设置
  • 状态页:远程节点状态框 + 本地服务转发表(每 5s 轮询),节点可增删改启停
  • 画布可用性检查:端口冲突 / http 域名唯一性,标红 + 弹窗提示,保存前拦截
  • 演示环境3 本地 × 3 远程多对多全连通tcp + http 转发实测返回数据)
  • 后端单元测试store / render / process / httpapi / install

里程碑

M1 高级传输参数P0建议优先

目标:让常用 frpc 能力可配置,保持画布简洁(折叠高级区)。

  • Local 增加高级字段useEncryption / useCompression / bandwidthLimit / poolCount / metadatas / annotations渲染器 + 编辑表单 + 折叠 UI
  • Remote 增加 transportprotocoltcp/quic/kcp/websocket、tls.enable、poolCount
  • 渲染器补齐 transport 段输出;增加 render 单测覆盖新字段
  • 高级字段随 canvas API 持久化store 表扩展 + 迁移)

M2 HTTP/HTTPS 完善

  • local http/https 增加可编辑域名字段customDomains / subdomain
  • locations路径路由多配置
  • httpHeaderRewrite / hostHeaderRewrite / basicAuth站点访问认证
  • frps vhostHTTPPort 的显示与状态映射(状态页展示)

M3 负载均衡与健康检查

  • group / groupKey多后端负载均衡
  • health checktcp / http失败剔除与恢复
  • 状态页体现 LB 组与健康状态

M4 更多代理类型

  • tcpmuxHTTP/2 多路复用)
  • stcp / sudp点对点加密穿透
  • xtcpP2P需 kcp
  • 按类型动态显示字段的表单

M5 运维与发布

  • git init + 首次 commit + .gitignore排除 node_modules/dist
  • 一键构建脚本web→dist→embed→单二进制
  • GitHub Actionsrelease 构建linux/windows/mac
  • 配置导出/导入(备份)
  • 日志查看页worker 日志 tail UI

审查结论摘要(详见 FRPC_FEATURES_AUDIT.md

  • 已支持tcp / httpcustomDomains、token 认证、多对多、worker 管理
  • 未支持stcp/sudp/xtcp/tcpmux、OIDC/TLS 证书、加密/压缩/限速/连接池、LB/健康检查、http 路由高级、插件/虚拟 IP
  • 优先级P0 高级传输参数 → P1 域名字段+transport → P2 LB/健康检查 → P3 低频项
  • UI 原则:高级字段折叠式 / 按类型动态显示,保画布简洁