配置简单的树莓派远程网络监控
方法:motion+FRP内网穿透
使用材料
- 树莓派3B+(安装的官方buster版本Raspbian系统),可联网
- 已经安装并开启了摄像头,并且可以检测到
- 阿里云ESC服务器,用于内网穿透
安装
sudo apt-get install motion
配置后台运行
sudo nano /etc/default/motion
#修改其中no为yes
start_motion_daemon=yes
修改配置
sudo sudo /etc/motion/motion.conf
基本必修修改的配置:(这里配置较多,建议搜索一下)
#修改为on
daemon off
#修改为off(约416行),不限制于本机
stream_localhost on
#分辨率
height
weight
#按照你的喜好修改端口
stream_port 8081
#修改为off,使得其他机器可以访问
stream_localhost on
关于卡顿和延迟:
#修改2为100
framerate 2
#修改1为200
stream_maxrate 1
启动:
pi@raspberrypi:~ $ sudo service motion start
pi@raspberrypi:~ $ sudo motion
其实可以设置访问密码,但是碰到问题,设置了密码之后外网输入密码仍旧无法访问,暂时未设置。~
测试
树莓派或局域网设备访问 http://树莓派IP:8081,可以直接看到画面。
内网穿透
我使用FRP进行穿透,而motion是运行在8081端口的web服务。
FRP设置步骤:
-
准备工作:
- 使用阿里云的ESC服务器一台,我配置的ubuntu16.04系统,查看自己的架构
- 下载对应架构的frp安装包(云服务器和树莓派),下载地址 https://github.com/fatedier/frp/releases
- 树莓派是32位ARM架构(至少我的是,不放心可以查一下)
-
将对应的包上传并解压缩
-
配置云服务器端
-
修改其中frps.ini文件:
[common] bind_port = 7000 #frp绑定端口 vhost_http_port = 8081 #外网访问的web服务端口
-
注意如果是阿里云要在安全组对应开放端口
-
在服务器端运行:
./frpc -c ./frpc.ini #后台运行则如下输入 nohup ./frps -c ./frps.ini >frps.log &
-
服务器端启动成功显示:
2020/03/09 21:45:29 [I] [service.go:152] frps tcp listen on 0.0.0.0:7000 2020/03/09 21:45:29 [I] [service.go:194] http service listen on 0.0.0.0:8080 2020/03/09 21:45:29 [I] [root.go:205] start frps success
-
阿里云ESC设置安全组开放端口
注意所有在这里用到的端口都要开放,7000,8081,如果开启ssh则6000也要开放
-
-
配置树莓派
-
修改树莓派端frpc.ini文件:
[common] server_addr = 0.0.0.0 #云服务器公网IP server_port = 7000 #云服务器上FRPC端口 [web] type = http local_port = 8081 #内网设备本地(树莓派)web端口 custom_domains = 0.0.0.0 #你的域名,暂时没有域名可写公网IP #你可以顺便开启远程ssh功能,不需要就不用写了 [ssh] type = tcp local_ip = 192.168.0.105 #树莓派的内网IP local_port = 22 #ssh本地端口 remote_port = 6000 #远程ssh树莓派用的端口
-
-
树莓派运行:
./frpc -c ./frpc.ini #后台运行则如下输入 nohup ./frpc -c ./frpc.ini >frpc.log &
-
然后访问 http://服务器IP:服务器开放端口,就可以看到画面,有延迟。