frp实现NAS外网访问
开始
入手了NAS之后就看是漫漫的折腾内网穿透的不归路。用的最多最简单的是下面三种
- QC:群晖自带的,速度在100kb左右,能不能连上有时候都是运气,极其不稳定。
- DDNS:最推荐的方式。上下行都取决自己的宽带,但是需要公网动态ip,如果你是电信的网络可以打10000号试试。
- Frp:一款优秀的专注于内网穿透的高性能的反向代理工具,配置简单上手选,需要有公网一台公网的机器。
硬件
我是一台群晖218+,和一台腾讯云的轻量服务器,配置是 1c 2g 6mb
每个月1200gb的流出流量,系统是ubuntu 20.04
选择轻量服务的器主要是便宜,这个配置三年218还是挺划算的。群晖推荐购买支持 docker
的机型,可玩性会高很多。
服务端配置
-
下载frp到你的有公网ip的服务器上
wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
-
解压文件
tar -zxvf frp_0.37.0_linux_amd64.tar.gz
-
移动解压文件到frp目录下,或者直接用ftp工具连接重名命也可以
mv frp_0.37.0_linux_amd64 frp
-
进入frp目录编辑frps.ini文件
cd frp
vim frps.ini
- 加入下面这段配置后保存
[common]
bind_port = 6006 #通信端口,通过ip+这个端口访问你的群辉
token = 123456 #类似密码,一致才允许反问
- 启动frp服务
./frps -c ./frps.ini
这样就是启动成功了
- 设置frp自启动
vim /lib/systemd/system/frps.service
- 加入下面这段配置后保存
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/frp/frps -c /root/frp/frps.ini // 注意这里的目录需要和你frp的解压路径一致
[Install]
WantedBy=multi-user.target
- 启动frp并设置自启动
systemctl start frps
systemctl enable frps
NAS配置
- NAS上直接是直接托管到docerk上面的,需要在套件中心安装docker组件后下载frp映像
如果搜索不到可以直接在映像里面点击添加-从url添加 https://hub.docker.com/r/chenhw2/frp
地址
- 新增配置文件
在NAS的docker目录下面新增frp目录,并在目录下面新增frpc.ini
文件,下面是我的配置,
需要映射什么端口出去在这里配置后重启客户端frp服务即可。
[common]
server_addr = xxxxxx # 公网服务器ip
server_port = 6006 # 约定的端口
token = 123456 # 约定的token
[DSM]
type = tcp # 协议类型
local_ip = 127.0.0.1 # 内网ip
local_port = 5000 # 内网端口
remote_port = 80 # 外部访问的端口
[gogs]
type = tcp
local_ip = 127.0.0.1
local_port = 10080
remote_port = 6001
[WebDAV]
type = tcp
local_ip = 127.0.0.1
local_port = 5005
remote_port = 5005
[Drive]
type = tcp
local_ip = 127.0.0.1
local_port = 6690
remote_port = 6690
- 配置容器
-
双击下载好的映像进入启动页面,点击左下角的高级设置。点击卷--添加文件,选择刚才的配置文件路径。
-
点击网络,勾上左下角
使用与 Docker Host 相同的网络
选项。 -
点击环境,添加一个新环境。
-
点击应用容器就会启动。到此就可以直接通过ip访问你的NAS啦。
总结
需要映射NAS的其他端口可以去官方看看端口号对应的功能,也可以吧NAS中docker的映射出去,可玩性就非常高啦,如果有条件建议直接上DDNS。