ssh反向代理树莓派+motion,实现公网远程视频监控
注意:本文公网远程监控部分需要借助有公网IP的云服务器进行ssh反向代理。
一、借助motion实现内网的视频监控
- 准备
- 插上摄像头,然后输入
ls /dev/video*命令检查是否识别了摄像头
- 插上摄像头,然后输入
- 安装motion
- motion是linux开源的,在树莓派上使用
sudo apt-get install motion命令安装,安装很方便。
- motion是linux开源的,在树莓派上使用
- 修改motion配置
- 常用配置及含义
# Start in daemon (background) mode and release terminal (default: off)
# 在后台运行。设置为off将在前台运行
daemon on
# Videodevice to be used for capturing (default /dev/video0)
# for FreeBSD default is /dev/bktr0
# 视频设备,刚才ls /dev/video*看到的
videodevice /dev/video0
# Image width (pixels). Valid range: Camera dependent, default: 352
# 图像宽
width 320
# Image height (pixels). Valid range: Camera dependent, default: 288
# 图像高
height 240
# The setting for keep-alive of network socket, should improve performance on compatible net cameras.
# off: The historical implementation using HTTP/1.0, closing the socket after each http request.
# force: Use HTTP/1.0 requests with keep alive header to reuse the same connection.
# on: Use HTTP/1.1 requests that support keep alive as default.
# Default: off
# 开启KeepAlive功能
netcam_keepalive on
# Output 'normal' pictures when motion is detected (default: on)
# Valid values: on, off, first, best, center
# When set to 'first', only the first picture of an event is saved.
# Picture with most motion of an event is saved when set to 'best'.
# Picture with motion nearest center of picture is saved when set to 'center'.
# Can be used as preview shot for the corresponding movie.
# 禁用自动拍照保存的功能
output_pictures off
# Use ffmpeg to encode movies in realtime (default: off)
# 禁用自动拍摄视频保存的功能
ffmpeg_output_movies off
# The mini-http server listens to this port for requests (default: 0 = disabled)
# 视频监听的端口,默认8081
stream_port 1001
# Quality of the jpeg (in percent) images produced (default: 50)
# 图像质量
stream_quality 50
# Output frames at 1 fps when no motion is detected and increase to the
# rate given by stream_maxrate when motion is detected (default: off)
stream_motion on
# Maximum framerate for stream streams (default: 1)
# 帧数8,需要先把上面的选项改成on
stream_maxrate 8
# Set the authentication method (default: 0)
# 0 = disabled
# 1 = Basic authentication
# 2 = MD5 digest (the safer authentication)
# 改成1,增加授权验证,访问需要输入密码
stream_auth_method 1
# Authentication for the stream. Syntax username:password
# Default: not defined (Disabled)
# 设置用户名username和密码password
stream_authentication username:password
# Restrict stream connections to localhost only (default: on)
# 改成off允许外网访问视频
stream_localhost off
# TCP/IP port for the http server to listen on (default: 0 = disabled)
# WEB控制台监听的端口,默认8080
webcontrol_port 1000
# 改成off允许外网访问web控制台
webcontrol_localhost off
- 必须要修改的有:
daemon on、webcontrol_localhost off。默认配置可能有明显卡顿,这时自行调参数即可。最后效果可以十分流畅。 - 使用
sudo motion命令可以开启motion - 使用
sudo killall -TERM motion可以关闭motion
- 检验
sudo motion后,在浏览器输入ip:你设定的端口号(默认8081)即可查看实时监控。如:192.168.137.30:8081。- 注意:此时只能在内网访问。
二、通过ssh反向代理树莓派实现公网远程视频监控
- 树莓派上
ssh -CqTfnN -R 0.0.0.0:12345:localhost:8081 ubuntu@yourserver(test.server是云服务器的域名或者ip)- 这样就建立了一个本地pi的8081端口到yourserver的12345端口的连接,之后yourserver就可以利用这个端口和pi通信了。
- 服务器上
ssh -fCNL "*:12345:localhost:12346" ubuntu@yourserver- 建立一个12346端口监听别的客户机的请求,当12346端口收到数据时候把数据转给12345端口,然后12345端口与树莓派的8081端口连接,实现了“代理”的效果。当浏览器访问云服务器的12346端口时,相当于访问树莓派的8081端口,从而实现了公网的实时监控。
- 利用这种ssh反向代理的方法也可以实现公网远程控制树莓派。
- 检验
- 树莓派开启motion后,在浏览器输入
服务器ip:服务器设置的监听端口(本例为12346)即可看到motion的视频。 - 注意:由于网速的限制,视频可能有卡顿。此时修改motion配置,降低大小、帧率、画质等可以消除卡顿。
- 树莓派开启motion后,在浏览器输入
ssh反向代理树莓派+motion,实现公网远程视频监控的更多相关文章
- 基于ssh反向代理实现的远程协助
本文描述了怎么通过ssh反向代理实现远程协助,并提供了相关代码. 可满足web开启远程协助功能后,维护人员能够通过ssh和http登录客户机器(包括在nat环境下) web开启该功能后,ssh才能登录 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- ssh反向代理
文章链接:https://www.cnblogs.com/kwongtai/p/6903420.html 前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后 ...
- SSH 反向代理
SSH反向代理 被控制端没有NAT或者没有静态公网IP,把本端一台服务器映射到外网给远端SSH进来,建立SSH反向隧道. 先映射本端机器到外网 nat server 2222to22 protoco ...
- ssh 反向代理和正向代理的文章
搜索原因是,我希望访问家里内网的机器 技术要点: ssh 反向代理,正向代理 隧道 文章摘自: https://my.oschina.net/leejun2005/blog/94401 https:/ ...
- Python远程视频监控
Python远程视频监控程序 老板由于事务繁忙无法经常亲临教研室,于是让我搞个监控系统,让他在办公室就能看到教研室来了多少人.o(>﹏<)o||| 最初我的想法是直接去网上下个软件,可 ...
- 如何利用SimpleNVR建立全天候远程视频监控系统
随着社会经济的发展,5G.AI.云计算.大数据.物联网等新兴技术迭代更新的驱动下,传统的安防监控早已无法满足我们的需求.那么我们如何建立全天候远程视频监控系统来替代传统监控呢?如何进一步优化城市管理. ...
- 记一次 用 ssh 反向代理解决的远程操作效率问题
公司在异地有一个项目,项目在内网有一个linux 集群开发人员通过 xshell 进行操作,但是开发过程中还需要公司开发人员进行远程操作,原来采用的方案是向日葵,需求能实现但是限于网络环境向日葵实在是 ...
- frp ssh反向代理配置使用
本质是一个内网反向代理工具,需要一个vps配合,因为要外网ip. 主页: https://github.com/fatedier/frp 1.服务端(VPS) 可以用下面的一键安装脚本,也可以用主页上 ...
- deepin配置反向代理映射本地到公网
这里我是用的小米球的免费ngrok 相信deepin的新用户在配置反向代理时,会感觉到一脸茫然,因为一开始我也是这样,但经过短暂的了解了deepin后,发现,其实与在Debian上配置并没有什么区别! ...
随机推荐
- 接入B站iframe视频(bilibili引用视频)
感谢 https://blog.csdn.net/xinshou_caizhu/article/details/94028606 我们在查看其它资料的时候,视频总加载失败,后来发现是少了 https: ...
- 6.配置git-码云仓库
使用git需要使用码云或者github,github存在访问慢的情况,所以我使用码云(gitee). git客户端 下载安装 到git官网 https://git-scm.com/ 下载git客户端 ...
- 38.Ribbon
Ribbon默认是懒加载,所以初次请求时间最长,后续请求会变快,可以通过修改为饥饿加载 ribbon.eager-load.enabled=true ribbon.eager-load.clients ...
- 【C学习笔记】day2-2 不允许创建临时变量,交换两个数的内容(附加题)
#include<stdio.h> int main() { int a=0, b=1; int m[2]; m[0] = a; m[1] = b; a = m[1]; b = m[0]; ...
- vue 路由切换页面再次进入更新数据
一:同一项目中路由的跳转 mounted和created都只能执行一次,尝试监听改变的数据也未起效果,项目中使用了<keep-alive>,所以用activated监听初始函数 1.需要跳 ...
- 2022-04-24内部群每日三题-清辉PMP
1.在估算项目成本时,项目经理与一位主题专家(SME)合作,该专家曾有低估交付项目需求所需工作的历时.然而,在所有其他领域,该主题专家是一位很好的贡献者,备受尊重,并且经常有相关方需要他.若要主动减轻 ...
- Docker--在 Jenkins 容器上的搭建持续集成环境和完成自动化测试
本文转自:https://www.cnblogs.com/poloyy/p/13955641.html Jenkins 初始化流程 访问 Jenkins 查看本机 IP ifconfig 查看容器运行 ...
- ant design vue的tooltip的宽度修改不生效
// 注意,vue 项目,style 标签不能加 scoped 选项,否则样式不生效 <a-tooltip placement="top" :overlayClassName ...
- 项目实训 day15-16
第一天我与灿哲沟通,我弄明白了真正的网络结构且如何运行的,自己记了下网络草图,开始初步用PlotNN绘制 第二天我发现pycore库表达能力不够,于是参考其他用tex写的例子,写了几个方法,最终能生成 ...
- idea设置svn忽略文件
第一步: 第二步: 第三步: