V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zzlettle
V2EX  ›  问与答

P2P 软件用什么命令知道 upnp 端口映射失败的?

  •  
  •   zzlettle · 2018-02-05 17:21:55 +08:00 · 2057 次点击
    这是一个创建于 2484 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在的路由器都默认打开了 upnp 功能,实现不同内网里面的 p2p 能够互联互通。我的路由器 upnp 是打开的,所以我用 p2p 软件下载的时候,都很快,当然我主要就是用迅雷,我还以为是这个原因。

    直到最近用了另外一款 p2p 软件,打开后显示我是被动模式,相当于以前电驴的 lowid,也就是说我依然在内网里面,无法主动跟外面也同样在内网的人上传,只能跟那些在公网里面的服务器才能上传。

    我觉得很奇怪,打开路由器设置,发现相应的端口已经在 upnp 里面打开了啊,还是不起作用。这个时候我才想起来,我家是光纤到楼,也就是一栋楼是一个路由器,一个公网地址,分到各家各户的已经是内网了,我家里面的路由器实际是 2 级路由了,在这个路由器上开 upnp,肯本没用。

    问题来了:在本机上面,可以用什么命令知道我的端口实际没有打开的了?因为我在那款 p2p 软件里面点击打开端口按钮,一直显示失败,说明这个按钮,实现了起码两个功能

    1:打开最近一级的路由器的 upnp 对应的端口,映射上去
    2:查看是否实现内网上传到另外一个内网的客户端软件

    应该有函数,命令,让软件知道端口没有映射成功,就算你在家里面的 upnp 打开了,但实际在公网里面还是没用。
    是哪条命令,我主要用 python 开发

    我最近也在学习开发网络 p2p,对洞穿 nat 什么的想多了解点知识。
    知道的大哥大姐,提点下吧!!
    4 条回复    2018-02-05 22:54:35 +08:00
    ysc3839
        1
    ysc3839  
       2018-02-05 19:17:02 +08:00 via Android
    用远程服务器连接一下你的 IP 就知道开没开了。
    zzlettle
        2
    zzlettle  
    OP
       2018-02-05 20:12:07 +08:00
    但是这个就需要有个远程服务器参与其中了。但是很明显,这些 p2p 软件,自己就能单独判断出来当前它自己所处的网络环境。
    alcarl
        3
    alcarl  
       2018-02-05 20:36:15 +08:00 via Android
    纯 p2p 是没有主动去检测是否有外网端口的,一般就是上来都是 lowid,有人连上你的时候就变成 highid 了
    zzlettle
        4
    zzlettle  
    OP
       2018-02-05 22:54:35 +08:00
    @alcarl 等于是先让系统去连接,系统分配随机端口。p2p 监听那个 upnp 端口,如果这个端口有数据连接进来了,就说明是 highid。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1006 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1896ms · UTC 19:01 · PVG 03:01 · LAX 11:01 · JFK 14:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.