首页 文章

NAT后面的HTTP服务器

提问于
浏览
7

我正在尝试在多层NAT后面 Build 一个(apache)服务器,以便从Internet访问 .

限制:

  • 避免继电器 . 有一个公共服务器(我们称之为OldMan)用于登录/ stun,但其带宽太差,无法传输中继数据 .

  • 我无权手动配置NAT . 3.用户不必更改他们的浏览器或设备 . (即,适用于android,ios和任何PC)

我试过 UPnP ,但它只适用于 1-layered NAT .

我试图在几个月内搜索 NAT 遍历解决方案,但是徒劳无功 .

我研究 STUN/TURN/ICE ,并尝试了pjsip(icedemo.exe麻木),然而,它的晕眩不能穿过2层NAT .

我试过Mist,Pwnat,但没有运气 . 而libjingle听起来像是一个用于制作Gtalk扩展的API,我知道......(?)

我也尝试过make 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 Server上的守护程序(例如:stun_apache_agent.exe)接收所有消息并将其转发给Apache守护程序 .

  • Apache回复所有的http信息 - > stun_apache_agent.exe - > stun_browser_agent.exe - > chrome

然后我们将不必修改浏览器和Apache .

我可以参考的任何可用资源实现这个?

感谢您的耐心等待

2 回答

  • 0

    您是否可以控制此服务器与“外部世界”之间的所有NAT设备?

    一种方法是在Internet网关路由器和服务器之间设置SSH隧道 .

    SSH隧道将从您的服务器启动并连接到Internet网关路由器上运行的sshd . 使用SSH的端口转发功能将Internet网关上的端口80转发回服务器上运行的Apache端口 .

    另一种方法是在公共互联网上可访问的任何其他服务器上设置sshd(或任何其他隧道产品) . 初始化从服务器连接到它并使用该连接将流量从该公共服务器上的端口80转发到您的服务器 .

    方法基本相同:您需要从服务器启动隧道设置,并使用该连接将来自公共服务器的流量转发回您的 .

  • -1

    配置每个NAT设备,从具有Internet连接的NAT设备开始,将端口转发到下一个NAT设备,最内层NAT转发到服务器 .

    Update :“2 . 我无权手动配置NAT . ”我不需要't understand how you can have the right to run a server behind these NAT devices but not have the right to configure port forwarding in them. Surely the right to run a server includes the right to do what'来运行服务器 .

相关问题