树莓派_使用内网穿透技术实现不同局域网下的互联(PC异网连接树莓派)

        利用frp技术实现内网穿透

  现在我们已经知道可以使用 VNC、远程桌面连接、SSH 三种技术实现PC与树莓派的互联互通;

如果不知道感兴趣的可以查看我之前写得文章 https://www.cnblogs.com/wyl-pi/p/9784205.html );

但是!!你的PC必须和树莓派在同一段网络下(相同的局域网),那么问题来了如果你出门在外,想远程控制你的树莓派或调取查看其中的信息数据,

怎么办??因为是异网连接这些方法当然就不适用了,所以走了弯路踩了坑后与朋友分享我的烦恼,看看他的见解,经过一番讨论之后,我打算使用

frp技术来实现内网穿透进而完成在异网环境下设备之间的通信与操作。

 

  那么我们已经先了解了它的基本功能(大白话莫见怪),不过你要想看正式规范的。

No problem 如下所示:

一、Frp定义及作用

 

Frp定义:
  Frp 服务可以分配给你一个域名让你本地的Web项目提供给外网访问, 特别适合向别人展示你本机的Web Demo 以及调试一些远程的API (比如微信公众号,企业号的开发)

Frp的作用:
  • 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
  • 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
  • 利用处于内网或防火墙后的机器,对外网环境提供 TCP 和 UDP 服务,例如在家里通过 SSH 访问处于公司内网环境内的主机。

 

二、配置说明

 
1、实现功能:用PC通过VNC、SSH、远程桌面连接来访问内网的树莓派。
 
2、配置前准备
  
  1、网服务器1台(可以买个9.9元/月的服务器也可以,阿里云的腾讯云的等等......学生特价;
这个就比较实惠了,物美价廉?其实我已开始买了几个月发现不知道干嘛用了,后来就静静等待它到期,被收回,end!)
我用的是朋友的服务器搭建配置的,根据个人情况来吧,但必须是要有公网的服务器才能进行下去;
  2、树莓派3B一台(因为我是用的就是这个型号的,至于其他的暂时还没实际操作过)
 

三、那么我们开始吧,Let 's do it.

  首先让我们安装Frp服务,公网服务器与内网服务器都需要下载frp进行安装后面进行配置,现根据自己机器的系统下载压缩包;

  下载地址是  https://github.com/fatedier/frp/releases,我下载的是 frp_0.21.0_linux_arm.zip (客户端系统frp——我的树莓派是3B型);

  Frp分为客户端和服务端两类,Frps为服务端,Frpc为客户端,这个要先理清楚。我们先从服务端开始配置(较客户端而言简单快捷一些)。

服务器端:

  下载服务器系统的Frp文件压缩包,使用远程桌面连接输入你服务器的 IP ---->  enter ----->输入用户名密码,连接成功进入服务器界面。

  找到合适位置,将下载好的压缩包直接拖拽进去,解压。解压后的文件这里主要关注4个文件,分别是frpc、frpc.ini和frps、frps.ini,

前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件,记住带 ‘ s ‘ ’的文件是服务器的否则后面的配置文件可能会把

你整懵,也可以当作是frp_sever,所以带 ‘ s ’ 。

  首先删掉frpc、frpc.ini两个文件,然后再进行配置:

 

[common]
bind_port = 7000           #与客户端绑定的进行通信的端口
vhost_http_port = 6081     #访问客户端web服务自定义的端口号

 

  保存文件然后创建一个start.bat的批处理文件用来启动服务:

frps -c frps.ini
pause

 

 

 

客户端配置:

  下载服务器系统的Frp文件压缩包,找到合适位置,解压。(我下载的是 frp_0.21.0_linux_arm.zip )

  

[common]
server_addr = 115.*.*.*  #公网服务器IP
server_port = 6666       #通信端口

[ssh]
type = tcp
local_ip = 192.168.188.6 #树莓派3B的IP
local_port = 22          #开启的SSH服务接口
remote_port = 6000

[vnc]                    #VNC服务  
type = tcp                              
local_ip = 192.168.188.6    
local_port = 5900
remote_port = 5900

[vnc1]
type = tcp
local_ip = 192.168.188.6
local_port = 5901
remote_port = 5901

可以看到,我在这里多配置了一个vnc1,是用于防止IP被占用无法连通vnc,好处我就不的巴了。

 

同样创建一个star.sh文件用于启动frp服务

/home/pi/frc/frp_0.21.0_linux_arm/frpc -c /home/pi/frc/frp_0.21.0_linux_arm/frpc.ini

 

 

这样当然还不行,必须配置服务器的端口,否则怎么能通信呢?

设置入站规则出站规则:

 

 再次检查服务器端以及客户端的frp服务是否已经开启

 

如图所示,成功连接(服务器端)会有success字样:

 

最后可以通过最简单的测试方法就是,你是用手机开启热点,让你的PC连接手机热点,树莓派依旧连接家庭网络,这样就构成了简单的异网环境。

测试连通性:到了最后的阶段(激动人心啊)

 

如图所示,通过VNC连接访问树莓派,进行通信

 

完成后使用vnc连接服务器,出来的画面就是树莓派的画面了,

Finally Success.

 

讲的比较详细啰嗦了,有什么说的不对的地方还请大佬指教一二。 

 

 

感谢大佬的学习资料,学习借鉴来源此处:

https://blog.csdn.net/u013144287/article/details/78589643/

 

 

 

 

posted @ 2018-11-08 16:17  永怀一颗学徒的心  阅读(1888)  评论(1编辑  收藏  举报