首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LibTorrent Nat穿越

LibTorrent Nat穿越
EN

Stack Overflow用户
提问于 2021-02-26 06:01:26
回答 1查看 79关注 0票数 0

我正在尝试通过LibTorrent中的add_peer()函数连接到peer。但是,如果我想要从其下载文件的对等体位于NAT之后,该怎么办?Libtorrent中有NAT穿越功能吗?

EN

回答 1

Stack Overflow用户

发布于 2021-03-04 22:25:21

libtorrent中的NAT穿越仅限于:

  1. 显式端口使用UPnP、NAT-PMP和PCP进行转发。
  2. 隐式(机会主义)尝试通过其外部端口
  3. 到达对等设备接收连接尝试的对等设备不在NAT之后,但发起连接的对等设备在NAT之后。这就是NAT应该支持的情况。

听起来您最感兴趣的是(2),我们假设两个对等体都在NAT之后。这通常指的是UDP打孔。

一般来说,如果你不能控制或对你试图连接的同龄人有任何影响,你可以采取的措施是有限的。

此外,如果这两个NAT都不是全锥体(或者说P2P友好),则对等体可能无法连接。P2P友好的NAT通常接受来自以前没有任何交互的IP的传入连接。

libtorrent (和bittorrent客户端通常)使用的主要两种方法是:

  1. 共同连接的对等体可以经由对等体交换扩展相互介绍两个NATed对等体。在这种模式下,两个对等体都会尝试同时相互连接,希望两个NAT都会为正在尝试的端口打开针孔。只有当群中至少有一个对等点不在NAT之后时,这才起作用。您可以在BEP 55

中找到有关这方面的更多信息

  1. 为uTP、分布式哈希表和UDP跟踪器共享UDP端口,并通过跟踪器和分布式哈希表通告的源端口隐含侦听端口。幸运的是,其他主机也可以使用该源端口访问NATes客户端。这之所以有效,是因为uTP连接也通过UDP运行。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66377090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档