我正在尝试让一个(apache)服务器在多层NAT后从Internet访问。
限制条件:
1.避免中继。有一个公共服务器(我们称之为OldMan)用于登录/ stun,但其带宽太差以至于无法承载中继数据。
2.我没有权利手动配置NAT。
3.用户不必更改其浏览器或设备。(也就是说,在Android、iOS和任何PC上运行)
我尝试过UPnP,但它只适用于1层NAT。
我试图搜索几个月的NAT穿透解决方案,但没有成功。
我学习了STUN/TURN/ICE,并尝试使用pjsip(icedemo.exe + numb),然而,它的stun无法穿过2层NAT。
我尝试过Mist、Pwnat,但没有成功。而且据我所知,libjingle听起来像是制作Gtalk扩展的API...(?)
我还尝试过使用VPN/N2N来解决这个问题,但这会对公共服务器造成沉重负担。任何VPN客户端都需要服务器(OldMan服务器)将所有数据包中继到另一个服务器,不是吗?
有没有解决这个问题的方法?一个HTTP服务器在多层NAT后面。
顺便说一下,如果STUN/TURN/ICE起作用,我的想法如下,是否可能?
1.用户安装一个应用程序(例如:stun_browser_agent.exe)
2.用户在Chrome上输入以下地址:127.0.0.1:9999
3.Chrome连接到stun_browser_agent.exe守护进程
4.守护进程使用Stun协议连接到HTTP服务器
5.HTTP服务器上的守护进程(例如:stun_apache_agent.exe)接收所有消息并将其中继到Apache守护进程。
6.Apache回复所有http信息-->stun_apache_agent.exe-->stun_browser_agent.exe-->chrome 然后我们就不必修改浏览器和Apache了。
有没有可以参考实现这个的可用资源?
感谢您的耐心。
限制条件:
1.避免中继。有一个公共服务器(我们称之为OldMan)用于登录/ stun,但其带宽太差以至于无法承载中继数据。
2.我没有权利手动配置NAT。
3.用户不必更改其浏览器或设备。(也就是说,在Android、iOS和任何PC上运行)
我尝试过UPnP,但它只适用于1层NAT。
我试图搜索几个月的NAT穿透解决方案,但没有成功。
我学习了STUN/TURN/ICE,并尝试使用pjsip(icedemo.exe + numb),然而,它的stun无法穿过2层NAT。
我尝试过Mist、Pwnat,但没有成功。而且据我所知,libjingle听起来像是制作Gtalk扩展的API...(?)
我还尝试过使用VPN/N2N来解决这个问题,但这会对公共服务器造成沉重负担。任何VPN客户端都需要服务器(OldMan服务器)将所有数据包中继到另一个服务器,不是吗?
有没有解决这个问题的方法?一个HTTP服务器在多层NAT后面。
顺便说一下,如果STUN/TURN/ICE起作用,我的想法如下,是否可能?
1.用户安装一个应用程序(例如:stun_browser_agent.exe)
2.用户在Chrome上输入以下地址:127.0.0.1:9999
3.Chrome连接到stun_browser_agent.exe守护进程
4.守护进程使用Stun协议连接到HTTP服务器
5.HTTP服务器上的守护进程(例如:stun_apache_agent.exe)接收所有消息并将其中继到Apache守护进程。
6.Apache回复所有http信息-->stun_apache_agent.exe-->stun_browser_agent.exe-->chrome 然后我们就不必修改浏览器和Apache了。
有没有可以参考实现这个的可用资源?
感谢您的耐心。