如何用STUN协议搭建跨网络监控环境

    之前提到过局域网视频监控环境的搭建,那么如何将局域网环境扩大到公网环境呢?STUN协议是一个很好地解决方案。

    想要将局域网的视频服务器作为公网服务器,那么你必须将局域网的流媒体服务器映射到公网环境下。但是大部分情况下,你的局域网路由器是不允许进,只允许出的,也就是说,如果不打穿这个“墙”,你就没有办法将局域网流媒体服务器作为公网的流媒体服务器。STUN协议的作用正好就是将这个通道打通。

    STUN实现原理:首先,公网的STUN Server必须具有双网卡,用于数据交换。流媒体服务器显示作为客户端,通过局域网ip向公网STUN Server发送STUN包,STUN Server接收到来自于局域网的流媒体服务器发送的包之后,就会给对发送过来的端口发送一个反馈,若流媒体服务器能收到这个反馈,则表示双向的通信已经建立成功,可以讲局域网的流媒体服务器用于公网访问了。

如何用STUN协议搭建跨网络监控环境_第1张图片如何用STUN协议搭建跨网络监控环境_第2张图片

    从监控软件显示的效果反馈来看,画质勉强可以。需要注意,测试端的ip地址是192.168.1.13,而流媒体服务器的ip地址却是17.1.2.2。至于为什么流媒体数据是在53和13之间传输的,那就是STUN协议的作用了。当STUN将隧道打通以后,实际上,局域网流媒体服务器所在网段的路由器成了一个对外的Server,访问路由器的某一个STUN打穿的端口的时候,路由器就会直接将了来自流媒体服务器的对应端口数据发送出去。

    测试软件来源于:https://code.google.com/p/teaonly-projects/(非开源,测试版本),抓包工具为wireshark。如果用手机的TCPDUMP工具对手机进行抓包分析的话,更方便于理解(UDP和STUN数据包在17.1.2.2和192.168.1.53之间传送。


你可能感兴趣的:(如何用STUN协议搭建跨网络监控环境)