legegecoder
发布于 2026-03-17 / 7 阅读 / 0 评论 / 0 点赞

【NAS速通教程】内网穿透教程:面板化 frp 管理

适用场景

没有公网 IP,又不想使用第三方内网穿透服务,希望通过自建服务器在公网访问家中 NAS/软路由/内网服务。

架构与术语

本文使用的项目是 frp-panel(GitHub:https://github.com/VaalaCat/frp-panel)。

  • Master:控制面板 + API/RPC 管理

  • Server(frps):公网侧隧道服务

  • Client(frpc):内网侧连接与转发

我的部署方式是:仅部署 Master,并使用 Master 自带的 default 服务端。这是单台公网服务器的推荐方式。

重要提醒:

  • default 服务端 禁止单独部署,需要在 Master 启动后在 WebUI 中配置。

  • client/server 启动命令可能随版本变化,以 Master WebUI 生成的命令为准

  • 部署 Client 前必须先配置好服务端,否则客户端无法连接。


前期准备

1. 设备与软件

  • 一台 有公网 IP 的服务器(ECS/VPS)

  • 一台 内网设备(NAS/软路由/旧电脑)

  • Docker(推荐)

2. 端口放行(公网服务器)

必须配置 ECS 安全组,否则所有连接都无法访问。

  • WebUI/API:TCP 9000

  • RPC:TCP 9001

  • frps API:自定义(示例 TCP/UDP 7000

  • frps 业务端口段:自定义(示例 TCP/UDP 26999-27050

如果使用反向代理(HTTPS):

  • 仅需放行 80/443

  • CLIENT_RPC_URL 配置为 wss://域名:443

  • CLIENT_API_URL 配置为 https://域名:443

  • 建议先用普通方式部署成功后,再切换反向代理

3. 账号说明

Master 部署后没有默认用户,第一个注册用户即为管理员


第一步:部署 Master(同时作为 Server)

推荐使用 Docker Compose:

# docker-compose.yaml
services:
  frpp-master:
    image: vaalacat/frp-panel:latest
    network_mode: host
    environment:
      APP_GLOBAL_SECRET: your_secret
      MASTER_RPC_HOST: 你的公网IP或域名
      MASTER_RPC_PORT: 9001
      MASTER_API_HOST: 你的公网IP或域名
      MASTER_API_PORT: 9000
      # 下面两个必须填写“客户端能访问到 master 的地址”
      CLIENT_RPC_URL: grpc://你的公网IP或域名:9001
      CLIENT_API_URL: http://你的公网IP或域名:9000
    volumes:
      - ./data:/data
    restart: unless-stopped
    command: master

启动:

docker compose up -d

访问 http://你的公网IP:9000,注册第一个账号(管理员)。


第二步:配置 default 服务端(必须做)

因为我没有单独部署 server,所以必须配置 Master 自带的 default 服务端

WebUI 操作:

  1. 进入 服务端

  2. 找到 default

  3. 修改并保存以下配置(示例):

  • FRPs 监听端口7000

  • FRPs 监听地址0.0.0.0

  • 代理监听地址0.0.0.0

  • HTTP 监听端口26999

没有正确配置 default 服务端,客户端无法连接。


第三步:部署 Client(内网设备)

Client 仅推荐使用 Docker 部署,不建议直接运行。

部署前请确认已完成 default 服务端配置,否则客户端无法连接。

在 WebUI 的 服务端 页面点击 新建,输入 客户端唯一识别 ID 保存。

刷新后,新的客户端会出现在列表中。点击 ID (点击查看安装命令)密钥 (点击查看启动命令),复制系统生成命令执行。

Docker Compose(客户端)

# docker-compose.yaml
version: '3'
services:
  frp-panel-client:
    image: vaalacat/frp-panel
    container_name: frp-panel-client
    network_mode: host
    restart: unless-stopped
    command: client -s 你的服务端密钥 -i user.c.client1 --api-url http://你的公网IP或域名:9000 --rpc-url grpc://你的公网IP或域名:9001

国内环境可在 WebUI 配置 GitHub 加速,复制的安装命令会自动带上 --github-proxy


第四步:配置隧道(TCP)

用最常见的 TCP 隧道即可。简单理解就是:访问 ECS 的某个端口,就会转发到局域网某台设备的 IP+端口

在 WebUI 进入 代理,点击 新建,按下面思路填写:

  • 类型tcp

  • 远程端口:公网服务器对外提供访问的端口(例如 25000

  • 本地 IP:局域网目标设备 IP(例如 192.168.1.10

  • 本地端口:局域网目标服务端口(例如 5000

保存后,访问 ECS_IP:25000 就相当于访问 192.168.1.10:5000
记得在 ECS 安全组放行 远程端口。(如果使用nginx反代则不需要放行端口)

高级功能参考(建议查看官方文档)

更多高级功能与详细说明,请参考 frp-panel 官方文档,重点包括:

  • 一键启动与批量节点管理

  • 实时流量统计与日志分析

  • HTTPS/WSS 与反向代理 TLS

  • 高级隧道配置(支持原生 frp JSON 配置)

  • 配置说明与环境变量清单


评论