威联通TS-212P3 上构建frp客户端
前面有一篇博文【低成本构建私有云NAS】中,提到了使用frp进行反向代理内网穿透,来解决外网远程访问nas的问题。现在就具体实施一下。
原来 以为TS-212P3 入门级的 NAS,配置那么低( ARM cortex-A53 1.4G cpu平台、1G内存),担心没法把frp客户端跑起来,或者没有 可用的docker镜像(x86平台的NAS的镜像要通用得多)。
经过一番尝试,还是 运行起来了。
一. 构建frp服务器端
在有固定ip的ubuntu18.04上构建frp服务器端
-
从github上下载执行文件包。 frp_0.36.2_linux_amd64.tar.gz。
https://github.com/fatedier/frp/releases/tag/v0.36.2
-
可以在ubuntu18.04上直接下载,也可以在windows上下载之后传到ubuntu18.04上。wget好像比较慢,不如在浏览器上直接下载。
wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_arm64.tar.gz -
解压缩
tar -xzvf frp_0.36.2_linux_amd64.tar.gz -
删除客户端相关的文件。
rm frpc frpc_full.ini frpc.ini -
修改服务器配置文件。
vim frps.ini
[common]
bind_port = 7000
token = 12345678
kcp_bind_port = 7000
bind_udp_port = 7001
dashboard_port = 7500
vhost_http_port = 7100
dashboard_user = david
dashboard_pwd = 123456david?
max_pool_count = 5
log_file = /home/username/download/frp_0.36.2/frps.log
log_level = info
log_max_days = 3
use_encryption = true
use_compression = true
tcp_mux=true
- 修改自动启动的配置文件。
vim ./systemd/frps.service
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/username/download/frp_0.36.2/frps -c /home/username/download/frp_0.36.2/frps.ini
[Install]
WantedBy=multi-user.target
-
把service的配置文件,复制到相应目录。
sudo cp ./systemd/frps.service /lib/systemd/system/ -
启动frp服务端。
sudo systemctl start frps
sudo systemctl enable frps -
访问一下frps的dashboard。测试一下frp服务端的启动情况。
http://服务器端外网ip:7500/
二. 构建frp客户端
在威联通TS-212P3 上用docker容器构建frp客户端
-
在AppCenter里面安装Container Station。
-
在Container Station中找一个能用的frpc容器镜像。
我试了好几个终于找到一个。主要是要和NAS的cpu平台兼容。
https://hub.docker.com/r/leonismoe/frpc
-
基于镜像创建容器。
事先在NAS的/Public/frpc目录下,创建一个frpc.ini文件。
其实只使用了[qnap-web]这个tcp配置,其他的[Qnas]和[udp]未配置成功。后面再研究吧。
[common]
server_addr = XXX.XXX.XXX.XXX #服务器端外网ip
server_port = 7000 #和服务器端设置一致
token = 12345678 #和服务器端设置一致
protocol = kcp
[Qnas]
type = http
local_ip = 192.168.10.106 #NAS IP
local_port = 5000
use_encryption = true
use_compression = true
custom_domains = frp.com
use_gzip = true
pool_count = 20
privilege_mode = true
[qnap-web]
type = tcp
local_ip = 192.168.10.106 #NAS IP
local_port = 5000 #NAS Port
remote_port = 7101
use_encryption = true
use_compression = true
[udp]
type = udp
local_port = 5000
remote_port = 7002
use_encryption = true
use_compression = true
创建容器成功后。
三、访问测试
在电脑浏览器下,访问。
http://服务器端外网ip:7101/
在Qfile 手机app上访问。
存在的问题是,在Qfile上访问的情况下,用流量访问的话,视频流媒体播放速度非常慢,下载速度比较快。
在wifi环境下,视频流媒体播放速度和下载速度都非常快。原因未知。