从公网访问openwrt上用mjpeg-streamer搭建的视频监控

简述:通过ssh反向隧道将mjpeg-streamer的视频端口代理到公网VPS(例腾讯学生云服务器)上,从而通过访问云服务器间接访问NAT下的openwrt。

参考:

Openwrt路由器挂载摄像头教程

如何通过SSH反向隧道,访问NAT后面Linux服务器?

ssh反向隧道实验——没有端口映射的前提下,让外网访问内网服务器



一、建立SSH反向隧道,让公网可以访问openwrt的8080端口
1、在openwrt上输入
root@OpenWrt:/www/webcam# ssh -fN -R 18080:localhost:8080 VPS服务器SSH用户名@VPS服务器IP


 这样就相当于将VPS的18080端口与内网openwrt的8080端口捆绑在了一起。 
   
2、启动openwrt上已经挂载好的摄像头
root@OpenWrt:/www/webcam# mjpg_streamer -i "input_uvc.so -f 15 -r 640*480 -d /dev/video0" -o "output_http.so -p 8080"

3、测试能否在VPS上获取到视频流
我们登上云服务器输入如下,进行测试
$ curl 127.0.0.1:18080/?action=stream
如果不断输出乱码,说明成功获得了视频流,那接下来的工作就是通过网页去访问了

二、修改 apache的mod_proxy模块,将18080端口代理出去(我是centos 6.5的云服务器)
1、配置文件 /etc/httpd/conf/httpd.conf
拖到文件尾,修改如下:
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    ProxyRequests Off
                                                                                             
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>                                                                                 
    ProxyPass /proxy    http://127.0.0.1:18080
    ProxyPassReverse /proxy    http://127.0.0.1:18080
</VirtualHost>
2、重启http服务,从网页访问
# service httpd restart
最后通过浏览器访问    http://云服务器IP/proxy/?action=stream
成功看到图像!


你可能感兴趣的:(openwrt,公网,视频监控,ssh反向隧道,mjpeg-streamer)