10

PT、BT 下载如何利用 P2P 打洞获得上传速度。

 1 year ago
source link: https://www.v2ex.com/t/902093
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

V2EX  ›  宽带症候群

PT、BT 下载如何利用 P2P 打洞获得上传速度。

  mmr · 9 小时 9 分钟前 · 1668 次点击
已经实现的:
  1. 宽带改桥接。
  2. 拨号路由器 DMZ 主机设为下载服务器。
现阶段情况:
  1. 大部分时间没有上传。
  2. 对一部分国内 ip 有上传(可能是对面把我的端口蒙对了,或者 NAT 出去的就是原端口)。
想实现的:
  1. 希望实现用一个公网服务器自动的进行 P2P 打洞。
  2. 可不可以提供一些清晰的关于 NAT 和 P2P 打洞的资料。
23 条回复    2022-12-13 17:34:34 +08:00
villivateur

villivateur      9 小时 3 分钟前

DMZ 没必要,把 BT 通讯端口转发开放一下就行。
没有上传可能是因为你的网络环境不行,没有 IPv6 的话,上传会少非常多。
别折腾 NAT 打洞了,IPv6 更重要。
mmr

mmr      9 小时 0 分钟前

我现在测试阶段,后期为了内网安全肯定会上防火墙的。
我有 IPV6 ,测试已过。

@villivateur
redbeanzzZ

redbeanzzZ      8 小时 29 分钟前

我以前用移动网,该有速度的还是有速度。
现在用的联通,有公网 IP ,该没速度的还是没速度。
现在已经佛系挂机了。
挑热门大包做种吧,有时候感觉是真抢不过别人,据说用 qbitorrent 抢上传会好点
mmr

mmr      8 小时 22 分钟前

我用的 Transmission
@redbeanzzZ
ScepterZ

ScepterZ      8 小时 11 分钟前

我没有进行任何操作,该上传的时候自然就上传了,大部分时候没上传就是真的没人下载,到 pt 网站看看有没有人下载就知道了
RheatiN

RheatiN      7 小时 40 分钟前

别人都是盒子刷流,怎么可能抢得过他们- -
@redbeanzzZ
hahasong

hahasong      7 小时 32 分钟前

开 UPNP 就行了,桥不桥接区别不大
leaves615

leaves615      7 小时 20 分钟前

想刷上传,关注哪些热门的种子,多下几个。总有一个会上传, 玩 PT ,24 小时在线的设备要好一些。
ysc3839

ysc3839      7 小时 2 分钟前

BT 在 fullcone NAT 下本来就有打洞的效果,客户端会定时向别的 Peer 发送数据,就能刷新 NAT 回收端口的超时。印象中客户端也会获取公网 IP 和端口再上报给 Tracker 。
理论上 BT 在两端都是 port-restricted cone NAT 的情况下也能工作,但需要两端都定期向所有 Peer 发包,这样的话双方就会打通。
neptuno

neptuno      6 小时 21 分钟前

刷成人包、抢热点种子
cwbsw

cwbsw      6 小时 2 分钟前

@ysc3839
没用的。你只能向 tracker 报告你内网端口,和 CGNAT 后的公网端口必然不一样。
要打洞,需要至少一方是 FullCone ,还需要有专用的服务器协助,现在的 BT 协议并不支持。
cwbsw

cwbsw      6 小时前

说下我的方案。

通过一台双栈服务器用 socat 把 v4 端口转发到本地 BT 客户端的 v6 端口,本地 BT 客户端走代理与 tracker 通信。
ysc3839

ysc3839      5 小时 53 分钟前

@cwbsw 报告内网还是公网是看客户端实现的,个人印象中 qBittorrent 是可以报告公网的。客户端能获取公网 IP ,获取 IP 的这个服务器就是“专用的服务器协助”了。只有 port-restricted cone NAT 的情况下,理论上两端都向对方发包,那就能互相打开 NAT 映射,就能互相通信了。不过大多数 BT 客户端在连不上某个 Peer 后就不会再尝试连接,所以实际还是 fullcone NAT 才可用。
mikewang

mikewang      5 小时 24 分钟前 via iPhone

@heiher
在此艾特 natmap 小伙伴,我觉得你应该明白我想说的。

Natter 也研究过将 NAT1 中的 DHT TCP 端口开放至公网的方案。
从本机到公网的端口映射,有一种流程是:
本机:A —> 路由器:B —> 公网:C

其中 A, B 端口号是可控的,C 端口号不可控。
然而,虽然端口映射到了公网,BT 软件一般对外报告 A 端口号,而非 C ,导致外部主机连不上。

现在有一种思路,就是先建立〔路由器:B —> 公网:C 〕的映射,得到端口 C 后,反过来去通知 BT 软件去监听 C 端口,映射关系变为:
本机:C —> 路由器:B —> 公网:C

这样内外端口即保持一致。我做过实验,这样可以获得非常可观的上传。

这个缺陷在于,BT 软件需要提供 API 去改变实时监听端口(已知 transmission 是可以的)不过现在工作太忙了,不太有时间更新 Natter 。heiher 兄有没有什么想法?
cwbsw

cwbsw      5 小时 21 分钟前

@ysc3839 公网 IP 不需要 qBittorrent 报告,tracker 本来就能获取到,问题是端口。
ysc3839

