项目解决方案:跨不同的物理网络实现视频监控多画面的实时视频的顺畅访问

目录

 一、碰到的需求问题

二、需求分析

三、方案分析

(一)方法1:使用HTTP代理

1. 安装HTTP代理服务器

2. 配置Nginx代理

3. 重启Nginx

4. 访问视频流

(二)方法2:使用反向代理

1. 安装反向代理服务器

2. 配置HAProxy

3. 重启HAProxy

4. 访问视频流

(三)方法3:使用iptables进行端口转发

1. 配置iptables

2. 保存iptables规则

3. 访问视频流

(四)方法4:使用SSH隧道

1. 配置SSH隧道

2. 访问视频流

四、最优解决方案

五、实际效果


 一、碰到的需求问题

     客户的网络视频监控摄像机(IPC)都部署在一个网段;办公网络是另外一个网段;还有一个网段是开放给其他合作单位的。由于视频监控网络的视频占用带宽比较大,而办公网络的数据数量有比较多,因此为了互不影响,视频监控网络和办公网络物理隔离,不能直通。

       同时,合作单位可以访问的网络跟其他网络也要完全进行物理隔离,相互之间不同通信。

        这样安全问题没有了,但是视频监控作为需要能够让办公网络的用户,以及合作单位的用户能够根据适当的权限来查看,如何解决这个问题 ?不能让视频网络成为一个数据孤岛或者视频孤岛。

二、需求分析

  根据现场情况,视频监控的网络拓扑图表示如下:

我们可以对需求进行如下分解:

  1. 网络A、网络B和网络C是隔离的,相互之间不能直接访问;
  2. 成本不能太高,一个网闸的话动辄上万,还需要其他设备和软件支撑;
  3. 交换机设置vlan的话,还是会导致网络A的其他人,可能访问网络B、或者网络C;这种情况也不允许;
  4. 网络A的用户,需要有一定的特权,才能看视频。

三、方案分析

        要实现让网络B和网络C内的用户访问网络A上的监控视频数据,可以通过以下几种方法来配置一个网络服务器,网络服务器带3个网络接口。这个网络服务器使其充当代理或中继的角色。如下为初步拟定的几个方法。

(一)方法1:使用HTTP代理

1. 安装HTTP代理服务器

   你可以使用Nginx或Apache作为HTTP代理服务器。

   安装Nginx:

   sudo yum install nginx   CentOS/RHEL

   sudo apt-get install nginx   Debian/Ubuntu

  

