Frp!没有公网IP也可以穿透啦!
写在前面
有nas的用户总是很苦恼一个事情,在外访问是一件异常困难的事情!
当然你可以选择DDNS-GO代理域名,通过IPV6去访问家里的NAS,可是如果是纯IPV4环境下呢?
要知道很多公共场所的WIFI都只有单一的IPV4网络环境,这个时候是无法访问到NAS的。
那有没有一种方法能够解决这个问题呢?
现在如果你有一台VPS,那这个问题将不再是问题。
那就是FRP!
FRP是一种组网策略,简单来说就是将你的NAS和一台拥有公网IP的设备组成局域网,通过它的公网IP来访问你的NAS。
现在让我们开始吧!
Let’s do it!
正式搭建
本次部署还是会通过docker-compose的方式来安装。
如果你没有安装docker和docker-compose,你可以看看这篇文章。
【启航!】安装Dcoker及Docker-compose!|少年听雨 (shaoniantingyu.top)
部署Frp服务端
创建并打开Frps文件夹
sudo -i #以管理员运行
mkdir -p /root/data/docker_data/frps
cd /root/data/docker_data/frps
创建docker-compose,并编辑docker-compose文件。
vim docker-compose.yml
version: '3.3'
services:
frps:
restart: always
network_mode: host
volumes:
- '.frps.toml:/etc/frp/frps.toml'
container_name: frps
image: snowdreamtech/frps
按下Esc,并输入:wq,退出保存。
创建frps.toml 并编辑它。
vim frps.toml
[common]
#frp 监听端口,与客户端绑定端口
bind_port= 5443
kcp_bind_port = 5443
#修改自己用户名
dashboard_user= shaoniantingyu
#修改自己密码
dashboard_pwd= shaoniantingyu123
#启动成功后可通过浏览器访问如http://ip:9527
dashboard_port= 9527
#设置客户端token,对应客户端有页需要配置一定要记住,如果客户端不填写你连不上服务端
token = s1h2a2o7ni1an
注意看文件里的中文提示,并按照自己所需修改它!
按下Esc,并输入:wq,退出保存。
运行docker-compose文件。
docker-compose up -d
一切顺利的话,输入你的http://你的VPSIP+9527,就可以打开frp服务端web页面,证明frp的服务端我们就已经搞定了。

部署Frpc客户端
套件安装
如果你想简单点,非常建议你使用套件的方式链接,这里以群晖为例。
打开套件中心点击设置

添加矿神源

这里贴一下群晖7.x版本的群晖源
https://spk7.imnks.com/
6.X可以去矿神的网页找找。
PS:感谢矿神大大的矿神源!真的帮助了很多像我这样的小白!!
添加之后搜索frp下载客户端并安装。

打开frp客户端并添加配置

这里详细解释下图中代码的意思,如下:
[ssh] #设置的名字,你可以修改[]内的名字,比如这里的意思是它转发的是SSh的端口。
type = tcp #设置的通道形式,不懂没关系,一般不用改,TCP就行。
local_ip = 127.0.0.1 #设置内网IP地址,你可能会说你的Ip应该是192.xxx.x.x呀,但其实docker容器他们也有自己的内网ip,如果你不知道IP,你可以在打开docker,点击网络-bridge查看。
local_port = 22 #需要转发的内网端口,比如这里SSH的内网端口是22,就填22。
remote_port = 6000 #转发后的端口,即以后用你VPS的IP访问的端口。
注意看文件里的中文提示,并按照自己所需修改它!
在了解这些之后,你就可以删除以上的,并添加一段代码链接我们FRP服务端的代码,如下:
# frpc.toml
[common]
server_addr = 10.111.02.01 #你的VPS的IP地址。
server_port = 5443 #Frps服务端的端口。
token = s1h2a2o7ni1an #链接密钥,这个密钥需要和你配置的VPS上要一致。
注意看文件里的中文提示,并按照自己所需修改它!
这里参考一下我的配置设置,如下:
# frpc.toml
[common]
server_addr = 10.111.02.01
server_port = 5443
token = s1h2a2o7ni1an
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 222
remote_port = 6000
[qb]
type = tcp
local_ip = 127.0.0.1
local_port = 8092
remote_port = 6001
设置完成之后,点击保存。
一切顺利的话,输入你的http://VPS的IP+9527,打开Proxies并点击TCP就可以看到你刚刚添加的所有信息啦,以后输入VPS的IP+上配置好的端口,就可以在任何有网络的地方访问你的NAS啦!!

Docker-compose安装
使用ssh工具进入链接我们的NAS,并进入管理员权限。
sudo -i
创建并打开Frpc文件夹
mkdir -p /root/data/docker_data/frpc
cd /root/data/docker_data/frpc
创建docker-compose,并编辑docker-compose文件。
vim docker-compose.yml
version: '3.3'
services:
frpc:
restart: always
network_mode: host
volumes:
- './frpc.toml:/etc/frp/frpc.toml'
container_name: frpc
image: snowdreamtech/frpc
按下Esc,并输入:wq,退出保存。
创建frpc.toml并编辑它
vim frpc.toml
# frpc.ini
[common]
server_addr = 10.111.02.01 #你的VPS的IP地址。
server_port = 5443 #Frps服务端的端口。
token = s1h2a2o7ni1an #链接密钥,这个密钥需要和你配置的VPS上要一致。
[ssh] #设置的名字,你可以修改[]内的名字,比如这里的意思是它转发的是SSh的端口。
type = tcp #设置的通道形式,不懂没关系,一般不用改,TCP就行。
local_ip = 127.0.0.1 #设置内网IP地址,你可能会说你的Ip应该是192.xxx.x.x呀,但其实docker容器他们也有自己的内网ip,如果你不知道IP,你可以在打开docker,点击网络-bridge查看。
local_port = 22 #需要转发的内网端口,比如这里SSH的内网端口是22,就填22。
remote_port = 6000 #转发后的端口,即以后用你VPS的IP访问的端口。
[qb]
type = tcp
local_ip = 127.0.0.1
local_port = 8092
remote_port = 6001
注意看文件里的中文提示,并按照自己所需修改它!
按下Esc,并输入:wq,退出保存。
运行docker-compose文件。
docker-compose up -d
一切顺利的话,输入你的http://你的VPSIP+5443,打开Proxies并点击TCP就可以看到你刚刚添加的所有信息啦,以后输入VPS的IP+上配置好的端口,就可以在任何有网络的地方访问你的NAS啦!!

最后
Frp穿透质量依赖于VPS的带宽、线路。
如果你的带宽非常小,那么可能无法播放媒体影音;如果你的线路很差,那么访问的速度速度会大打折扣。
所有如果遇到以上问题,一定要检查自己的VPS信息。
当然如果你打算购买VPS来穿透的话,就可以参考这两个标准去选购啦!
评论区