【技术总结】- 随时随地获取黑群晖中的资料-FRP搭建及使用
一、初始需求
远程访问群晖的文件,使用域名访问并且不加端口,比如说在浏览器打开 http://nas.xxx.com 就是群晖的页面,手机使用DS套件远程访问,比如:DS file 输入 nas.xxx.com可以登录

所有照片都放在群晖里,希望在外面也能访问,查看了很多资料,核对到家中有公网IP,但是死活搞不定端口转发,索性放弃,看其他的方法。现在比较常见的有花生壳,Ngrok, Frp,ZeroTier等等等。
- ZeroTier使用了一下,虽然后台已经显示链接上了,但是手机一直无法链接,只能放弃;
- 花生壳,收费且限制流量,放弃;
- 洗白,分半洗白和全洗白,看完评价之后觉得有被锁机的风险,不适合我,放弃;
- Ngeok没有太找到对应的教程,自己对Linux毫不知晓,再次放弃;
- Frp,初次尝试Frp,按照smzdm论坛-黑群晖配合 frp 无公网IP实现远程连接(图文并茂),进行配置,一步一步都很顺畅,但是唯独在docker中开启老实报错,只能做罢,直到又一天看到了另外一个大神的方法,按序进行,结合之前的方法,才搞定。原始地址在这-FRP内网穿透实现多种功能及实用性测试
下面开始我自己的安装顺序
一、环境准备
- 黑群晖主机,系统6.1.7
- 域名2个解析到服务器 nas.xxx.com,nas-photo.xxx.com(用于Photo Station)
- 服务器,有公网IP的云主机(下文假定IP为 10.10.10.10),系统 Centos 7,需安装Nginx(自用搬瓦工)
二、开始操作
简单来说就是3步:
1. 在服务器中运行 frp 服务端 "frps" 与相关配置
2. 在群晖系统中运行 frp 客户端 "frpc" 与相关配置
3. 解析当前域名到服务器
那么现在展开来说:
1. 在服务器中运行 frp 服务端 "frps" 与相关配置
1.1 首先使用Putty远程连接到服务器,打开终端输入:(10.10.10.10为服务器IP,请更换为自己服务器的IP
下载:wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz
下载完成之后,用tar指令解压:tar -zxvf frp_0.21.0_linux_amd64.tar.gz
解压完成,进入frp目录文件夹 cd frp_0.21.0_linux_amd64
删除不需要客户端的文件:rm -f frpc frpc_full.ini frpc.ini
编辑frps.ini配置文件:vi frps.ini
按键盘上的INSERT键进入编辑状态,写入下面的内容,括号及里面内容不要
[common]
bind_port = 7000(frp服务端口,可自定义)
vhost_http_port = 8080(http访问端口,可自定义,我这里使用8080)
dashboard_port = 7500(访问dashboard端口)
dashboard_user = aaaaa(这里写frp控制台的管理用户名,自定义的)
dashboard_pwd =123456 (这里写frp控制台的管理密码,自定义的)
max_pool_count = 10(最大连接池数量)
authentication_timeout = 900 (超时验证时间,单位是秒)
subdomain_host =XXXXXX.cn(我的域名)
[ssh]
listen_port = 6000(服务器ssh访问端口,可自定义)
auth_token =abcdefg(客户端与服务器端身份验证,可自定义)

编辑好内容之后,按ESC键,然后输入:wq
,按回车保存即可
启用frp服务:nohup ./frps -c ./frps.ini &
在浏览器中输入 你的域名:7500(如XXXXXX.cn:7500),如果弹出要求输入用户名和密码的界面,则表示frp服务器端配置成功,这时候输入frps.ini中设置的用户名和密码就可以登陆进去了,界面如下图所示

2. 在群晖系统中运行 frp 客户端 "frpc" 与相关配置
2.1 准备 frp 客户端配置文件
进入群晖,打开文本编辑器,新建文件,复制粘贴保存为 frpc.ini(纯手打备注)
frpc.ini
[common]
server_addr = 10.10.10.10
server_port = 7000
login_fail_exit = false
log_file = ./frpc.log
log_level = info
log_max_days = 3
privilege_token = *********
[nas]
privilege_mode = true
type = http
local_ip = 192.168.2.143
local_port = 5000
custom_domains = nas.xxx.cn
[nasphoto]
privilege_mode = true
type = http
local_ip = 192.168.2.143
local_port = 80
custom_domains = nas-photo.xxx.cn
[ghost]
privilege_mode = true
type = http
local_ip = 192.168.2.143
local_port = 3001
custom_domains = ghost.xxx.cn
[blog]
privilege_mode = true
type = http
local_ip = 192.168.2.143
local_port = 80
custom_domains = blog.xxx.cn
[webdav]
privilege_mode = true
type = http
local_ip = 192.168.2.143
local_port = 5005
custom_domains = web.xxx.cn
保存到用户主目录 /home/docker/frp/conf/frpc.ini
2.2 安装 Docker 套件,注册表搜索 frp 下载

双击下载,防止时间有效性,选择和服务端一致版本
2.3 创建 Docker frpc容器

下载好后将在映像中出现,双击新增容器进行配置

点击高级设置



完成后点击应用,在容器中就可以查看到了。

2.4 IP访问
此时如果将上面 frp 客户端配置中的域名换成IP那么其实已经可以访问了,访问地址应该是:http://10.10.10.10:7008, 不想继续优化的到这里就可以远程访问黑群晖了,不过 Photo Station这个套件有点特殊,暂时还不能访问,有需要请继续看下面
- 解析当前域名到服务器
3.1 解析域名
解析 xxx.com 域名添加 nas 与 nas-photo 记录,到 10.10.10.10

3.2 域名访问




此时已经可以使用 http://nas.xxx.cn:8080 进行访问群晖的 web 管理

开放了 5000 端口的话也能使用手机上的DS套件应用连接了,使用 5000 端口的套件应用有:DS audio、DS cam、DS file、DS finder、DS video、DS download。


3.3 访问 Photo Station 套件
这个套件有点特殊,他用的是HTTP协议,并且是80端口,众所周知,80端口是HTTP协议默认端口,所以这个套件就算你有公网IP也不能访问,除非你是专线能开80端口的,但是应该也不会给NAS家用,所以在frpc中单独把80端口转发掉,如之前文中说明:
[nasphoto]
privilege_mode = true
type = http
local_ip = 192.168.2.143
local_port = 80
custom_domains = nas-photo.xxx.cn
然后就可以使用DS PHOTO了。

总结
这样使我们日常远程访问变得极其方便,随时随地都能访问家里的黑群晖,实现其他各种玩法。在这你需要感谢Frp插件的作者及SMZDM上各路大神的教学文,没有他们,就没有现在的这篇文章,还有群晖公司,不记前嫌的不封杀黑群晖,非常感谢~