群晖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 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

FRP服务端核心配置文件,用vi命令编辑:

vi frps.ini

i进入编辑模式,粘贴以下内容,关键参数已标注修改说明:

[common]
bind_addr = 0.0.0.0          # 允许所有IP连接,固定填这个
bind_port = 7000             # 服务端与客户端通信的端口,需开放(如7000)
privilege_token = 2fd165jtyjsd0g5t4hdga16  # 安全密钥,自己编个复杂的(字母+数字),客户端要和这个一致
vhost_http_port = 5000       # 转发HTTP请求的端口(如5000)
vhost_https_port = 6000      # 转发HTTPS请求的端口(如6000)
dashboard_port = 7500        # FRP控制台端口,可查看连接状态
dashboard_user = admin       # 控制台用户名
dashboard_pwd = admin123     # 控制台密码

编辑完成后,按Esc,输入:wq保存退出。

步骤3:开放端口+启动服务端

这步是关键!云服务器的安全组和防火墙都要开放端口(7000、5000、6000、7500):

# 1. 防火墙开放端口(CentOS用firewalld,Ubuntu用ufw,根据系统选对应命令)
# CentOS系统执行:
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系统执行:
sudo ufw allow 7000/tcp
sudo ufw allow 5000/tcp
sudo ufw allow 6000/tcp
sudo ufw allow 7500/tcp
sudo ufw reload

然后用nohup命令让FRP在后台运行(关闭SSH窗口也不停止):

nohup ./frps -c ./frps.ini &

验证是否启动成功:打开浏览器访问云服务器IP:7500,输入控制台用户名密码,能看到FRP面板就说明服务端没问题了。

(直接执行./frps -c ./frps.ini会显示启动日志,如下图,用nohup启动不会显示日志)

img

4、客户端配置:NAS连接服务端

NAS作为客户端,有两种配置方式:Docker和源码部署,选一种就行。

方案A:Docker配置

群晖Docker套件操作简单,不用记命令,适合刚接触NAS的用户。

步骤1:下载FRP镜像

  1. 打开群晖Docker套件,切换到「注册表」。
  2. 搜索栏输入chenhw,找到chenhw/frp镜像,双击默认下载(标签选latest)。

步骤2:准备客户端配置文件frpc.ini

先在群晖里建个存放FRP配置的文件夹,方便后续修改:

  1. 打开File Station,进入「docker」文件夹,新建子文件夹frp
  2. 在本地电脑用记事本新建frpc.ini文件,粘贴以下内容(替换成你的信息):
[common]
server_addr = nas.yourname.com  # 你的云服务器域名或公网IP
server_port = 7000              # 和服务端bind_port一致(7000)
auth_token = 2fd165jtyjsd0g5t4hdga16  # 和服务端privilege_token完全一致

# 转发群晖DSM网页服务(5000端口是群晖默认HTTP端口)
[synology-dsm]
type = http
local_ip = 192.168.1.100        # 群晖的内网IP(在群晖控制面板→网络里看)
local_port = 5000
remote_port = 5000  # 公网访问的端口(自定义,如5000,需在服务端开放)

# 转发群晖SSH(22端口,可选,方便公网SSH管理群晖)
[synology-ssh]
type = tcp
local_ip = 192.168.1.100
local_port = 22
remote_port = 2222  # 公网访问的端口(自定义,如2222,需在服务端开放)

将编辑好的frpc.ini上传到群晖的docker/frp文件夹。

步骤3:创建FRP容器并配置

  1. Docker套件切换到「映像」,双击chenhw/frp镜像,进入容器创建向导。
  2. 点击「高级设置」,重点配置以下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'

services:
  frpc:
    image: docker.leitool.top/snowdreamtech/frpc:latest
    container_name: frpc
    restart: unless-stopped  # 自动重启(除非手动停止)
    volumes:
      - ./frpc.toml:/etc/frp/frpc.toml # 挂载配置文件
    network_mode: host  # 使用主机网络模式(可选,根据需求调整)

配置文件frpc.ini与方案A是一样的,上传到群晖的docker/frp文件夹。

保存配置文件后,执行以下命令启动容器:

# 后台启动服务
docker-compose up -d

方案C:执行文件部署

如果习惯命令行操作,也可以直接下载执行文件进行部署。

步骤1:SSH连接群晖并下载FRP

# 下载FRP包(和服务端版本一致,0.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

步骤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. 创建启动脚本
vi /usr/syno/etc.defaults/rc.sysv/frpc.sh

# 2. 粘贴以下内容(路径替换成你的FRP文件夹路径)
#!/bin/sh
cd /root/frp_0.33.0_linux_amd64  # FRP解压后的路径
nohup ./frpc -c ./frpc.ini &

# 3. 给脚本加执行权限
chmod +x /usr/syno/etc.defaults/rc.sysv/frpc.sh

# 4. 加入系统启动项
echo "/usr/syno/etc.defaults/rc.sysv/frpc.sh" >> /etc/rc

重启群晖后,执行ps aux | grep frpc,能看到frpc进程就说明自启成功。

参考资料

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