ysc3839      4 小时 48 分钟前 via Android

@cwbsw 说的是公网 IP 和端口
cwbsw

cwbsw      4 小时 42 分钟前

@ysc3839 qBittorent 没这功能。
heiher

heiher      4 小时 14 分钟前

@mikewang

平常并不使用 BT 协议,也不了解 BT 协议,但 mike 兄讲的很清晰,我看懂了,哈哈。

我之前从直觉上的认知与 @ysc3839 一样,认为 BT 客户端可以将自己正在侦听的公网 IP 、端口交换给 peer ,那么在本机:A —> 路由器:B —> 公网:C 三层结构下,BT 客户端通过 UPNP 或 NATPMP 打通路由器:B —> 本机:A 的入站,再利用公网侧 CGNAT 的 NAT1 特点,同时打通公网:C —> 路由器:B 。就能完全实现用户免配置。

现在综合看事实可能不是这样的,那么向开源的 BT 客户端提交补丁可能是一劳永逸的方法?增加获得并报告公网侧 IP 、端口的支持。

对于不修改 BT 客户端的情况,mike 兄的方法已经实测可行了,只要在 Natter 的 Hook 脚本中调用 BT 客户端 API 更改侦听端口即可。而对于没有 API 的 BT 客户端,不知道是不是可以实现一个代理程序来篡改客户端上报的端口 :P
ysc3839

ysc3839      4 小时 11 分钟前 via Android

@cwbsw 我目前没有测试环境,但印象中以前用校园网连接 PT 站时,PT 站后台看到的 IPv4 端口是和本地不同的,本地一直是固定的 8000 多的端口,但是后台看到的是上万的端口。也有可能是我记错了,但我目前也没条件测试。
isad

isad      3 小时 46 分钟前

对 BT 来说,没什么必要做特殊处理。你在内网里本身就可以通过 DHT 进行 μtp 上传,就算你自行映射端口并报告给 tracker ,中国三大运营商的国际互连质量也本来就很拉跨,tcp 上传并不会快多少。
mmr

mmr      3 小时 39 分钟前

@mikewang 我逝逝,现在的 PT 站不是很热门,下载人数不多,可能是这个原因才没上传的吧
dc3365

dc3365      3 小时 26 分钟前

我的解决方案是直接在网站上购买上传量。10 块钱可以买到很多。足够单独下载很久。
redbeanzzZ

redbeanzzZ      15 分钟前

@RheatiN 热门成人包回个本一般还是可以的,反正 24 小时挂着

Recommend

  • 26
    • www.tuicool.com 4 years ago
    • Cache

    开颅打洞接电线,你敢不敢?

    ©深响原创 · 作者|赵宇 7月17日,“钢铁侠”Elon Musk又搞了个大新闻,宣布名下Neuralink公司已经找到了高效实现脑机接口的方...

  • 18

    原作者:黄日成,手Q游戏中心后台开发,腾讯高级工程师。从事C++服务后台开发4年多,主要负责手Q游戏中心后台基础系统、复杂业务系统开发,主导过手Q游戏公会、企鹅电竞App-对战系统等项目的后台系统设计,有丰富的后台架构经验。

  • 23
    • mthli.xyz 3 years ago
    • Cache

    P2P 打洞原理

    在上篇文章 中,我们知道了 WebRTC 本身是点对点(Peer-to-Peer)连接的。如果连接双方都是公网地址,则可以直接访问到对方,从而建立连接。但大部分情况下其中一方或者双方都不是公网地址,而是隐藏在 NAT(Network Address Translation...

  • 8

    Python利用S3的Presigned URLs实现无鉴权上传与下载 2020-08-17 22:10:46 +08  字数:942  标签: Python S3协议操作对象存储服务,通...

  • 5

    修了两年那只不会打洞的火星鼹鼠,NASA宣布…已认证的官方帐号今天故事的主角,是一只刚刚离开我们的“鼹鼠”。就在1月14日,NASA正式宣告对它放弃抢救了。为什么对一...

  • 0
    • blog.lilydjwg.me 2 years ago
    • Cache

    UDP打洞实验

    UDP打洞实验 本文来自依云's Blog,转载请注明。 两台没有外网 IP...

  • 6
    • blog.lilydjwg.me 2 years ago
    • Cache

    通过 UDP 打洞连接 NAT 后边的 mosh

    通过 UDP 打洞连接 NAT 后边的 mosh 本文来自依云's Blog,转载...

  • 4

    借助 ext4 文件系统的 打洞 功能实现消息队列 借助 ext4 文件系统的 打洞 功能,可以实现一个消息队列 https://gist.github.com/CAFxX/571a1558db9a7b393...

  • 4

    几天前,某人同我抱怨,说是某接口无法正常工作,坦白地讲,这只是程序员生命里再枯燥不过的日常,因为无论“好”或者“不好”,他们都要努力回应来自灵魂深处的那声“为什么”。所以,善待程序员的方式之一,就是不要总问他“为什么”,因为他已经听了太多的“为什么”。...

  • 2
    • www.v2ex.com 1 year ago
    • Cache

    微信视频的打洞方式?

    V2EX  ›  问与答 微信视频的打洞方式?   firefox12...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK