我正在尝试在多层 NAT 后面创建一个(apache)服务器,以便可以从 Internet 访问。
限制:
- 避免中继。有一个公共服务器(我们称他为OldMan)用于登录/眩晕,但其带宽太差,无法承载中继数据。
- 我无权手动配置 NAT。
3.用户无需更改浏览器或设备。(即适用于android、ios和任何PC)
I tried UPnP
,但它只适用于1层NAT.
我尝试搜索NAT
历经几个月的解决方案,却无果而终。
I study STUN/TURN/ICE
,并尝试了pjsip(icedemo.exe + numb),但是,它的stun无法穿透2层NAT。
我尝试过 Mist、Pwnat,但没有成功。
据我所知,libjingle 听起来像是一个用于制作 Gtalk 扩展的 API...(?)
我也尝试过使用 VPN/N2N 来解决这个问题,但这会给公共服务器带来沉重的负担。任何 VPN 客户端都需要服务器(OldMan 服务器)将所有数据包中继到另一个,不是吗?
有什么办法可以解决这个问题吗?多层 NAT 后面的 HTTP 服务器。
顺便说一句,如果 STUN/TURN/ICE 有效,我的想法如下,可能吗?
- 用户安装了应用程序(例如:stun_browser_agent.exe)
- 用户在 Chrome 上输入以下地址:127.0.0.1:9999
- Chrome 连接到 stun_browser_agent.exe 守护进程
- 守护进程使用 Stun 协议连接到 HTTP Server
- Http 服务器上的守护进程(例如:stun_apache_agent.exe)接收所有消息并将其转发给 Apache 守护进程。
- Apache回复所有http信息 -->stun_apache_agent.exe-->stun_browser_agent.exe-->chrome
这样我们就不用修改浏览器和Apache了。
我可以参考任何可用资源来实现此目的吗?
感谢您的耐心等待
您是否可以控制该服务器与“外部世界”之间的所有 NAT 设备?
一种方法是在互联网网关路由器和服务器之间设置 SSH 隧道。
SSH 隧道将从您的服务器启动并连接到在互联网网关路由器上运行的 sshd。使用 SSH 的端口转发功能将 Internet 网关上的端口 80 转发回服务器上运行 Apache 的任何端口。
另一种方法是在公共互联网上可访问的任何其他服务器上设置 sshd(或任何其他隧道产品)。从您的服务器初始化与它的连接,并使用该连接将流量从该公共服务器上的端口 80 转发到您的服务器。
方法基本相同:您需要从您的服务器启动隧道设置,并使用该连接将流量从公共服务器转发回您的服务器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)