2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 基于树莓派的远程实时监控(内网穿透)

基于树莓派的远程实时监控(内网穿透)

时间:2023-10-07 18:11:34

相关推荐

基于树莓派的远程实时监控(内网穿透)

/*本文系湛江市第十七中学星火创客团队及岭南师范学院物联网俱乐部原创部分参赛项目,转载请保留声明 */

一、项目背景与目标:

此项目基于一个师弟的留言:如何实现在学校的校园网(办公网)内实现内网穿透。我在已经解决师弟所提出的难题以后,将这个技术知识点应用起来,用树莓派搭建一个简易的监控平台。

当前我们在市面上购买网络监控设备,往往会配备相关的App、Web端等相关的移动应用。但是,前通过Shodan搜索实现网络摄像头入侵、字典破解用户操作平台密码甚至是直接入侵监控制造商服务器等等方式爆破网络摄像头的事例已比比皆是。因此,搭建一台属于我们自己控制的网络监控就显得其存在的合理性和必要性了。

注:此次时间紧迫,视频监控和安全这块还没时间做得很完善,等面试完以后,有时间会做一个工程项目来教大家。

二、工程搭建

2.1 硬件准备

①树莓派摄像头模组Raspberry PI csi接口

②树莓派4B/3B+

2.2树莓派系统烧写

①系统烧写方法

2.3工程搭建(局域网)

①开启摄像头接口

如果你之前已经使用过摄像头接口,直接看跳到下一步。如果还没有的用过的话,树莓派摄像头接口可能还没有打开,这是树莓派打开摄像头接口的方法:

(i)打开树莓派终端输入:

sudo raspi-config

(ii) 选中Interfacing Options按Enter键进入子菜单

(iii) 选中Camera,按Enter键,打开摄像头接口,确认打开后即可

②接入摄像头

给树莓派接上摄像头很容易。确保树莓派已经关机的情况下,用指甲轻轻抠开CSI接口卡扣,将有金属接触面的一面对准卡扣白色的一面,再按压扣紧卡扣就安装好摄像头了。

③找到树莓派的IP地址

在树莓派终端输入命令 ipconfig,wlan0即为树莓派的ip地址。

④ 下载脚本

Gitee链接地址为:/qiqicancanqiqi/raspberry-pie/tree/master/Video_surveillance

⑤ 代码执行(python3自己安装)

python3 ~/rpi/rpi.python

此时监控系统以及开始工作了。局域网内的任何设备,打开浏览器地址栏输入 ip:端口,(冒号前的IP地址换成你自己树莓派的ip)即可打开网络监控系统。视频响应的延时取决于你的树莓派和路由器的性能,保持程序运行,下面将教大家如何通过外网访问用树莓派做的内网视频监控。

2.4 内网穿透

2.4.1服务器端配置(腾讯云+宝塔)

①寻找合适的frp版本,服务器为X64位

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

tar -zxvf frp_0.36.2_linux_amd64.tar.gz

③使用cd指令进入解压出来的文件夹

cd frp/frp_0.36.2_linux_amd64/

④外网主机作为服务端,可以删掉不必要的客户端文件,使用rm指令删除文件。

rm -f frpcrm -f frpc.ini

⑤接下来要修改服务器配置文件,即frps.ini文件。使用vim指令对目标文件进行编辑。

vim frps.ini

[common]bind_port = 7000vhost_http_port = 8000

[common]部分是必须有的配置,其中bind_port是自己设定的frp服务端端口,vhost_http_port是自己设定的http访问端口。

保存上面的配置后,使用以下指令启动frp服务端。(如果需要在后台运行,请往下翻阅关于后台运行的部分。)

./frps -c ./frps.ini

⑥使用systemctl来控制启动

这个方法比较好用,很方便

sudo vim /lib/systemd/system/frps.service

在frps.service里写入以下内容

[Unit]Description=frps serviceAfter=network.target syslog.targetWants=network.target[Service]Type=simple#启动服务的命令(此处写你的frps的实际安装目录)ExecStart=/your/path/frps -c /your/path/frps.ini[Install]WantedBy=multi-user.target

然后就启动frps

sudo systemctl start frps

再打开自启动

sudo systemctl enable frps

如果要重启应用,可以这样,sudo systemctl restart frps如果要停止应用,可以输入,sudo systemctl stop frps如果要查看应用的日志,可以输入,sudo systemctl status frps

⑦放行端口

使用宝塔面板让服务器放行7000,8000的端口

2.4.2客户端配置(树莓派)

①寻找合适的frp版本,树莓派安装32位

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

tar -zxvf frp_0.36.2_linux_amd.tar.gz

③使用cd指令进入解压出来的文件夹

cd frp/frp_0.36.2_linux_amd/

④树莓派作为客户端,可以删掉不必要的客户端文件,使用rm指令删除文件。

rm -f frpsrm -f frps.ini

⑤接下来要修改客户端配置文件,即frp.ini文件。使用vim指令对目标文件进行编辑。

vim frpc.ini

[common]server_addr = love.topserver_port = 7000token = love.top[你自己取个名字]type = tcplocal_ip = 项目的内网ip地址(如local_ip = 127.0.0.1, 比如说要从外网访问宝塔面板,这里就填127.0.0.1,实在不知道填什么就填0.0.0.0)本人是192.168.xx.xxlocal_port = 要转发的端口(如local_port = 80 ,宝塔面板填8888)本人是8000remote_port = 外网访问的端口(端口范围是6000-65535 如果报错start error: port already used就换一个端口 )本人是122.165.xx.xx

⑥保存上面的配置后,使用以下指令启动frp客户端。

./frpc -c ./frpc.ini

2.5 远程视频监控实现

在浏览器输入公网ip+外网端口(请保持上面视频监控的代码运行!!!!)

总结:

客户端自运行的文件还没写,暂时没空了,整个项目先到这吧,有什么问题请给我留言,很久没出过博客了,希望这篇博客能帮助更多的人解决问题,同时希望更多人去爱上物联网这个行业。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。