应用介绍
FRP(Fast Reverse Proxy)是一款高性能的内网穿透工具,采用服务端(frps)与客户端(frpc)架构,支持 TCP/UDP/HTTP/HTTPS 等多种协议映射,适合在 NAS 场景下将局域网服务安全、稳定地暴露到公网。相比通过路由器端口映射,FRP 在链路控制、鉴权与多端穿透方面更灵活,且支持多条隧道与访问统计。

典型用法是把 frps 部署在一台有公网 IP 的云服务器上,把 frpc 部署在家里的 NAS 上,NAS 通过 frpc 主动连接到 frps 并注册隧道,实现公网到 NAS 的反向访问。FRP 支持自定义域名的 HTTP/HTTPS 代理、TCP 直通(如 SSH、数据库)、以及 UDP(如 IPTV/游戏服务)等。
安装说明
前提依赖
- 一台具备公网访问能力的服务器,用于部署 frps(建议 Linux x86_64,系统防火墙与安全组开放必要端口)
- 一台家庭 NAS(Docker 环境已安装),用于部署 frpc
安装配置
以下提供服务端和客户端分别部署的 docker-compose 示例(建议分别在云服务器与 NAS 上独立目录使用)。
服务器端(frps)示例(云服务器):
version: "3.8"
services:
frps:
image: snowdreamtech/frps:latest
container_name: frps
restart: unless-stopped
ports:
- "7000:7000" # frps 服务端口
- "80:80" # 用于 HTTP 反向代理(可选)
- "443:443" # 用于 HTTPS 反向代理(可选)
volumes:
- ./frps.ini:/etc/frp/frps.ini:ro
frps.ini 示例:
[common]
bind_port = 7000
token = change-me-strong-token
vhost_http_port = 80
vhost_https_port = 443
max_pool_count = 5
客户端(frpc)示例(NAS):
version: "3.8"
services:
frpc:
image: snowdreamtech/frpc:latest
container_name: frpc
restart: unless-stopped
network_mode: host
volumes:
- ./frpc.ini:/etc/frp/frpc.ini:ro
frpc.ini 示例(把 NAS 上的 Web 通过自定义域名暴露到公网):
[common]
server_addr = your-cloud-ip-or-domain
server_port = 7000
token = change-me-strong-token
[jellyfin-web]
type = http
local_ip = 127.0.0.1
local_port = 8096
custom_domains = you.example.com
注意事项:
- token 请务必替换为强口令;云服务器与 NAS 需保持时间同步
- network_mode: host 方便 frpc 直连宿主服务;如不使用 host,需额外配置容器到宿主的访问
- vhost 端口映射到 80/443 后,可结合 Nginx Proxy Manager做更细的路由与证书管理,见https://nasapp.store/nginx-proxy-manager/
使用说明
- 在云服务器目录下
docker compose up -d启动 frps;在 NAS 目录下docker compose up -d启动 frpc - 确认云服务器的 80/443/7000 端口在安全组与系统防火墙均已放行
- 将域名 you.example.com 的 DNS A 记录解析到云服务器公网 IP
- 访问 https://you.example.com 即可通过 FRP 反向代理访问 NAS 上的 服务
- 其他服务(SSH、数据库、UDP 服务)可按需新增对应的 frpc 配置段(type=tcp/udp/http/https)