树莓派笔记06-利用frp进行内网穿透实现外网NAS

家庭NAS的实用性就在于可以用最少的money实现局域网内资源共享。家庭NAS的优点有很多,比如说可以多设备同时查看或者修改同一份文档,也可以看视频、音频等。它打破了局域网内设备不能互联的状态。但是出了这个局域网就gg了,如果你有份文档存在NAS里,而你出门要用,那就有点麻烦了。。。
不过通过frp进行内网穿透,将你的家庭NAS端口映射到公网IP上就可以实现外网访问家庭NAS了。无论你在哪儿,只要你随身携带的移动终端(笔记本、平板、手机)等有网络,就可以随时随地查看你放在家中树莓派上的文件了。


什么是frp?

frp是一个高性能的反向代理应用,可以帮助您轻松进行内网穿透,对外网提供服务,支持tpc,http,https等协议类型,并且web服务支持根据域名进行路由转发。

准备:

在使用frp之前,需要一台有公网IP的服务器,一台需要实现内网穿透的机器(树莓派),SSH工具。

下面开始搭建外网NAS:

1.登录云服务器,根据服务器的操作系统,在Release页面中找到对应的frp程序,然后分别在服务器和树莓派中下载它。

下面所示范用的frp程序是基于i686CPU的云服务器和树莓派4b.

云服务器操作:

首先使用SSH连接上云服务器,使用wget指令下载frp程序。

wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_386.tar.gz

使用tar指令解压tar.gz文件

tar -zxvf frp_0.16.0_linux_386.tar.gz

然后进入解压出来的文件夹

cd frp_0.16.0_linux_386

然后修改服务器配置文件,即frps.ini文件,使用nano指令对目标文件进行编辑。

sudo nano frps.ini

打开文件之后将文件里的内容改成

[common]
bind_port = 7000

[common]部分是必须有的配置,其中bind_port是自己设定的frp服务端端口。
保存上面的配置后,使用以下指令启动frp服务端。

./frps -c ./frps.ini

到此服务器端的配置就告一段落。

树莓派操作:

树莓派安装的frp程序跟云服务器端的程序是不一样的,树莓派要选择arm版的,前一部分操作跟云服务器端是相同的。

wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_arm.tar.gz
#这里版本号要相同!!!!!!
tar -zxvf frp_0.16.0_linux_arm.tar.gz
cd frp_0.16.0_linux_arm
sudo nano frpc.ini

客户端的配置如下:


树莓派笔记06-利用frp进行内网穿透实现外网NAS_第1张图片
客户端配置

上面的配置和服务器要一一对应起来:
server_addr后面要填云服务器的IP
server_port后面填云服务器的bind_port
[ssh_pi]中的内容备注如下:
local_ip后面填树莓派的内网IP,也可以直接用这个!
local_port后面填树莓派的SSH端口,一般是22
remote_port后面填的端口可以随意,但是不要占用特定端口
[samba]中的内容备注如下:
local_port后面填445端口(如果没有修改默认端口的话)
lremote_port后面填4545,这是转发端口,记住用这个就对了!
后面的可以复制粘贴了,最后是账号和密码

保存配置,然后运行客户端

./frpc -c ./frpc.ini

此时如果树莓派命令行出现了"start proxy success"字样,就证明连接成功了!
如果出现connecting timed out字样,证明云服务器没有将端口放在安全组内,下面以阿里云服务器开启安全组端口为例
打开主控台之后选择安全组,然后右上角有一个创建安全组


树莓派笔记06-利用frp进行内网穿透实现外网NAS_第2张图片
创建安全组

以打开6000端口为例


树莓派笔记06-利用frp进行内网穿透实现外网NAS_第3张图片
webwxgetmsgimg.jpg

然后再重新运行一下,就能够使客户端连接上服务端了!

后台运行frp

这儿使用的是nohup指令

nohup ./frpc -c ./frpc.ini#在客户端
nohup ./frps -c ./frps.ini#在服务端

后续!!!

考虑到每次开机都要 输入nohup命令,在这儿再接一个自启动教程

使用systemctl来控制启动

首先创建一个文件

sudo vi /lib/systemd/system/frpc.service

在里面内容如下:

[Unit]
Description=frpc.service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frpc.ini

[Install]
WantedBy=multi-user.target

然后启动frpc

#启动frpc
sudo systemctl start frpc
#自启动frpc
sudo systemctl enable frpc
#重启frpc
sudo systemctl restart frpc
#停止frpc
sudo systemctl stop frpc

服务器端与客户端类似的配置。
官网参考文档




如果有不明白的可以关注作者微信公众号并私信问题:

树莓派笔记06-利用frp进行内网穿透实现外网NAS_第4张图片
一技破万法

你可能感兴趣的:(树莓派笔记06-利用frp进行内网穿透实现外网NAS)