有没有一种方法可以访问NAT背后的Web服务器?

3
我正在尝试访问NAT后面的Web服务器。挑战在于:因为可能存在多个Web服务器,所以基于端口的路由器注册在这里不是可行的解决方案。
很抱歉这看起来更像是一个一般性问题,因为我真的不知道在阅读与NAT穿透相关的在线资源后从哪里开始,选择哪种技术:代理、隧道、WebRTC、ICE?
我用libnice进行了一些实验。它将输出一个类似候选列表的字符串,可以将其发送到远程对等端以进行连接。但是,如何将该字符串嵌入Http URL并不明显。
非常感谢您的帮助。谢谢。
1个回答

2
你可以通过将不同的端口映射到每个 Web 服务器,使多个 Web 服务器在 NAT 防火墙后运行。
例如:
yourip:8080 ->port forward-> web server 0 running on 192.168.1.10
yourip:8081 ->port forward-> web server 1 running on 192.168.1.11
yourip:8082 ->port forward-> web server 2 running on 192.168.1.12

感谢您的回答。虽然您的解决方案可能可行,但我担心它可能涉及每个实例的非平凡配置和管理任务。我忘了提到这是一个动态情况:Web服务器可以随时启动和关闭。这是一个奇怪的情况:在我的应用程序中,我们仅设置Web服务器以发送/接收数据。 - user180574
在这种情况下,我不确定我理解你的问题。如果您在LAN上运行多个Web服务器(例如192.168.1.10、192.168.1.11、192.168.1.12等),所有这些服务器都在NAT路由器后面,只有一个公共IP,那么您如何设想外部用户指示他们要访问哪个Web服务器? - mti2935
你是在暗示ICE(包括STUN或TURN)不支持多个程序(每个程序在不同的机器上)同时监听同一端口吗?我想每个程序都会打开一个不同的洞。虽然不确定,但我可以使用libnice进行一些简单的测试。 - user180574
我认为你可能是对的。这涉及到TCP NAT穿越和打洞的主题。 - user180574

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接