内网穿透(1):FRP部署教程,公网随时访问你的NAS
- 2025.11.12 更新 增加docker compose安装
前言:为什么需要FRP穿透?
很多朋友入手NAS后都会遇到一个问题:家里没有公网IPv4,NAS只能在WiFi下访问,出门想传个文件、看个相册都没辙。
FRP(Fast Reverse Proxy)就是解决这个问题的利器——它能通过一台有公网IP的云服务器,把内网的服务“映射”到公网上,能让你随时访问家里内网的NAS。
本文提供Docker和源码运行两种配置方案,跟着做就能搞定公网访问。
1、前期准备
先把“弹药”备齐,避免操作到一半卡壳。新手务必逐项核对:
- NAS:确保已开启SSH(控制面板→终端机和SNMP→勾选“启动SSH功能”)。
- 云服务器:1核2G配置足够(学生机性价比高),必须有公网IPv4,带宽建议1M以上(决定访问速度上限),系统选CentOS或Ubuntu。
- 工具:SSH客户端(Xshell、FinalShell,免费可用),文件传输工具(WinSCP,传配置文件用)。
2、核心原理:FRP怎么工作
- 服务端(云服务器):相当于“桥头堡”,在公网上监听请求,绑定固定端口(如7000)。
- 客户端(NAS):相当于“家里的哨兵”,主动连接云服务器的服务端,保持长连接。
- 数据流向:公网访问云服务器FRP→服务端转发给NAS客户端→群晖返回数据,完成穿透。
3、服务端配置:云服务器部署FRP服务
先部署服务端FRP,以CentOS 7为例,全程命令行操作,复制粘贴即可。
步骤1:下载并解压FRP包
用SSH工具连接云服务器,执行以下命令(64位系统通用):
# 下载FRP压缩包(0.33.0版本,若下新版本替换链接即可) |
如果wget下载失败(网络问题),直接在本地浏览器打开链接下载,再用WinSCP上传到云服务器,然后执行解压命令。
步骤2:编辑服务端配置文件frps.ini
FRP服务端核心配置文件,用vi命令编辑:
vi frps.ini |
按i进入编辑模式,粘贴以下内容,关键参数已标注修改说明:
[common] |
编辑完成后,按Esc,输入:wq保存退出。
步骤3:开放端口+启动服务端
这步是关键!云服务器的安全组和防火墙都要开放端口(7000、5000、6000、7500):
# 1. 防火墙开放端口(CentOS用firewalld,Ubuntu用ufw,根据系统选对应命令) |
然后用nohup命令让FRP在后台运行(关闭SSH窗口也不停止):
nohup ./frps -c ./frps.ini & |
验证是否启动成功:打开浏览器访问云服务器IP:7500,输入控制台用户名密码,能看到FRP面板就说明服务端没问题了。
(直接执行./frps -c ./frps.ini会显示启动日志,如下图,用nohup启动不会显示日志)

4、客户端配置:NAS连接服务端
NAS作为客户端,有两种配置方式:Docker和源码部署,选一种就行。
方案A:Docker配置
群晖Docker套件操作简单,不用记命令,适合刚接触NAS的用户。
步骤1:下载FRP镜像
- 打开群晖
Docker套件,切换到「注册表」。 - 搜索栏输入
chenhw,找到chenhw/frp镜像,双击默认下载(标签选latest)。
步骤2:准备客户端配置文件frpc.ini
先在群晖里建个存放FRP配置的文件夹,方便后续修改:
- 打开
File Station,进入「docker」文件夹,新建子文件夹frp。 - 在本地电脑用记事本新建
frpc.ini文件,粘贴以下内容(替换成你的信息):
[common] |
将编辑好的frpc.ini上传到群晖的docker/frp文件夹。
步骤3:创建FRP容器并配置
- Docker套件切换到「映像」,双击
chenhw/frp镜像,进入容器创建向导。 - 点击「高级设置」,重点配置以下3项(其他保持默认):
- 基本设置:勾选「启用自动重新启动」(群晖重启后FRP自动启动)。
- 卷:点击「添加文件」,左侧选群晖的
docker/frp/frpc.ini,右侧填/frp/frpc.ini(容器内的配置文件路径,固定填这个)。 - 环境:点击「添加」,变量名填
FRP_ROLE,变量值填client(告诉容器这是客户端模式)。
配置完成后点击「下一步」→「创建」,容器启动后,在Docker「容器」列表能看到状态为「运行中」。
方案B:Docker compose配置
在~/docker/frp目录下创建配置文件:
vim docker-compose.yml |
以下配置使用 DaoCloud 镜像加速,避免国内拉取镜像缓慢,关键参数已标注说明:
version: '3.3' |
配置文件frpc.ini与方案A是一样的,上传到群晖的docker/frp文件夹。
保存配置文件后,执行以下命令启动容器:
# 后台启动服务 |
方案C:执行文件部署
如果习惯命令行操作,也可以直接下载执行文件进行部署。
步骤1:SSH连接群晖并下载FRP
# 下载FRP包(和服务端版本一致,0.33.0) |
步骤2:编辑frpc.ini(和Docker方案的配置一致)
vi frpc.ini |
粘贴方案A中的frpc.ini内容,保存退出。
步骤3:启动客户端并设置开机自启
先测试启动是否正常:
./frpc -c ./frpc.ini |
如果显示「start proxy success」,说明连接成功。按Ctrl+C停止,再用nohup后台启动:
nohup ./frpc -c ./frpc.ini & |
为了让群晖重启后FRP自动运行,创建自启脚本:
# 1. 创建启动脚本 |
重启群晖后,执行ps aux grep frpc,能看到frpc进程就说明自启成功。
参考资料
- FRP官方文档:https://gofrp.org/docs/
