• 请不要在回答技术问题时复制粘贴 AI 生成的内容
VaalaCat
V2EX  ›  程序员

[开源求 Star] Frpc/Frps 中心化 WebUI 配置面板

  •  
  •   VaalaCat ·
    VaalaCat · Jan 20, 2024 · 7285 views
    This topic created in 844 days ago, the information mentioned may be changed or developed.

    开发笔记 - 博客地址

    Github - VaalaCat/frp-panel

    最近实在是想要一个 webui 的 frp ,之前的 nps 又太老了一堆 bug 不太敢用,所以花了一个周末手搓了一个中心化版本的 frp 管理,可以远程管理 frpc 和 frps 节点,免去了一个一个节点配置的时间。

    同时也支持和原版 frp 混用。因为是把 frp 当成一个 package 用,所以理论上可以完美兼容各个版本的 frp ,上游更新的话很方便就能适配

    求求各位👴给个 Star 吧,也欢迎各种 feature request

    23 replies    2024-12-20 20:58:50 +08:00
    lstz
        1
    lstz  
       Jan 20, 2024 via Android
    给大佬点赞了,正好最近也要用 frp ,另外求 star too...
    VaalaCat
        2
    VaalaCat  
    OP
       Jan 20, 2024   ❤️ 1
    @lstz 给老哥点赞了!老哥这个工具看起来挺有创意,下载来试试看看
    lifei6671
        3
    lifei6671  
       Jan 20, 2024
    frp 官方的 ui 天原始了。支持大佬。
    lstz
        4
    lstz  
       Jan 20, 2024 via Android
    @VaalaCat 感谢老哥,奥利给
    yulgang
        5
    yulgang  
       Jan 20, 2024
    想要一个可以设置备注的地方。

    我配置 frps 的时候,划分了几段端口范围,有些端口默认是没有对互联网开放的,有些对互联网开放了,有些对互联网部分 ip 开放。

    要是面板上能有一块区域添加注释,时间久了添加 frpc 也不用看 frps.ini 和防火墙去策略了
    VaalaCat
        6
    VaalaCat  
    OP
       Jan 20, 2024   ❤️ 1
    @yulgang 需求收到!看看今天有没有空做出来!
    tangtang369
        7
    tangtang369  
       Jan 20, 2024
    用 frpc 一定不要有弱口令的机器 不然就是一锅端
    VaalaCat
        8
    VaalaCat  
    OP
       Jan 20, 2024
    @tangtang369 明白!这个项目里对每个客户端都做了单独的认证,端也只能端一个客户端的配置
    itechify
        9
    itechify  
    PRO
       Jan 20, 2024 via Android
    赞,做了大家都想要的
    wzw
        10
    wzw  
       Jan 20, 2024 via iPhone
    非常支持,一直想替代 nps ,服务器控制客户端配置,有些场景太重要了
    EvineDeng
        11
    EvineDeng  
       Jan 20, 2024
    看着不错,给 arch 打了包 aur 包,不知道细节有没有问题? https://aur.archlinux.org/packages/frp-panel
    EvineDeng
        12
    EvineDeng  
       Jan 20, 2024
    我觉得最好所有的参数都能够从环境变量中读取,这样就可以从进程中、从命令中隐藏掉一些信息。目前打的包是直接把参数拼接到启动命令中。
    VaalaCat
        13
    VaalaCat  
    OP
       Jan 20, 2024
    @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)
    EvineDeng
        14
    EvineDeng  
       Jan 20, 2024
    @VaalaCat #13 不好意思,我对 go 的的细节还不太懂,是不是 clientSecret 和 clientID 只能从命令行输入,然后 rpcHost 可以读取 APP_RPC_HOST ,appSecret 读取 APP_SECRET ,rpcPort 读取 APP_RPC_PORT ,apiPort 读取 APP_API_PORT ?
    VaalaCat
        15
    VaalaCat  
    OP
       Jan 20, 2024
    @EvineDeng 是的,clientSecret 和 clientID 想做成动态一点的,就没有做环境变量,其他东西都会对应读取环境变量
    VaalaCat
        16
    VaalaCat  
    OP
       Jan 20, 2024   ❤️ 2
    @yulgang 老哥我加上备注功能了!
    EvineDeng
        17
    EvineDeng  
       Jan 20, 2024   ❤️ 1
    @VaalaCat #15 我改进了一下环境变量文件的设置,现在改成自动从 conf/settings.go 转换成三个环境变量文件了。
    dasf53adf
        18
    dasf53adf  
       Jan 21, 2024
    给大佬点赞了,我也是想做一个这样的东西,但是懒得没动,刚好大佬做了。
    dasf53adf
        19
    dasf53adf  
       Jan 21, 2024
    我原来设想的架构非常简单,就是一个配置监控程序,甚至可以用 SHEEL 脚本来写。
    1,FRPC 进程
    2,配置监控进程,监控进程周期性对比本地和远程的一个配置文件( https+basic 认证),如果有变化,就更新本地配置文件,并重启 FRPC 进程。
    可能过于简陋了。。。
    bigmomo
        20
    bigmomo  
       Jan 21, 2024
    已加星星,强烈支持
    VaalaCat
        21
    VaalaCat  
    OP
       Jan 21, 2024 via iPhone
    @dasf53adf 之前也想过这种外置配置文件管理器和 frpc 进程独立的形式,不过仔细想想这样配置文件对比其实也不好做,比如配置文件内容不变,但有两行换了顺序,就会导致重连。

    而且配置文件外置的话不能很好地利用上 frp 热重载的能力,也不是很方便管理,因为是客户端被动的去检查,没办法做到主动推送某一种变更,所以感觉不够强制。综合一下就选择了现在这种架构
    xuekerchen
        22
    xuekerchen  
       Dec 6, 2024
    大佬,假如我有 3 台 vps (作为服务端),有一个客服机( NAS 设备),如果我客服机需要和每个服务网端进行内网穿透配置。请问下,是需要在 master 里创建 1 个客户端还是要创建 3 个客户端(为每个服务端创建对应的客户端)啊?
    VaalaCat
        23
    VaalaCat  
    OP
       Dec 20, 2024
    @xuekerchen 最新的版本已经可以只创建一个客户端了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3739 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 10:34 · PVG 18:34 · LAX 03:34 · JFK 06:34
    ♥ Do have faith in what you're doing.