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

2018-02-05 17:21:55 +08:00
 zzlettle
现在的路由器都默认打开了 upnp 功能,实现不同内网里面的 p2p 能够互联互通。我的路由器 upnp 是打开的,所以我用 p2p 软件下载的时候,都很快,当然我主要就是用迅雷,我还以为是这个原因。

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

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

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

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

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

我最近也在学习开发网络 p2p,对洞穿 nat 什么的想多了解点知识。
知道的大哥大姐,提点下吧!!
1938 次点击
所在节点    问与答
4 条回复
ysc3839
2018-02-05 19:17:02 +08:00
用远程服务器连接一下你的 IP 就知道开没开了。
zzlettle
2018-02-05 20:12:07 +08:00
但是这个就需要有个远程服务器参与其中了。但是很明显,这些 p2p 软件,自己就能单独判断出来当前它自己所处的网络环境。
alcarl
2018-02-05 20:36:15 +08:00
纯 p2p 是没有主动去检测是否有外网端口的,一般就是上来都是 lowid,有人连上你的时候就变成 highid 了
zzlettle
2018-02-05 22:54:35 +08:00
@alcarl 等于是先让系统去连接,系统分配随机端口。p2p 监听那个 upnp 端口,如果这个端口有数据连接进来了,就说明是 highid。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/428650

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX