在另一个NAT(多端口转发)后面的路由器上的端口转发

时间:2017-10-28 22:46:13

标签: python sockets p2p portforwarding nat

我有一个 p2p 应用,我想知道是否可以在另一台路由器后面的路由器上转发端口。目前我可以使用 python 脚本在直接路由器上转发端口,但当2个用户在另一个 Nat 后面的Nat后面时,我不知道我是怎么做的可以做到这一点。这是情况的架构

                               user1
                                 ||
                                 ||
                            first router
                                 ||
                                 ||
                            second router
                                 ||
                                 ||
                                 ||
                              Internet
                                 ||
                                 ||
                            second router
                                 ||
                                 ||
                            first router
                                 ||
                                 ||
                                 ||
                                user2

注意:用户可以拥有2个或更多路由器,2只是一个案例,但我认为如果我可以做2,我可以做更多。

非常感谢每一位帮助

转发单个路由器上的端口

  • 我可以使用miniupnpc,它适用于python 2.x(在Linux上)

下面是代码

 import miniupnpc

 def forward_port(port, description=''):
    upnp = miniupnpc.UPnP()
    upnp.discoverdelay = 10
    upnp.discover()
    upnp.selectigd()
    port = port
    # addportmapping(external-port, protocol, internal-host, internal-port, description, remote-host)
    upnp.addportmapping(port, 'UDP', upnp.lanaddr, port, description, '')
  • 否则我使用这个very long script,它适用于python 2.x但是在每个os

0 个答案:

没有答案