使用 Frp 对内网黑群晖进行穿透型映射
虽然之前自己搭的黑群晖已经洗白,并成功使用 QuickConnect 进行连接,但是好景不长,可能是过多的黑群晖用户在使用白群晖服务,造成群晖方面发起了策略,我洗白过的黑群晖被拉黑。为了在外网环境下也可以使用内网的 DSM 服务,所以我决定使用 Frp 对内网黑群晖进行穿透型映射 Frp 对内网黑群晖进行穿透型映射。(在学校机房写的,全程无图,抱歉,如果有问题请留言)
前期准备
括号内是我实际测试过程中使用的软件版本。不同版本在设置中可能存在些许差异,但你可以找和你硬件相匹配的版本来完成映射。
1、黑群晖一台(DSM 6.0.2)
2、有公网 IP 的 VPS(CentOS 7.x)
3、相应版本的 Frp 软件(Linux_amd64)
4、域名一个
Frp 介绍
懒了,直接移步到 GitHub 中的 Frp 中文介绍。
你也可以不看这个介绍,但你必须对如下的内容有所了解。
frps 及 frps.ini,frp 的服务端和服务端配置文件,需要放到有公网 IP 的机器上。
frpc 及 frpc.ini,frp 的客户端和客户端配置文件,需要放到处于内网环境的机器上。
Dashboard 可以通过浏览器查看 frp 的状态以及代理统计信息展示。
特权模式,避免每次增加代理都需要操作服务器端,代理的所有配置信息都可以在 frpc.ini 中配置,无需在服务器端做任何操作。
对 Frps 的配置
下载 frp 并解压
wget https://github.com/fatedier/frp/releases/download/v0.9.3/frp_0.9.3_linux_amd64.tar.gz
tar -zxvf frp_0.9.3_linux_amd64.tar.gz
cd frp_0.9.3_linux_amd64
改写配置文件
首先先进入 frps 目录,然后改写配置文件 frps.ini,使用命令:vi frps.ini
。
为了方便后期维护,所以我对服务端采取的是特权模式配置。
1 | [common] # frp 监听地址、端口 |
运行一下试试:./frps -c frps.ini
,这时候你访问 frps 控制面板,并使用之前配置的用户名、密码登录,应该可以正常进入控制面板页面。
对 Frpc 的配置
开启 DSM 的 SSH:登录 DSM,控制面板->终端机和 SNMP,勾选启动 SSH 功能,保存。
使用 SSH 登录你的 DSM:可以使用 xShell 类的软件,使用 admin 帐号登录。
提升权限:使用 sudo -i
提升权限至 root。
下载 frp:
wget https://github.com/fatedier/frp/releases/download/v0.9.3/frp_0.9.3_linux_amd64.tar.gz
tar -zxvf frp_0.9.3_linux_amd64.tar.gz
cd frp_0.9.3_linux_amd64
进入 frpc 目录,然后改写配置文件 frpc.ini,使用命令:vi frpc.ini
。
1 | [common] # 服务端地址及端口 |
试一下吧:./frpc -c frpc.ini
,启动 frpc。正常的话,用 https://dsm.domain.com:4443 就可以访问你的 DSM。
加载系统服务
Frps 端加载系统服务
因为 Frps 端我放在了 CentOS7 的 VPS 上,CentOS7 使用 Systemd 作为系统服务管理工具,所以我们使用下面的方法注册系统服务。
1 | cp frps /usr/local/bin/frps |
Frpc 端加载系统服务
因为 Frpc 端我放在了黑群晖上,无法实现向传统 Linux 系统一样注册系统服务,所以我们使用下面的方法注册系统服务。
使用 admin 帐号登录 DSM,控制面板->计划任务->新增->触发的任务->用户自定义的脚本。
常规页面 _>
任务名称:frpc
用户帐号:root
事件:开机
任务设置 _>
用户定义的脚本 /root/frpc/frpc -c /root/frpc/frpc.ini
,保存,选定这个计划任务,选择运行。
后记
实测通过,如果有任何问题,欢迎留言讨论。