无聊人x的小记

【技术总结】- 随时随地获取黑群晖中的资料-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首页
frp首页

tcp
tcp

http
http

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

网页登录
网页登录

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

moments
moments

ds video
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
ds photo


总结

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

评论