简述:通过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"
我们登上云服务器输入如下,进行测试
$ 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
成功看到图像!