Files
webui4frpc/FRPC_FEATURES_AUDIT.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

5.5 KiB
Raw Blame History

webui4frpc 对 frpc 高级功能支持审查报告

审查基准frp v0.71 的 frpc 配置能力(官方文档支持的 proxy 类型、认证、传输、插件等)。 审查范围:当前 webui4frpc 的画布数据模型Local/Remote/Link、渲染器internal/render能表达和输出什么。

一、总体结论

当前实现聚焦「最小可用」:TCP/HTTP 单端口转发 + token 认证 已打通并验证(多个远程节点、多对多连线、真实连通)。但 frpc 的大部分高级能力尚未建模,且已有能力因模型缺字段而不可配置。适合作为 1.0 基线,但要覆盖更广使用场景需系统性扩展。

二、能力支持矩阵

2.1 代理类型proxy type

类型 状态 说明
tcp 完整支持LocalIP/LocalPort/RemotePort
udp 🟡 部分 渲染支持但协处理器KCP/加密等)未建模
http 🟡 部分 支持 customDomains 默认域名,但无法配置 locations/headers/负载均衡
https 🟡 部分 同 http未建模证书/SNI
stcp 加密点对点穿透完全不支持
sudp 同 stcp
xtcp P2P TCP 模拟(依赖 kcp-go不支持
tcpmux HTTP/2 多路复用multiplexer/http2不支持

2.2 认证auth

能力 状态 说明
服务端 token Remote 有 Token 字段
OIDC frpc 支持 openid connectcoreos/go-oidc未建模
TLS 客户端证书 未建模

2.3 传输transport

能力 状态 说明
tcp / kcp / websocket / quic 🟡 Remote 无 protocol 字段,无法选择
加密 / 压缩useEncryption/useCompression 未建模
带宽限制bandwidthLimit 未建模
连接池poolCount 未建模
TLS 传输transport.tls.enable 未建模
Connect Server 超时/重连 未建模(有默认值)

2.4 负载均衡与健康检查

能力 状态 说明
多个 local 提供同一组group/loadBalancer 未建模 group/groupKey
health checktcp/http失败剔除 未建模 HealthCheckConfig

2.5 域名与路由http/https

能力 状态 说明
customDomains 多域名 🟡 可输出,但画布 local 无域名字段(写死 name.local
subdomain 🟡 render 支持生成,但依赖服务器 subdomain_host演示环境未启用
locations路径路由 未建模
httpHeader 改写 / hostHeaderRewrite 未建模
basicAuth站点访问认证 未建模

2.6 插件plugin与虚拟 IP

能力 状态 说明
client pluginhttp2https/static/server 等) 未建模
vmnet虚拟 IP 未建模

2.7 其它

能力 状态 说明
元数据 metadatas / annotations Remote 有 URL 但无 metadatas
start (enabled 控制) Remote 有 Enabled
全局配置byteLimit 等) 未建模

三、具体缺口细节

  1. Local/Remote 模型过简Local 只有 name/ip/port/protocol缺 encryption/compression/bandwidth/plugin/metadatas/域名/路径/健康检查等。Remote 缺 protocol(kcp/quic/ws)、tls、oidc、pool 等。
  2. 渲染器只输出 6 个字段brpcProxy 仅 name/type/localIP/localPort/remotePort/customDomains/subdomain。transport 段只有空 protocolfrpc 其它传输参数全部缺失。
  3. 画布节点编辑只暴露 ip/port/协议:连已有的 token/url 也只在部分入口可编辑,更别说高级字段。
  4. udp 渲染无 UDPPacketSize 等https 无证书流程

四、用户实际会遇到的典型场景覆盖

场景 现状
内网 Web 服务对外http+tcp 覆盖
普通 TCP 服务(数据库/SSH/自建协议) 覆盖
加密内网通信stcp/sudp 若用户需要点对点加密穿透则无法完成
多域名多路径挂多个站点到一台 frps 🟡 部分(域名选择没做)
限速 / 压缩 / 加密传输
负载均衡 / 健康检查
kcp/quic 弱网优化

五、优先级建议

优先级 理由
P0 画布冲突检查(本次已实现) 防止重复 remotePort / 域名重复导致配置直接失败
P0 Local 增加「连接参数」高级区encryption / compression / bandwidthLimit / poolCount / metadatas 高频项,改动小(渲染器 + 表单)
P1 Remote 增加 transport 选择protocol(tcp/quic/kcp/websocket) 、tls.enable、poolCount 让 kcp/quic/web 场景可用
P1 local http/https 增加域名字段customDomains/subdomain 可编辑)+ locations 覆盖多站点部署
P2 健康检查 / 负载均衡group 中频
P2 插件 stub / 虚拟 IP 低频,且 UI 复杂
P3 OIDC / TLS 证书 / 高级插件 低频,可延后

六、结论

webui4frpc 已具备生产可用的核心tcp/http 多节点多对多转发 + 状态页 + worker 管理),且面向「避免运维手写配置」的目标价值明确。但要覆盖 frpc 完整能力需分阶段补齐:先做 P0冲突检查已做+ P0 高级传输参数建模,再逐级推进,避免一上来堆字段导致画布复杂化。建议 UI 采用「折叠高级区」或「按类型动态显示字段」,保持画布简洁。