很多刚入手群晖NAS的朋友都会遇到一个现实问题:家里没公网IPv4地址,NAS只能在局域网里用。想在外面传个文件、看个照片?根本没法连。这时候,FRP(Fast Reverse Proxy) 就派上用场了。
简单来说,FRP能借助一台有公网IP的云服务器,把你的内网服务“打穿”到外网。只要配置正确,随时随地都能安全访问家里的NAS。本文将详细讲解如何在群晖上部署FRP客户端,并搭配云服务器完成整套内网穿透方案。无论你是Docker新手还是命令行老手,都能找到适合自己的方式。
一、准备工作,别跳过这一步!
动手前先确认以下几项是否就绪,避免做到一半卡住:

程序员导航
优网导航旗下整合全网优质开发资源,一站式IT编程学习与工具大全网站
- 群晖NAS:确保已开启SSH功能(路径:控制面板 → 终端机和SNMP → 勾选“启动SSH功能”)。
- 云服务器:
- 配置建议1核2G(学生机够用);
- 必须有公网IPv4;
- 带宽最好1Mbps以上(直接影响远程访问速度);
- 系统推荐CentOS或Ubuntu。
- 工具软件:
- SSH客户端(如Xshell、FinalShell,免费好用);
- 文件传输工具(WinSCP,用于上传配置文件)。
💡 提示:如果你用的是国内云厂商(阿里云、腾讯云等),记得在安全组规则里提前放行后续要用的端口。
二、FRP工作原理
FRP采用“反向代理”模式,核心逻辑其实不复杂:
- 服务端(frps) 跑在你的云服务器上,监听公网请求(比如7000端口)。
- 客户端(frpc) 跑在群晖NAS上,主动连接服务端并维持长连接。
- 当你从外网访问
云服务器IP:5000,请求会被服务端转发给NAS,再由NAS返回数据——整个过程对用户透明。
这种“客户端主动拨号”的机制,完美绕过了家庭宽带没有公网IP的限制。
三、服务端部署:在云服务器上跑起FRP
下面以 CentOS 7 为例,全程命令行操作。Ubuntu 用户只需替换防火墙命令即可。

AI 工具导航
优网导航旗下AI工具导航,精选全球千款优质 AI 工具集
1. 下载并解压 FRP
# 下载指定版本(这里用 v0.33.0,也可换新版)
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
# 解压
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
# 进入目录
cd frp_0.33.0_linux_amd64
📌 如果 wget 下载慢或失败,可以本地浏览器下载后用 WinSCP 上传到服务器,再执行解压。
2. 编辑服务端配置文件 frps.ini
[common]
bind_addr = 0.0.0.0 # 监听所有IP
bind_port = 7000 # 客户端连接端口
privilege_token = 2fd165jtyjsd0g5t4hdga16 # 认证密钥,务必自定义且复杂
vhost_http_port = 5000 # HTTP流量转发端口
vhost_https_port = 6000 # HTTPS流量转发端口
dashboard_port = 7500 # Web管理面板端口
dashboard_user = admin # 面板用户名
dashboard_pwd = admin123 # 面板密码
保存方法:用 vi frps.ini,按 i 进入编辑模式,粘贴后按 Esc,输入 :wq 回车退出。
3. 开放端口 + 启动服务
防火墙放行(关键!)
- CentOS(使用 firewalld):
sudo firewall-cmd --zone=public --add-port=7000/tcp --permanent sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent sudo firewall-cmd --zone=public --add-port=6000/tcp --permanent sudo firewall-cmd --zone=public --add-port=7500/tcp --permanent sudo firewall-cmd --reload - Ubuntu(使用 ufw):
sudo ufw allow 7000/tcp sudo ufw allow 5000/tcp sudo ufw allow 6000/tcp sudo ufw allow 7500/tcp sudo ufw reload
后台启动 FRP 服务
nohup ./frps -c ./frps.ini &
✅ 验证:浏览器访问
http://你的服务器IP:7500,输入账号密码,能看到仪表盘即表示服务端运行正常。
四、客户端配置,让群晖连上服务端
群晖作为客户端,有三种主流部署方式。任选其一即可。
方式一:Docker 图形化部署(推荐新手)
步骤1:拉取 FRP 镜像
打开群晖 Docker 套件 → 切换到「注册表」→ 搜索 chenhw/frp → 双击下载(标签选 latest)。
步骤2:准备配置文件 frpc.ini
在群晖 File Station 中创建路径:/docker/frp/
本地用记事本新建 frpc.ini,内容如下(请替换为你的实际信息):

免费在线工具导航
优网导航旗下整合全网优质免费、免注册的在线工具导航大全
[common]
server_addr = nas.yourname.com # 云服务器公网IP或域名
server_port = 7000 # 必须和服务端 bind_port 一致
auth_token = 2fd165jtyjsd0g5t4hdga16 # 必须和服务端 privilege_token 完全相同
# 转发群晖DSM网页界面(默认HTTP端口5000)
[synology-dsm]
type = http
local_ip = 192.168.1.100 # 你的群晖内网IP
local_port = 5000
remote_port = 5000 # 外网访问端口,可自定义
# 可选:转发SSH(方便远程管理)
[synology-ssh]
type = tcp
local_ip = 192.168.1.100
local_port = 22
remote_port = 2222 # 外网通过此端口连SSH
将该文件上传至 /docker/frp/ 目录。
步骤3:创建容器
- 进入 Docker →「映像」→ 找到
chenhw/frp→ 点击「启动」。 - 在「高级设置」中配置:
- 基本设置:勾选「启用自动重新启动」;
- 卷:添加文件映射,左侧选
/docker/frp/frpc.ini,右侧填/frp/frpc.ini; - 环境:新增变量
FRP_ROLE=client。
点击「下一步」→「应用」,容器启动后状态应为“运行中”。
方式二:Docker Compose 部署(适合自动化运维)
在群晖上创建目录 ~/docker/frp,进入后新建 docker-compose.yml:
version: '3.3'
services:
frpc:
image: docker.leitool.top/snowdreamtech/frpc:latest # 使用国内镜像加速
container_name: frpc
restart: unless-stopped
volumes:
- ./frpc.toml:/etc/frp/frpc.toml # 注意:这里用 .toml 格式,但内容同 .ini
network_mode: host # 使用主机网络,简化端口映射
⚠️ 注意:虽然文件名是
.toml,但 FRP 实际兼容 INI 格式。你仍可使用上面的frpc.ini内容,仅需改名为frpc.toml即可。
启动命令:
docker-compose up -d
方式三:直接运行二进制文件(适合喜欢命令行的老手)
1. 下载 FRP 客户端
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
tar -zxvf frp_0.33.0_linux_amd64.tar.gz
cd frp_0.33.0_linux_amd64
2. 编辑 frpc.ini
内容与 Docker 方案完全一致(见上文),用 vi frpc.ini 编辑保存。
3. 启动并设置开机自启
先测试连接:
./frpc -c ./frpc.ini
看到 start proxy success 表示成功。按 Ctrl+C 停止,再后台运行:
nohup ./frpc -c ./frpc.ini &
4. 添加自启脚本
# 创建启动脚本
vi /usr/syno/etc.defaults/rc.sysv/frpc.sh
写入以下内容(注意路径要匹配你的实际位置):
#!/bin/sh
cd /root/frp_0.33.0_linux_amd64
nohup ./frpc -c ./frpc.ini &
赋予执行权限并加入启动项:
chmod +x /usr/syno/etc.defaults/rc.sysv/frpc.sh
echo "/usr/syno/etc.defaults/rc.sysv/frpc.sh" >> /etc/rc
重启群晖后,执行 ps aux | grep frpc,若能看到进程即表示自启生效。
五、验证与使用
配置完成后,你可以这样访问:
- DSM 界面:浏览器打开
http://你的服务器IP:5000 - SSH 登录:
ssh admin@你的服务器IP -p 2222
🔒 安全建议:生产环境中建议搭配 HTTPS + 域名 + Nginx 反向代理,避免直接暴露端口。
六、常见问题排查
- 连不上? 检查服务端/客户端 token 是否一致,端口是否开放。
- 面板打不开? 确认
dashboard_port已放行,且没被其他服务占用。 - NAS重启后失效? Docker 方案勾了自启就没事;二进制方案务必确认自启脚本路径正确。
结语
FRP 是目前最轻量、灵活的内网穿透方案之一,特别适合家庭 NAS 用户。虽然 Cloudflare Tunnel、ZeroTier 等新方案也在崛起,但 FRP 的可控性和通用性依然不可替代。
如果你按本文一步步操作,应该能顺利实现公网访问群晖。遇到问题不妨回头检查每一步的细节——很多时候就是某个端口没开,或者 token 写错了一个字符。
📚 参考资料:FRP 官方文档
本文基于实际部署经验整理,已在多台 DSM 7.x 设备上验证通过。欢迎留言交流踩坑心得!



