前言
之前懒着折腾直接买了白群辉,发现群辉的 quickConnect 实在是不给力.群辉放在单位, 在家里电视上串流看电影的需求都满足不了,1M 的小水管也只能看看文档了.
然后去看了花生壳和花生棒,发现更是个天坑.免费版一个月 1g 流量+1M 带宽,付费版不限流量但是带宽比 qc 宽不了多少,可以说是性价比极低.(见下图)
今天同时安利了 frp,试了下发现配置简单 ,同时内网穿透的效果也比较好,播放视频的速度也很满意,于是写下这边技术总结.
关于 frp
frp是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
简单来说,frp 借助有公网 ip 的 vps 实现了内网穿透的功能.
流程
架构图:
工具
- 有公网 ip 的 vps,最好是国内的主机.
- 域名,并且做了域名解析.
- ssh 客户端.
- 群辉 DS218+
配置
在这里要说一句,客户端与服务端的软件版本必须保证相同,否则会报错.
服务端配置
1.登录服务器,下载服务器对应的软件版本.
[root@instance-ssr ~]# uname -a
Linux instance-ssr 5.1.15-1.el7.elrepo.x86_64 #1 SMP Tue Jun 25 10:52:45 EDT 2019 x86_64 x86_64 x86_64 GNU/Linux
我的主机是 centos7,所以下载了 amd64 版本.
解压文件
tar -zxvf frp_0.29.0_linux_amd64.tar.gz
删除不必要的客户端文件
//frpc 是客户端(client)文件,frps 为服务端(frps)文件.
cd frp_0.12.0_linux_amd64
rm -f frpc frpc_full.ini frpc.ini
编辑配置文件 frpc.ini
1 | // common 为必填项 |
运行
保存上面的文件,接着:
./frps -c ./frps.ini
来运行服务端程序.
客户端配置
这里的客户端主要是指群辉.
ssh 登录群晖
群辉必须开启 ssh
ssh admin@local_nas_ip
群晖下载 frp 客户端
1 | sudo -i // 切换 root 用户 |
编辑 frpc.ini
1 |
|
运行
与服务端类似,保存上面编辑的文件,接着:
./ frpc -c ./frpc.ini
测试
// user是你登录 nas 的用户名.
ssh -p 6000 user@你的公网 ip
配置成功以后就可以使用 ssh 链接了.
网页登录:
two more things
后台运行
现在客户端和服务端的程序都在运行了,但是我们断开链接以后服务就会中断,因此我们需要把服务转为后台运行.
服务端
nohup ./frps -c ./frps.ini &
客户端
nohup ./frpc -c ./frpc.ini &
同时我们可以使用群辉的定时任务功能,让 frp 在群辉重启以后自启动,方法如下:
1 | //新建脚本 |
群辉中新建计划任务.
控制面板>任务计划>触发的任务>用户定义的脚本
隐藏 8080 端口
在服务器的 nginx 配置文件(/ect/nginx/nginx.conf)中修改:
1 | server { |
映射 80 到 8080 .
配置 ssh 别名
配置别名(alias)的过程比较简单,在~/.ssh/config这个文件(如果目录下没有这个文件,可以新建一个)接着按下面格式添加服务器信息:
# 服务器1
Host 别名
HostName IP地址
Port 22
User 用户名
# 服务器2
Host 别名
HostName IP地址
Port 22
User 用户名
...
# 更多服务器
例如, config 添加如下内容
Host ssr
HostName 35.234.36.117
Port 22
User root
可以通过 ssh ssr
来直接进行登录.
done.