最近实在是想要一个 webui 的 frp ,之前的 nps 又太老了一堆 bug 不太敢用,所以花了一个周末手搓了一个中心化版本的 frp 管理,可以远程管理 frpc 和 frps 节点,免去了一个一个节点配置的时间。
同时也支持和原版 frp 混用。因为是把 frp 当成一个 package 用,所以理论上可以完美兼容各个版本的 frp ,上游更新的话很方便就能适配
求求各位👴给个 Star 吧,也欢迎各种 feature request
1
lstz 337 天前 via Android
给大佬点赞了,正好最近也要用 frp ,另外求 star too...
|
3
lifei6671 337 天前
frp 官方的 ui 天原始了。支持大佬。
|
5
yulgang 337 天前
|
7
tangtang369 337 天前
用 frpc 一定不要有弱口令的机器 不然就是一锅端
|
8
VaalaCat OP @tangtang369 明白!这个项目里对每个客户端都做了单独的认证,端也只能端一个客户端的配置
|
9
oneisall8955 337 天前 via Android
赞,做了大家都想要的
|
10
wzw 337 天前 via iPhone
非常支持,一直想替代 nps ,服务器控制客户端配置,有些场景太重要了
|
11
EvineDeng 337 天前
看着不错,给 arch 打了包 aur 包,不知道细节有没有问题? https://aur.archlinux.org/packages/frp-panel
|
12
EvineDeng 337 天前
我觉得最好所有的参数都能够从环境变量中读取,这样就可以从进程中、从命令中隐藏掉一些信息。目前打的包是直接把参数拼接到启动命令中。
|
13
VaalaCat OP @EvineDeng 所有的参数都支持从环境变量获取,命令行是环境变量配置的子集,命令行参数是为了一键启动做的一些必要参数,换成环境变量也是可以的。
老哥的配置看起来没啥问题 具体每个环境变量参数是什么可以参考配置文件 [conf/settings.go - Github]( https://github.com/VaalaCat/frp-panel/blob/main/conf/settings.go) 命令行参数定义在这里,具体的操作其实就是先读环境变量,然后如果有命令行参数就用 patchConf 覆盖掉 [cmd.go - Github]( https://github.com/VaalaCat/frp-panel/blob/e50254af351ef4a5b196c1203ebf5541c196bbba/cmd/cmd.go#L63-L99) |
14
EvineDeng 337 天前
@VaalaCat #13 不好意思,我对 go 的的细节还不太懂,是不是 clientSecret 和 clientID 只能从命令行输入,然后 rpcHost 可以读取 APP_RPC_HOST ,appSecret 读取 APP_SECRET ,rpcPort 读取 APP_RPC_PORT ,apiPort 读取 APP_API_PORT ?
|
18
dasf53adf 337 天前
给大佬点赞了,我也是想做一个这样的东西,但是懒得没动,刚好大佬做了。
|
19
dasf53adf 337 天前
我原来设想的架构非常简单,就是一个配置监控程序,甚至可以用 SHEEL 脚本来写。
1,FRPC 进程 2,配置监控进程,监控进程周期性对比本地和远程的一个配置文件( https+basic 认证),如果有变化,就更新本地配置文件,并重启 FRPC 进程。 可能过于简陋了。。。 |
20
Songxwn 336 天前
已加星星,强烈支持
|
21
VaalaCat OP @dasf53adf 之前也想过这种外置配置文件管理器和 frpc 进程独立的形式,不过仔细想想这样配置文件对比其实也不好做,比如配置文件内容不变,但有两行换了顺序,就会导致重连。
而且配置文件外置的话不能很好地利用上 frp 热重载的能力,也不是很方便管理,因为是客户端被动的去检查,没办法做到主动推送某一种变更,所以感觉不够强制。综合一下就选择了现在这种架构 |
22
xuekerchen 16 天前
大佬,假如我有 3 台 vps (作为服务端),有一个客服机( NAS 设备),如果我客服机需要和每个服务网端进行内网穿透配置。请问下,是需要在 master 里创建 1 个客户端还是要创建 3 个客户端(为每个服务端创建对应的客户端)啊?
|
23
VaalaCat OP @xuekerchen 最新的版本已经可以只创建一个客户端了
|