一、什么是内网穿透?
简单说就是内网中的一台计算机具有自己的内部IP,外网的计算机具有公共的IP,而内部IP是无法直接通过外网来访问的,这就需要一种方式来将外网的IP转化为内部的合法IP来进行合法访问。
二、什么是FRP?
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
三、准备材料:
服务端:vps
客户端:树莓派3B/3B+/4B
四、准备服务器端的vps
1、什么是VPS?
VPS(Virtual Private Server 虚拟专用服务器)技术,将一台服务器分割成多个虚拟专享服务器的优质服务。实现VPS的技术分为容器技术,和虚拟化技术。在容器或虚拟机中,每个VPS都可分配独立公网IP地址、独立操作系统、实现不同VPS间磁盘空间、内存、CPU资源、进程和系统配置的隔离,为用户和应用程序模拟出“独占”使用计算资源的体验。VPS可以像独立服务器一样,重装操作系统,安装程序,单独重启服务器。VPS为使用者提供了管理配置的自由,可用于企业虚拟化,也可以用于IDC资源租用。
公网服务器与FRP构成一个桥梁.我们通过它将可以访问我们放置在内网的树莓派.服务器
2、使用的virmach的VRS
VirMach它是一家非常便宜的支持Linux VPS和Windows VPS 美国主机商
购买链接(也可以选择其他家)
https://billing.virmach.com/cart.php
买好以后
会收到3个邮件
最上面的邮件里面就是你的IP还有账号密码
点击我的服务
然后点击下方按键
进入到服务器后台
打开PUTTY输入你的ip(公众号发送putty即可获得该软件)
输入账户root还有初始密码(邮件里面有)
首次登录到服务器终端
修改登录密码
直接输入
passwd
输入两遍,新密码即可。
五、服务器端-vps配置
利用FXP(公众号发送“fxp”即可获得该软件”)把下好的frp安装包上传到服务器(公众号发送“frp”即可获得。
如果你的VPS和本教程的不一样可以再下面网址选择适合你VPS的FRP
https://github.com/fatedier/frp/releases
登陆FXP用的是你的服务器IP以及你刚才修改的密码
tar -zxvf frp_0.20.0_linux_386.tar.gz
文件解压后,一般都含有frps(frp服务端运行文件)、frpc(frp客户端运行文件)、frps.ini(frp服务端配置文件)、frpc.ini(frp客户端配置文件),以及frp_full.ini(frp全部配置文件解释说明和参考。)
在服务器终端输入以下指令
cd frp_0.20.0_linux_386
nano frps.ini
在 frps.ini 中输入:
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = dashboard_user_name
dashboard_pwd = dashboard_pwd_value
[common]部分是必须有的配置
其中bind_port是自己设定的frp服务端端口
dashboard_port_number 改为一个特定的端口号,如8000,如此便可以通过 http://yourip:8000 来访问 frps 的网页控制台页面.
dashboard_user 和 dashboard_pwd要填写一个自定义的用户名和密码,用于在访问 frps 控制台页面时输入.
保存上面的配置后,使用以下指令启动frp服务端。
./frps -c ./frps.ini
在浏览器输入“IP:7500”可以看到你的FRP的后台
六、客户端 – 树莓派配置
树莓派正常登陆putty,输入以下指令
wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_arm.tar.gz
tar -zxvf frp_0.20.0_linux_arm.tar.gz
cd frp_0.20.0_linux_arm
sudo nano frpc.ini
写入下面内容
[common]
server_addr = 填写你的服务器ip
server_port = 7000
[VNC]
type = tcp
local_ip = 127.0.0.1
local_port = 5900
remote_port = 5900
注意
这里是用VNC举例子,你也可以做域名的映射
输入下面指令运行
./frpc -c ./frpc.ini
成功
我们开始用VNC来测试一下是否成功
可以用你的手机的VNC或者是电脑的VNC进行登陆测试(不要和树莓派连接在同一网络)
还可以在我们刚才的FRP后台看一看端口的情况