原文链接http://www.cnblogs.com/mgen/archive/2013/02/03/2890987.html,并修改了部分内容,仅供学习和交流使用。
最近有个搭建视频网站的需求,现在比较难以解决的问题除了技术之外,还有更重要的是必须节省成本。毕竟是视频网站,所以就需要很大的带宽,而我却没有资本去购买大带宽服务器。
于是我就找到了这个解决办法:
我们都知道:如果服务器和客户端都在内网环境下,即双方都通过NAT来接触外网,那么此时客户端是无法直接和服务器交流的。
解决方案可以是:
1:把服务器部署在不存在NAT的公网环境下。(没钱买服务器啊啊啊…)
2:使用常见的NAT穿透方法比如UDP打洞,或者STUN协议,但是这些方法都需要另一个已知的部署在公网环境下的服务器。(原因同上)
3:就是这篇文章主要讨论的方案,即不需要部署任何公网环境下的服务器,通过路由器支持的UPnP协议来把内网的接口绑定到公网接口上。
这个方法的好处是,我可以构建一个由用户组成的PCDN网络来为我的服务器加速,从而减小服务器的带宽成本。