frp-panel 能够在网页上进行frps、frpc配置的修改,并且让frps、frpc自动更新配置。

使用下来,frp-panel帮我解决了这些问题:

  1. 有多台frps和frpc分布在不同的服务器,没有地方统一查看信息
  2. 添加frpc要去对应的frps看看密钥
  3. 穿透路径变化要手动修改配置文件,并且手动重启
  4. 修改frps异常麻烦,需要一个个手动修改接入的frpc

介绍

frp-panel 由三部分组成

  1. master: 中控模块,负责分发配置文件和控制所有其他模块
  2. server​: 对应frps,负责提供流量接入点
  3. client​: 对应frpc​,可以将本地的服务暴露给server上某一个接入点

使用时需要依次部署master​、server​、client

Master 部署

需要确保 master​ 服务所在服务器可以被所有 server​ 和 client 访问

推荐用 docker compose 方式部署,这里假设服务器公网IP是1.2.3.4

services:
  frpp-master:
    image: vaalacat/frp-panel:latest
    container_name: frp-panel-master
    network_mode: host
    environment:
      APP_GLOBAL_SECRET: your_secret # 随便输入一些随机字符,不要泄露
      MASTER_RPC_HOST: 1.2.3.4 # 服务器的外部IP或域名
      MASTER_RPC_PORT: 9001 # RPC 监听端口
      MASTER_API_HOST: 1.2.3.4 # 服务器的外部IP或域名
      MASTER_API_PORT: 9000 # API/WebUI监听端口
      # CLIENT_RPC_URL和CLIENT_API_URL请根据实际情况设置,设置为外部可以通过url访问到master的形式
      # Client 连接 master RPC 的 URL,如果使用反向代理,请设置为通过反向代理访问的 URL(如wss://example.com:443)
      CLIENT_RPC_URL: grpc://1.2.3.4:9001
      # Client 连接 master API/WebUI 的 URL,如果使用反向代理,请设置为通过反向代理访问的 URL(如https://example.com:443)
      CLIENT_API_URL: http://1.2.3.4:9000
      APP_ENABLE_REGISTER: false #是否允许注册,默认只允许注册一个管理员账号
      MASTER_INTERNAL_FRP_SERVER_PORT: 9002 # Master内置 frps 服务器端口,用于客户端连接
      MASTER_INTERNAL_FRP_AUTH_SERVER_PORT: 8889 # Master内置 frps 认证服务器端口
    volumes:
      - ./data:/data # 数据存储位置
    restart: unless-stopped
    command: master

master​内置一个default server​ 供client​连接,也就是说master一般不会独立存在,但你可以选择不使用

部署完成后访问 http://1.2.3.4,注册登录即可。

image

Server 部署

Master 自带的 Server

Master 部署好之后,可以看到一个默认的 server,能看到是在线状态,如果不在线,检查compose文件中的连接信息是否正确。

点击修改配置,填入FRPs 监听端口,然后提交。

注意:如果有防火墙,需要在防火墙中放行 FRPs 监听端口

image

再查看服务端,配置状态变为已配置,服务端就部署好了

image

自定义 Server

创建一个服务端,服务端地址需要可以被客户端访问到

image

点击密钥,复制启动命令

image

把 client 开始的命令替换掉 compose 中的 command,然后启动

version: '3'
services:
  frp-panel-server:
    image: vaalacat/frp-panel
    container_name: frp-panel-server
    network_mode: host
    restart: unless-stopped
    command: server -s abc -i user.s.server1 --api-url http://frpp.example.com:9000 --rpc-url grpc://frpp-rpc.example.com:9001

启动完成后,可以看到服务端在线了

image

然后编辑服务端,设置FRPs 监听端口,状态变为已配置即可

image

注意:如果有防火墙,需要在防火墙中放行 FRPs 监听端口

Client 部署

推荐用 docker compose 方式部署

点击左侧菜单中的客户端,新建一个客户端

image

点击密钥,复制启动命令

image

把 client 开始的命令替换掉 compose 中的 command,然后启动

version: '3'
services:
  frp-panel-client:
    image: vaalacat/frp-panel
    container_name: frp-panel-client
    network_mode: host
    restart: unless-stopped
    command: client -s abc -i user.c.client1 --api-url https://frpp.example.com:443 --rpc-url wss://frpp.example.com:443

启动后可以看到客户端在线了

image

添加隧道后,客户端会变为已配置状态,参考 添加隧道

image

添加、查看隧道

编辑隧道添加(推荐)

在编辑隧道中创建隧道

image

设置好基础信息

image

填好穿透信息后,一定要先暂存修改,再提交

image

编辑客户端添加(不推荐)

在客户端编辑隧道不方便,就不演示了。