【问题标题】:how to upnp forward ports via two levels of routers如何通过两级路由器upnp转发端口
【发布时间】:2012-11-22 15:09:45
【问题描述】:

我正在使用 java sbbi 库来转发端口。 但是我的路由器连接到另一个路由器, 所以第一个路由器的外部IP是 由第二个路由器 dhcp 提供的 ip。 有没有办法转发第二个路由器上的端口? 这是我的代码:

InternetGatewayDevice[] devices=InternetGatewayDevice.getDevices( 1000 );
System.out.println("Found "+devices.length+" Devices");
InternetGatewayDevice dev = devices[ 0 ];
System.out.println(dev);
System.out.println( "External IP = " + dev.getExternalIPAddress() );

System.out.println( dev.addPortMapping( "Streamternet", "TCP", null, 1333,
                                        "192.168.0.105", 8888, 0 ) );

System.out.println( "waiting for connection" );
HTTPServer.main(null);

【问题讨论】:

    标签: java networking port nat upnp


    【解决方案1】:

    据我所知,您当前的设置是不可能的,因为您无法直接访问路由器的网关。

    我能想到两种解决方案。

    1. 禁用您的路由器 DHCP 服务器,以便他和您都可以从第二个路由器获取您的 IP,然后您将拥有相同的子网,并且您可以访问每个路由器。
    2. 让另一台 PC 连接到第二个路由器网络,并让他成为一个服务器来监听您的命令,该服务器将为您执行 UPNP 任务。 (这可能需要先手动设置端口转发)

    希望我能帮上忙。

    【讨论】:

    • 这不是一个选项...我正在开发一个软件,我不能告诉我的用户这样做
    • 也许你能帮我解决这个问题? stackoverflow.com/questions/16092747/…
    • 您如何确定您的用户有 2 个路由器一个接一个?
    • 这种特殊情况只发生在高级用户设置中。包括 BitTorrent 在内的所有软件都不具备此功能。如果有可能,这将是一个巨大的安全问题。
    • 我有一个带有内置路由器的电缆调制解调器,还有一个简单的路由器连接到它,我的电脑连接到简单的路由器,但 uTorrent 仍能以某种方式工作......我国家的很多人都有这个一种调制解调器,他们更喜欢自己的路由器
    【解决方案2】:

    正如@Danpe 在他的回答中所说,当您位于多个 NAT 之后时,UPnP 不会让您打开端口。

    由于我也在开发 P2P 软件,根据我收集到的信息,可以尝试连接两个对等点:

    1. 使用 TCP 或 UDP 连接 hole punching
    2. 如果上述方法不起作用,则任一侧的路由器之一使用Symmetric NAT。试试 UPnP 或 NAT-PNP。
    3. 如果上述方法不起作用,则应用程序位于不支持 UPnP、NAT-PNP 的路由器后面……或者您位于多个级别的 NAT 后面。现在您可以:

      1. 与应用程序的用户沟通,她需要在这些路由器上打开端口。正如您在 cmets 中提到的,这是一个不幸的解决方案,因为它假定用户具有高级技术知识。但这似乎确实是一些公司实际所做的。例如,请参阅here

      2. 使用中继服务器,例如使用TURN protocol 的中继服务器,关闭端口的用户将通过该中继服务器进行通信。此中继服务器可能是一个或多个端口打开的对等点(如 uTorrent 的情况),或者它可以是您的服​​务器,或两者的组合:如果有打开端口的对等点,则使用这些对等点,否则使用您自己的服务器(Skype 就是这种情况)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-23
      • 2011-06-14
      • 2013-01-07
      • 2022-08-03
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      • 2013-09-22
      相关资源
      最近更新 更多