【问题标题】:Is there a way to access a websever behind NAT?有没有办法访问 NAT 后面的 Web 服务器?
【发布时间】:2015-02-14 00:41:58
【问题描述】:

我正在尝试访问 NAT 后面的 Web 服务器。挑战在于:因为可能有多个 Web 服务器并存,基于端口的路由器注册在这里不是一个可行的解决方案。

抱歉,这看起来更像是一般性问题,因为在阅读了与 NAT 遍历相关的在线资源后,我真的不知道从哪里开始,选择哪种技术:代理、隧道、WebRTC、ICE?

我对 libnice 做了一些实验。它将输出一个看起来像候选列表的字符串,可以将其发送到远程对等点以使其连接。但是如何将字符串嵌入到 Http URL 中看起来并不明显。

我们非常感谢您的帮助。谢谢。

【问题讨论】:

    标签: webrtc nat stun turn


    【解决方案1】:

    您可以在 NAT 防火墙后面运行多个 Web 服务器,方法是将不同的端口转发到每个 Web 服务器。

    例如:

    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 服务器只是为了发送/接收数据。
    • 在这种情况下,我不确定我是否理解您的问题。如果您的 LAN 上运行了多个 Web 服务器(例如在 192.168.1.10、192.168.1.11、192.168.1.12 等),都在只有一个公共 IP 的 NAT 路由器后面,那么您如何设想 LAN 之外的用户指明他们想要访问哪些 Web 服务器?
    • 你是否暗示 ICE(包括 STUN 或 TURN)不支持多个程序(每个程序在不同的机器上)在同一个端口上监听?我想每个程序都会打一个不同的洞。不太确定,但我可以使用 libnice 进行一些简单的测试。
    • 我认为你可能是对的。这涉及 TCP NAT 穿越和打孔的主题。
    猜你喜欢
    • 1970-01-01
    • 2014-02-05
    • 2017-09-24
    • 2013-08-31
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    相关资源
    最近更新 更多