在相当长的一段时间里,我想写一篇有关通过DVRIP协议与摄像机配合使用的脚本的文章,但是有关
小米的最新新闻的讨论促使我首先谈谈如何在家中布置视频监控,然后继续讨论脚本等等。
我们有2个程序包。。。停下来,这不是故事。
我们有2台TP-LINK路由器,提供方NAT的Internet访问,Partizan监控摄像头我不记得哪种型号(支持TCP或DVRIP上的RTSP的任何IP摄像头都可以使用)和便宜的VPS,价格为4欧元,具有以下特点:2核CPU 2.4GHz,4GB RAM,300GB HDD,100 Mbit / s端口 而且不愿购买其他任何比跳线都贵的东西。
前言
由于明显的原因,我们不能仅仅转发路由器上的摄像头端口并享受生活,此外,即使可以,我们也不应该这样做。
我不由自主地听到,有一些IPv6隧道选项,您似乎可以进行所有操作,以便网络上的所有设备都可以接收一个外部IPv6地址,这将使事情有所简化,尽管仍然使此事件的安全性受到关注,而且标准TP-LINK固件对此奇迹的支持也有些奇怪。 尽管在上一句话中我可能说的是胡说八道,但请不要全神贯注。
但是,幸运的是,几乎任何路由器的任何固件(实际上是一个毫无根据的陈述)都包含一个PPTP / L2TP客户端,或者能够安装存在的自定义固件。 由此,我们已经可以建立某种行为策略。
拓扑结构
发烧时,我的大脑诞生了这种连接方式,
地址169.178.59.82是随机生成的,仅作为示例。好吧,或者如果用言语表达,那么:
- TP-LINK 1路由器(192.168.1.1) ,电缆插入其中,该电缆伸出墙壁。 一个好奇的读者会猜测这是一条提供商电缆,通过它我可以访问Internet。 各种家用设备通过跳线或Wi-Fi连接到此路由器。 这是一个网络192.168.1.0
- 从TP-LINK 1路由器伸出的TP-LINK 2路由器(192.168.0.1,192.168.1.200) ,由于电缆,TP-LINK 2路由器及其连接的设备也可以访问互联网。 在此路由器上,配置了到服务器169.178.59.82的PPTP连接(10.0.5.100)。 IP摄像机192.168.0.200也已连接到此路由器,并且转发了以下端口
- 192.168.0.200:80-> 49151(webmord)
- 192.168.0.200 * 4567-> 49152(DVRIP)
- 192.168.0.200/1054-> 49153(RTSP)
- TP-LINK 2路由器连接到的服务器(169.178.59.82,10.0.5.1) 。服务器上旋转了Pptpd,shadowsocks和3proxy,您可以通过它们访问10.0.5.0网络设备,从而可以访问TP-LINK 2路由器。
因此,192.168.1.0网络上的所有家庭设备都可以通过位于192.168.1.200的TP-LINK 2访问摄像机,所有其他设备都可以通过pptp,shadowsocks或socks5连接并访问10.0.5.100。
客制化
第一步是根据上图连接所有设备。
- 设置TP-LINK 1路由器相当于为TP-LINK 2保留地址192.168.1.200。或者,如果您需要一个固定的地址来从192.168.1.0网络访问,则可以设置它。 并且,如果需要,您可以为其预留10-20 Mbit(10足以容纳一个带头部的1080视频流)。
- 您需要在服务器上安装和配置pptpd。 我有Ubuntu 18.04,操作大致如下(示例为blog.xenot.ru/bystraya-nastrojka-vpn-servera-pptp-na-ubuntu-server-18-04-lts.fuck ):
- 安装必要的软件包:
sudo apt install pptpd iptables-persistent
- 我们带来以下形式
/etc/pptpd.conf option /etc/ppp/pptpd-options bcrelay eth0 # , logwtmp localip 10.0.5.1 remoteip 10.0.5.100-200
- 正确的
/ etc / ppp / pptpd-选项 novj novjccomp nologfd name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 #require-mppe-128 # , TP-LINK c ms-dns 8.8.8.8 ms-dns 1.1.1.1 ms-dns 77.88.8.8 ms-dns 8.8.4.4 ms-dns 1.0.0.1 ms-dns 77.88.8.1 proxyarp nodefaultroute lock nobsdcomp
- 将凭证添加到
/ etc / ppp / chap-secrets # Secrets for authentication using CHAP # client server secret IP addresses username pptpd password *
- 加到
并重新加载sysctl
sudo sysctl -p
- 重新启动pptpd并将其添加到启动
sudo service pptpd restart sudo systemctl enable pptpd
- 正确的
iptables sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables --table nat --append POSTROUTING --out-interface ppp+ -j MASQUERADE sudo iptables -I INPUT -s 10.0.5.0/24 -i ppp+ -j ACCEPT sudo iptables --append FORWARD --in-interface eth0 -j ACCEPT
并保存
sudo netfilter-persistent save sudo netfilter-persistent reload
- 配置TP-LINK 2
- 我们为摄像机保留地址192.168.0.200:
DHCP->地址保留-MAC地址-MAC摄像机,可以在DHCP中查看-> DHCP客户端列表
-保留的IP地址-192.168.0.200
- 我们转发端口:
转发->虚拟服务器-服务端口:49151,内部端口:80,IP地址:192.168.0.200,协议:TCP
-服务端口:49152,内部端口:34567,IP地址:192.168.0.200,协议:TCP
-服务端口:49153,内部端口:554,IP地址:192.168.0.200,协议:TCP
- 配置VPN连接:
网络->广域网-WAN连接类型:PPTP
-用户名:用户名(请参阅/ etc / ppp / chap-secrets)
-密码:密码(请参阅/ etc / ppp / chap-secrets)
-确认密码:密码(请参阅/ etc / ppp / chap-secrets)
-动态IP
-IP地址/服务器名称:169.178.59.82(显然是服务器的外部IP)
-连接方式:自动连接
- (可选)允许远程访问路由器Webmord
安全->远程管理-Web管理端口:80
-遥控器IP地址:255.255.255.255
- 重新启动TP-LINK 2路由器
可以使用L2TP代替PPTP,或者如果您有自定义固件,那么您可以使用心中想要的一切。 我之所以选择PPTP,是因为该方案并不是出于安全原因而构建的,但根据我的经验,pptpd是最快的VPN服务器。 而且,我真的不想安装自定义固件,这意味着我不得不在PPTP和L2TP之间进行选择。如果我没有在指南中的任何地方犯错,并且您做对了所有事情,而且您很幸运,那么经过所有这些操作
结论
原则上,它还不错,可以访问RTSP,如果专有软件通过DVRIP起作用,则可以使用它。 您可以使用ffmpeg保存流,将视频加速2-3-5倍,按小时将其分成几部分,然后将其全部上传到googledisk或社交网络等等。
我不喜欢基于TCP的RTSP,因为它不怎么稳定,但是基于UDP,因为我们不能(或者可以,但我不想这么做)转发RTSP将视频流推送到的端口范围,我无法使用它,我编写了一个脚本,通过DVRIP在TCP上拖动流。 事实证明,它更稳定。
利用该方法的优势-我们可以用支持4G口哨的东西代替TP-LINK 2路由器,并通过UPS的摄像头为它们供电(无疑,其容量比使用记录仪时要少得多),此外,记录几乎可以立即传输到服务器,因此即使入侵者侵入您,他们也将无法删除视频。 总的来说,有回旋余地,这完全取决于您的想象力。
PS:我知道许多制造商都提供现成的云解决方案,但是它们的成本几乎是我的空军价格的两倍(我已经拥有3架,因此我需要在某个地方放置资源),提供更少的控制权并且也没有质量非常令人满意。