开发笔记 - 博客地址
Github - VaalaCat/frp-panel

最近实在是想要一个 webui 的 frp ,之前的 nps 又太老了一堆 bug 不太敢用,所以花了一个周末手搓了一个中心化版本的 frp 管理,可以远程管理 frpc 和 frps 节点,免去了一个一个节点配置的时间。
同时也支持和原版 frp 混用。因为是把 frp 当成一个 package 用,所以理论上可以完美兼容各个版本的 frp ,上游更新的话很方便就能适配
求求各位👴给个 Star 吧,也欢迎各种 feature request

给大佬点赞了,正好最近也要用 frp ,另外求 star too...

给老哥点赞了!老哥这个工具看起来挺有创意,下载来试试看看

frp 官方的 ui 天原始了。支持大佬。

感谢老哥,奥利给

想要一个可以设置备注的地方。我配置 frps 的时候,划分了几段端口范围,有些端口默认是没有对互联网开放的,有些对互联网开放了,有些对互联网部分 ip 开放。要是面板上能有一块区域添加注释,时间久了添加 frpc 也不用看 frps.ini 和防火墙去策略了
需求收到!看看今天有没有空做出来!

用 frpc 一定不要有弱口令的机器 不然就是一锅端

明白!这个项目里对每个客户端都做了单独的认证,端也只能端一个客户端的配置

赞,做了大家都想要的

非常支持,一直想替代 nps ,服务器控制客户端配置,有些场景太重要了

看着不错,给 arch 打了包 aur 包,不知道细节有没有问题? aur.archlinux.org/packages/frp-panel

我觉得最好所有的参数都能够从环境变量中读取,这样就可以从进程中、从命令中隐藏掉一些信息。目前打的包是直接把参数拼接到启动命令中。

所有的参数都支持从环境变量获取,命令行是环境变量配置的子集,命令行参数是为了一键启动做的一些必要参数,换成环境变量也是可以的。老哥的配置看起来没啥问题具体每个环境变量参数是什么可以参考配置文件conf/settings.go - Github命令行参数定义在这里,具体的操作其实就是先读环境变量,然后如果有命令行参数就用 patchConf 覆盖掉cmd.go - Github

#13 不好意思,我对 go 的的细节还不太懂,是不是 clientSecret 和 clientID 只能从命令行输入,然后 rpcHost 可以读取 APP_RPC_HOST ,appSecret 读取 APP_SECRET ,rpcPort 读取 APP_RPC_PORT ,apiPort 读取 APP_API_PORT ?

是的,clientSecret 和 clientID 想做成动态一点的,就没有做环境变量,其他东西都会对应读取环境变量

老哥我加上备注功能了!

#15 我改进了一下环境变量文件的设置,现在改成自动从 conf/settings.go 转换成三个环境变量文件了。

给大佬点赞了,我也是想做一个这样的东西,但是懒得没动,刚好大佬做了。

我原来设想的架构非常简单,就是一个配置监控程序,甚至可以用 SHEEL 脚本来写。1,FRPC 进程2,配置监控进程,监控进程周期性对比本地和远程的一个配置文件( https+basic 认证),如果有变化,就更新本地配置文件,并重启 FRPC 进程。可能过于简陋了。。。

已加星星,强烈支持

之前也想过这种外置配置文件管理器和 frpc 进程独立的形式,不过仔细想想这样配置文件对比其实也不好做,比如配置文件内容不变,但有两行换了顺序,就会导致重连。而且配置文件外置的话不能很好地利用上 frp 热重载的能力,也不是很方便管理,因为是客户端被动的去检查,没办法做到主动推送某一种变更,所以感觉不够强制。综合一下就选择了现在这种架构