2. 配置Nginx代理

   编辑Nginx配置文件,将监控视频的URL代理到网络A上的监控服务器。

   sudo nano /etc/nginx/nginx.conf

 

   添加或修改配置:

   nginxhttp {server {listen 80;server_name NET-A-IP;location /video {proxy_pass http://network_a_ip:port/video;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}}

   其中:

   - NET-A-IP 是网络主机的IP地址。

   - network_a_ip 是网络A上的监控服务器的IP地址。

   - port 是监控服务器提供的视频流端口。

3. 重启Nginx

  使用如下命令:

   sudo systemctl restart nginx

  

4. 访问视频流

   网络B和网络C内的用户可以通过访问网络主机的URL来查看监控视频。例如:

   http://NET-A-IP/video

  

(二)方法2:使用反向代理

1. 安装反向代理服务器

   你可以使用HAProxy或Nginx作为反向代理服务器。

   安装HAProxy:

   sudo yum install haproxy   CentOS/RHEL

   sudo apt-get install haproxy   Debian/Ubuntu

  

2. 配置HAProxy

   编辑HAProxy配置文件,将监控视频的请求代理到网络A上的监控服务器。

   sudo nano /etc/haproxy/haproxy.cfg

  

   添加或修改配置:

  haproxyfrontend http_frontbind :80default_backend video_backendbackend video_backendserver video_server network_a_ip:port

   其中:

   - network_a_ip 是网络A上的监控服务器的IP地址。

   - port 是监控服务器提供的视频流端口。

3. 重启HAProxy

   sudo systemctl restart haproxy

4. 访问视频流

   网络B和网络C内的用户可以通过访问网络主机的URL来查看监控视频。例如:

   http://NET-A-IP

(三)方法3:使用iptables进行端口转发

1. 配置iptables

   使用iptables将网络B和网络C的请求转发到网络A上的监控服务器。

 sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination network_a_ip:port

   sudo iptables -t nat -A POSTROUTING -j MASQUERADE

   其中:

   - 8080 是网络主机上监听的端口。

   - network_a_ip 是网络A上的监控服务器的IP地址。

   - port 是监控服务器提供的视频流端口。

2. 保存iptables规则

        使用如下命令:

   sudo service iptables save

3. 访问视频流

   网络B和网络C内的用户可以通过访问网络主机的URL来查看监控视频。例如:

   http://NET-A-IP:8080

  

(四)方法4:使用SSH隧道

1. 配置SSH隧道

   使用SSH隧道将网络B和网络C的请求转发到网络A上的监控服务器。

   ssh -L 8080:network_a_ip:port user@NET-A-IP

   其中:

   - 8080 是本地监听的端口。

   - network_a_ip 是网络A上的监控服务器的IP地址。

   - port 是监控服务器提供的视频流端口。

   - user 是网络主机上的用户名。

   - NET-A-IP 是网络主机的IP地址。

2. 访问视频流

   网络B和网络C内的用户可以通过访问本地的URL来查看监控视频。例如:

   http://localhost:8080

  

四、最优解决方案

以上方法都可以实现,但是需要进行复杂的配置,同时还需要专业的技术人员进行维护。

我们采用如下方案,使用一个带多网口的视频监控接入网关,可以轻松实现对摄像机视频的访问,如下图:

  1. 网络A、网络B和网络C完全隔离,除了一个网关设备外,没有增加任何设备。接入网关可以连通两个网络,只传输客户端需要的视频数据;
  2. 这个网关成本比较低(产品可以参考vidisit.cn);
  3. 无需添加以太网交换机等网络设备,不涉及到交换机进行vlan设置;
  4. 网关上给特权用于特定的权限,能够访问特定的视频。这样网络A的这些特定客户需要看视频的时候,视频网关把摄像机的视频传给特定客户的电脑,查看实时视频和录像视频(视频回放)。

此方案能够完全满足客户的需求。

五、实际效果

通过浏览器,直接访问多网口网关的IP地址,可以看到如下效果的视频:

通过访问 http://172.16.0.20:26088 ;http://10.16.2.30:26088; 都可以实时的看到上述画面,画面实时流畅,没有任何停顿。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/463940.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MQTT自动发送消息工具(自动化测试MQTT)

点击下载《MQTT客户端服务端工具》 点击下载《MQTT自动发送消息软件(自动化测试MQTT)》 1. 前言 在软件开发过程中,MQTT常被用作消息队列来完成特定的业务功能。当我们将相关业务代码编写完成后,通常需要编写额外的消息生产和消费代码来模拟消息高峰时…

东北虎豹国家公园shp格式范围

东北虎豹国家公园地处中国吉林、黑龙江两省交界的老爷岭南部(珲春—汪清—东宁—绥阳)区域,东起吉林省珲春林业局青龙台林场,与俄罗斯滨海边疆区接壤,西至吉林省大兴沟林业局岭东林场,南自吉林省珲春林业局…

练习LabVIEW第三十七题

学习目标: 刚学了LabVIEW,在网上找了些题,练习一下LabVIEW,有不对不好不足的地方欢迎指正! 第三十七题: 利用XY GRAPH 构成李萨如图形 开始编写: 前面板放一个XY图控件,程序框图…

Pandas 数据可视化指南:从散点图到面积图的全面展示

Pandas 数据可视化指南:从散点图到面积图的全面展示 本文介绍了使用 Pandas 进行数据可视化的多种方法,包括散点图、折线图、条形图、直方图、饼图和面积图等,涵盖了常见的图表类型及其实现方式。通过提供详细的代码示例,展示了如…

Solana链上的Pump狙击机器人与跟单机器人的工作原理及盈利模式

随着加密货币市场的快速发展,越来越多的投资者和开发者开始关注Solana链上的自动化交易工具。尤其是Pump狙击机器人和跟单机器人,这两种工具为用户提供了在市场波动中获取利润的机会。本文将深入分析这两种机器人的工作原理及其盈利模式。 一、Pump狙击机…

嵌入式操作系统FreeRTOS

系列文章目录 嵌入式操作系统FreeRTOS 嵌入式操作系统FreeRTOS 系列文章目录一、FreeRTOS 一、FreeRTOS 首先看一下 FreeRTOS 的名字,可以分为两部分:“Free”和“RTOS”,“Free”就是免费的、自由的、不受约束的意思,“RTOS”全…

客如云:大型业务报表的分区化改造提升性能|OceanBase 应用实践

一 概述 1 背景 在过去两到三年的时间里,客如云的KPOS产品在商户数量和订单量均实现了数倍的增长,充分展示了产品的市场吸引力和业务模式的成功。然而,随着更多的大型连锁商户的加入,客如云商家平台迎来了前所未有的挑战。特别是…

Vue2指令原理手写

文件结构 index.js /** Author: RealRoad* Date: 2024-10-31 17:13:50* LastEditors: Do not edit* LastEditTime: 2024-10-31 17:15:57* Description: * FilePath: \project_10_08\vite-project\src\testVue\index.js*/ import Vue from ./Vue.js window.VueVue Vue.js imp…

手游和应用出海资讯:可灵AI独立APP即将上架;Rollic在英国推出芭比合并解谜手游

NetMarvel帮助游戏和应用广告主洞察全球市场、获取行业信息,以下为10月第四周资讯: ● 苹果开发全新游戏中心应用 ● Meta计划开发人工智能搜索引擎 ● 微软已拥有20个游戏IP,收入达10亿美元 ● OpenAI计划在12月推出其下一代前沿模型Orion ●…

笔记-利率学习记录

利率、通货膨胀与经济运行 利率政策的经济效应 假设所有利率一样,把利率降到 0 会带来一系列影响: 降低储蓄意愿:随着利率接近于 0,人们存钱的收益减少,倾向于消费和投资。增加企业盈利:融资成本降低&…

九,数据类型存储

1、简单类型与复杂类型 简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型 值类型:简单数据类型/基本数据类型,在存储时变量中存储的时值本身,因此叫做值类型 string、number、boolean、undefined、null 注意&…

电通旗下VeryStar连摘Campaign 亚太科技MVP及鼎革奖两项大奖

近日,电通CXM(客户体验管理)旗下费芮互动VeryStar开发的OmniRetail零售数字化平台及其中的OmniCRM分别摘得重磅奖项。OmniCRM在Campaign亚太2024年度亚太地区Tech MVP中当选“最有价值科技产品”,OmniRetail荣获“2024「鼎革奖」数…

[ 应急响应靶场实战 ] VMware 搭建win server 2012应急响应靶机 攻击者获取服务器权限上传恶意病毒 防守方人员应急响应并溯源

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

「Mac畅玩鸿蒙与硬件17」鸿蒙UI组件篇7 - Animation 组件基础

在应用开发中,动画效果可以增强用户体验。鸿蒙框架提供了 translate、scale 和 rotate 等动画功能,允许对组件进行平移、缩放和旋转等操作。本篇将介绍 Animation 组件的基础知识和示例代码。 关键词 Animation 组件动画效果位置动画自动动画缩放动画 一…

2024年一带一路金砖技能大赛之大数据容器云开发

10.31备赛准备 C模块,大数据应用开发 1.前端Vue----请求服务端api接口json数据-----展示/图表 2.Node.js实现后端开发,为前端vue提供接口数据 3.部署在docker中 官方技能需求 创建vue框架项目 1、安装node.js(https://nodejs.org/zh-cn/d…

C++ 内存对齐:alignas 与 alignof

一、什么是内存对齐? 内存对齐是指数据在内存中按照特定的字节边界存储。一般情况下,处理器从内存读取数据时会更高效地读取对齐的数据。如果数据未对齐,处理器可能需要进行额外的内存访问,导致性能下降。对于某些平台&#xff0…

嵌入式linux系统中串口驱动框架分析

大家好,今天主要给大家分享一下,如何使用linux系统中的串口实现。 第一:串口基本简介 串口是很常见的一个外设,在Linux下通常通过串口和其他设备或传感器进行通信。根据电平的不同,串口可以分为TTL和RS232。不管是什么样的电平接口,驱动程序是一样的。 第二:Linux下UAR…

MongoDB 8.0.3版本安装教程

MongoDB 8.0.3版本安装教程 一、下载安装 1.进入官网 2.选择社区版 3.点击下载 4.下载完成后点击安装 5.同意协议,下一步 6.选择第二个Custon,自定义安装 7.选择安装路径 !记住安装路径 8.默认,下一步 9.取…

【力扣专题栏】面试题 01.02. 判定是否互为字符重排,如何利用数组模拟哈希表解决两字符串互排问题?

题解目录 1、题目描述解释2、算法原理解析3、代码编写(1)、两个数组分别模拟哈希表解决(2)、利用一个数组模拟哈希表解决问题 1、题目描述解释 2、算法原理解析 3、代码编写 (1)、两个数组分别模拟哈希表解决 class Solution { public:bool CheckPermutation(string s1, stri…

测长机在测量长度尺寸方面有哪些优势?如何保证测量的准确性?

测长机在测量长度尺寸方面具有以下优势: 一、高精度 1.分辨力高: 测长机通常具有很高的分辨力,能够精确测量到非常小的长度变化。例如,一些高精度测长机的分辨力可以达到微米甚至纳米级别,能够满足对精密工件和高精度…