【技术总结】- 随时随地获取黑群晖中的资料-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这个套件有点特殊,暂时还不能访问,有需要请继续看下面


  1. 解析当前域名到服务器

3.1 解析域名

解析 xxx.com 域名添加 nas 与 nas-photo 记录,到 10.10.10.10

域名解析

3.2 域名访问

登录

frp首页

tcp

http

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

网页登录

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

moments

ds video

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了。

ds photo


总结

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