FRP-Panel:告别手写配置文件,Web UI 管理 FRP 内网穿透

前言

FRP 是内网穿透的老牌选手了。稳定、性能好、社区大。但它的痛点也很明显:配置文件要手写。

加一个隧道要 SSH 上服务器 → 编辑 frpc.ini → 重启客户端 → 祈祷没写错。管理五六个隧道还行,几十个的时候就是灾难。而且服务端和客户端分布在不同的机器上,出了故障得一个个排查。

FRP-Panel 解决了这个「配置管理」的问题。它在 FRP 外面包了一层 Web UI,Master-Server-Client 三层架构,所有节点统一管理,隧道创建、编辑、启停都在浏览器里点几下鼠标。

为什么要加一层 Panel?

先说说传统 FRP 的配置长什么样:

frps.ini
[common]
bind_port = 7000
# frpc.ini
[web]
type = http
local_port = 80
custom_domains = www.example.com

每个服务都要写一个 [section],格式容易出错,改完还得重启。如果管着三台内网机器、每台上面五六个服务,光维护配置文件就是个体力活。

FRP-Panel 把这一切抽象成了三层:

┌─────────────────────────────────┐
│ Master(Web UI) │ ← 你在浏览器里操作
│ 管理所有节点、隧道、用户权限 │
├─────────────────────────────────┤
│ Server(公网入口) │ ← 部署在 VPS 上
│ 承载外网流量,转发到内网 Client │
├─────────────────────────────────┤
│ Client(内网节点) │ ← 部署在内网机器上
│ 接收 Server 转发的流量 │
└─────────────────────────────────┘

Master 是大脑,Server 是门面,Client 是手脚。在 Master 的 Web UI 上创建一个隧道,配置自动下发到 Server 和 Client。不用 SSH 到任何一台机器上改配置。

Docker Compose 部署

先部署 Master + Server(一般在同一台公网 VPS 上):

docker-compose.yml
services:
frp-panel-master:
image: v88527/frp-panel-master:latest
container_name: frp-panel-master
ports:
- "8080:8080"
volumes:
- ./master/data:/app/data
restart: unless-stopped
frp-panel-server:
image: v88527/frp-panel-server:latest
container_name: frp-panel-server
network_mode: host
3 collapsed lines
volumes:
- ./server/data:/app/data
restart: unless-stopped
Terminal window
docker compose up -d

打开 http://VPS_IP:8080,初始化管理员账号。

然后在每台内网机器上部署 Client:

Terminal window
curl -fsSL https://raw.githubusercontent.com/VaalaCat/frp-panel/main/scripts/install.sh -o install.sh
chmod +x install.sh && sudo ./install.sh

安装脚本会自动注册到 Master。回到 Web UI,在「节点管理」里就能看到新上线的 Client。

Web UI 操作体验

创建隧道的流程是:

  1. 点「新建隧道」
  2. 选协议类型(HTTP / TCP / UDP / HTTPS)
  3. 填内网地址和端口(比如 localhost:3000
  4. 填公网域名或端口
  5. 选绑定的 Server 和 Client 节点
  6. 点保存

几秒钟后隧道就生效了。不需要改配置文件、不需要 SSH、不需要重启任何服务。

多节点监控:Web UI 的仪表盘能看到每个 Server 和 Client 的在线状态、实时流量、连接数。哪个节点挂了,一眼就知道。

WireGuard 智能组网

FRP-Panel 内置了 WireGuard 组网功能。启用后,不同的 Client 节点之间可以直接通信 —— 不需要把流量绕到 Server 再转发。

这个功能的意义在于:如果你有多台内网机器分布在不同网络(比如家里一台、办公室一台),它们可以通过 WireGuard 组成虚拟局域网,直接互相访问。比传统的 Client → Server → Client 转发模式延迟低得多。

举个例子:家里的 NAS 和办公室的电脑通过 FRP-Panel 组了 WireGuard 网,你家电脑可以直接 SMB 挂载办公室 NAS。中间没有公网跳板,数据直传。

跟 Cloudflare Tunnel 比怎么样?

写到这里你可能想问:前面不是推荐了 Cloudflare Tunnel 吗,怎么又来个 FRP-Panel?

这两个的适用场景不一样:

Cloudflare TunnelFRP-Panel
适用场景HTTP 服务暴露、不想暴露 IP任意 TCP / UDP 协议、需要灵活控制
依赖域名托管在 Cloudflare需要公网 VPS 跑 Server
费用免费需 VPS 费用
协议支持HTTP/SSH/RDP所有 TCP / UDP
复杂度

简单说:Cloudflare Tunnel 适合「我要把家里服务通过域名暴露出去」,FRP-Panel 适合「我要一个完整的内网穿透管控平台,支持任意协议」。

如果你要穿透的不是 HTTP 服务 —— 比如 Minecraft 服务器、数据库端口、自定义 TCP 协议 —— 那 FRP 就是刚需。

总结

FRP-Panel 解决了 FRP 最大的痛点 —— 配置管理复杂。Web UI 让创建和管理隧道变得可视化,节点监控让运维省心不少,WireGuard 组网更是锦上添花。

如果你已经在用 FRP 但受够了手写 ini 文件的痛苦,花十分钟切到 FRP-Panel,之后的体验是天壤之别。

如果你还没用过内网穿透但手头有台 VPS,FRP-Panel 也是一个很合适的起点 ——Docker Compose 一条命令就能体验完整功能。