Bittorrent

為什麼下載不了torrent文件?

  • June 14, 2020

target.bz2在我的 vps 上創建了一個 torrent。

transmission-create  -o target.torrent -t udp://tracker.opentrackr.org:1337/announce  -s 2048  target.bz2

51413在我的 pv 上打開了埠。

然後target.torrent通過電子郵件發送給我的朋友,他開始下載aria2c

aria2c target.torrent 
06/03 12:35:11 [NOTICE] Downloading 1 item(s)
06/03 12:35:11 [NOTICE] IPv4 DHT: listening on UDP port 6893
06/03 12:35:11 [ERROR] Exception caught
Exception: [DefaultBtProgressInfoFile.cc:280] errorCode=1 info hash mismatch. expected: b5c4a65adbd5d2ea3e07f2d4207da4c4dee9a0ba, actual: ab172fda6a8b41155cf16e35e49883710169e2bf
06/03 12:35:11 [NOTICE] Download GID#e7239e7f5e170038 not complete: /root/target.bz2                                                                               
Download Results:
gid   |stat|avg speed  |path/URI
======+====+===========+=======================================================
e7239e|ERR |        n/a|/root/target.bz2

Status Legend:
(ERR):error occurred.

aria2 will resume download if the transfer is restarted.
If there are any errors, then see the log file. See '-l' option in help/man page for details.

嘗試使用傳輸-cli:

transmission-cli  target.torrent -w  /tmp

它遇到錯誤:

Tracker gave an error:: Invalid passkey (0 - )

使用 qtorrent 下載。

在此處輸入圖像描述

如何讓 torrent 客戶端知道target.bz2我的 vps 中的資源?

兩者target.bz2target.torrent在我的vps上。

cd  /tmp
ls  
target.bz2
target.torrent

奇怪的是,我的 vps 目錄中的 target.bz2 和 target.torrent都/tmp無法使用命令下載。/tmp/target.bz2``/home``transmission-cli /tmp/target.torrent -w /home

在此處輸入圖像描述

用python分析為我朋友下載創建的torrent(省略很多部分)。

>>> import torrent_parser as tp
>>> data = tp.parse_torrent_file('/tmp/target.torrent')
>>> data
{'created by': 'Transmission/2.92 (14714)', 'encoding': 'UTF-8', 'announce': 'udp://tracker.opentrackr.org:1337/announce', 
'creation date': 1591488553, 'info': {'pieces': 
['bb47ffb395620d2541a094bc33c92a65b7a02425', 'c572be1020cab80b00953bc596ad0b1b62392e53', 
], 'name': 'target.bz2', 'length': 216094557, 'piece length': 4194304, 'private': 0}}

下載一個 debian torrent(重命名)並分析它(省略很多部分)。

>>> import torrent_parser as tp
>>> data = tp.parse_torrent_file('/debian.torrent')
>>> data
{'httpseeds': ['https://cdimage.debian.org/cdimage/release/10.4.0//srv/cdbuilder.debian.org/dst/deb-cd/weekly-builds/amd64/iso-dvd/debian-10.4.0-amd64-DVD-1.iso', 
'https://cdimage.debian.org/cdimage/archive/10.4.0//srv/cdbuilder.debian.org/dst/deb-cd/weekly-builds/amd64/iso-dvd/debian-10.4.0-amd64-DVD-1.iso'], 
'info': {'pieces': ['b49a7c062b92a8618998c919ee3ea122ed348c3f',]
'name': 'debian-10.4.0-amd64-DVD-1.iso', 'piece length': 1048576, 'length': 3955556352}, 
'comment': '"Debian CD from cdimage.debian.org"', 'announce': 'http://bttracker.debian.org:6969/announce', 'creation date': 1589025382}

我創建的洪流中失去了哪些主要元素?

阿里2c

info hash mismatch. expected: b5c4a65adbd5d2ea3e07f2d4207da4c4dee9a0ba, actual: ab172fda6a8b41155cf16e35e49883710169e2bf

您遇到的第一個錯誤與aria2c下載位置上存在雜湊不匹配的現有目標文件有關/root/target.bz2,您需要刪除/重新創建目標文件。(但這可能不是您問題的唯一問題)

**這可能是由於從伺服器傳輸生成的 torrent 文件不正確造成的,**請注意,您不能使用cat從伺服器複製 torrent 文件。

傳播

種子創建是正確的,您的種子只是沒有播種,在您的伺服器上執行:

transmission-cli -v /tmp/target.torrent -w /tmp/ -p 51413

要使該文件可供客戶端使用,此命令必須輸出Seeding, uploading to 0 of 0 peer(s), 0 kB/s [0.00]...並且必須保持執行。

如何在 VPS 上創建種子:

在這個操作展示中,我們將使用 dd 生成一個隨機文件並使用傳輸。請注意,從伺服器本身上傳和下載可能會很棘手或無法傳輸,因為它需要額外的配置。另請注意,我們可以將包transmission-daemon用於適當的 torrent 伺服器(在此迷你操作指南中未使用)。

  1. 安裝包transmission
  2. 生成隨機文件
   mkdir /tmp/tmp
   cd /tmp/tmp
   dd if=/dev/random of=/tmp/tmp/file.my count=100000
  1. 打開 TCP/UDP 埠51413
  2. 創建種子文件
   transmission-create -o /tmp/tmp/tor.torrent -t udp://tracker.opentrackr.org:1337/announce -s 1024 /tmp/tmp/file.my
  1. 將種子文件複製到客戶端(cat可能不會使用)
  2. 在伺服器上啟用播種器,必須輸出以下命令Seeding, uploading to 0 of 0 peer(s), 0 kB/s [0.00]...並且必須保持執行。
   transmission-cli -v /tmp/tmp/tor.torrent -w /tmp/tmp/ -p 51413
  1. 使用首選 torrent 客戶端在客戶端上打開 torrent 文件。

連結

傳輸創建傳輸伺服器

引用自:https://unix.stackexchange.com/questions/590628