Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Networking 尝试NAT穿越技术时路由器的不可访问端口响应_Networking_P2p_Upnp_Nat Traversal - Fatal编程技术网

Networking 尝试NAT穿越技术时路由器的不可访问端口响应

Networking 尝试NAT穿越技术时路由器的不可访问端口响应,networking,p2p,upnp,nat-traversal,Networking,P2p,Upnp,Nat Traversal,上下文:我试图实现一个P2P应用程序,我将使用一些基于编程端口转发方法的NAT遍历技术,以便在internet上提供对等点 问题的第一次接触:应用程序正在使用node js实现。因此,我尝试的第一件事是使用节点包,例如: 不幸的是,每次尝试都会返回一个奇怪的异常:“无法访问的端口5431” 调试已知功能实现,torrent客户端:之后,我开始捕获qBittorrent应用程序发出的数据包,以验证其在端口转发技术上的操作是否成功。qBittorrent利用了libtorrent,并利用了

上下文:我试图实现一个P2P应用程序,我将使用一些基于编程端口转发方法的NAT遍历技术,以便在internet上提供对等点

问题的第一次接触:应用程序正在使用node js实现。因此,我尝试的第一件事是使用节点包,例如:

不幸的是,每次尝试都会返回一个奇怪的异常:“无法访问的端口5431”

调试已知功能实现,torrent客户端:之后,我开始捕获qBittorrent应用程序发出的数据包,以验证其在端口转发技术上的操作是否成功。qBittorrent利用了libtorrent,并利用了PCP(nat pmp的一种演变)和uPnP。然后所有发出的数据包都有相同的返回响应:

奇怪的“端口不可访问”异常

是的,我问过自己,如果没有这些端口转发技术,我的torrent客户端怎么还能工作,但由于我一直在使用这个应用程序进行下载,我可以依靠其他成功使用这些技术的同行

我在这里得到的教训是,我的路由器有一些奇怪的地方是这里的问题,但在这个传奇的开始,我已经在我的路由器中启用了uPnP。值得一提的是,我已经在我的家庭路由器和朋友路由器上重复了这个实验。我也有同样的问题

最后,我的问题是:

  • 这里有什么问题
  • 这是路由器特有的问题
  • 如果这是我们必须接受的,那么像torrents这样的P2P应用程序依赖于在其路由器上手动进行端口转发的对等点

  • 您的屏幕截图仅显示PCP请求。PMP和UPnP IGD是单独的协议,可能会导致不同的响应。您还可以尝试使用
    nmap
    对路由器进行端口扫描,或者尝试使用类似
    miniupnpc
    的upnp cli。在你的bittorrent客户端中,你应该检查你是否真的得到了传入的TCP连接。关于UPnP数据包,它们不太符合M-SEARCH方法。请求程序应用程序设法以多播方式发送数据包,但没有收到响应。因此,在这种情况下,UPnP没有要显示的打印:(关于nmap,我在路由器上做了端口扫描。奇怪的是,除了启用UPnP的路由器外,1900端口没有打开。(或者我解释错了?)。我在这里看到,在我的friends路由器配置中有一些uTorrent虚拟服务器端口映射。我不熟悉uTorrent实现,但这与它的uTP有关吗?虚拟端口映射听起来像UPnP可以做的,否则它不会知道服务的名称。