Форум OlegON > Компьютеры и Программное обеспечение > Сеть

Как создать свой маленький торрент-трекер : Сеть

16.04.2024 10:16


14.11.2017 14:51
OlegON
 
Все, кто пользовался торрентом, знают, что суть передачи - в скачивании файла торрента, благодаря которому клиент обменивается с трекером информацией о других клиентах. Есть еще DHT.



Вот, скажите, пожалуйста, а если трекера нет. Только DHT. Могу ли я создать торрент и раздать его толпе народа без ручного добавления меня в пиры на старте, например?

Может, как-то magnet поможет?

Суть - желание раздать большой файлик многим и не положить себе канал. Файлик будет один, но будет обновляться, потому не хочу себе головняк устраивать с трекером, но и перекладывать вручную - тоже.
15.11.2017 09:07
OlegON
 
В общем, разобрался.

Если нет трекера, работать, скорее всего, не будет. Без трекера нужно, чтобы хотя бы кто-то в пределах DHT сливал этот же файл. Для малопопулярной раздачи это не работает. Искал трекер. В основном все громоздкие, для создания всяких PirateBay, мне это не нужно было. Нашел полумертвый BitStorm. Он настолько древний, что hex2bin() там переопределена, разбираться не стал, просто в двух местах поменял hex2bin на hex22bin. На PHP7 работает. Особо не заморачивался, но поставил раз в неделю усечение тех трех таблиц, что нужны для работы трекера. Да, таблицы переделал на Aria вместо InnoDB.
15.11.2017 09:19
OlegON
 
Теперь, как создать торрент-файл. Еще проще.

Я использовал утилиту createtorrent, она в портажах есть, думаю, что и в репозиториях многих других дистрибутивов.
Код:
createtorrent -a https://olegon.ru -p 443 -P /bt/announce.php test.zip test.torrent
Т.е. тут я указываю путь на свой веб-сервер (порт штатный для HTTPS в отличие от настроек по умолчанию), на HTTPS, кстати, работает без проблем с сертификатами и т.п. Затем надо указать путь к announce.php из bitstorm, о котором речь шла выше, путь относительный к параметру -a. И выходной файл торрента. Собственно, строка выше совершенно рабочая и указывает на мой трекер, можете его использовать для сведения и раздачи своих торрентов. Создали файлик - отдайте его получателям, они через трекер узнают о вас и других сидах.
15.11.2017 09:29
OlegON
 
Да, понятно, что торрент надо раздавать :) Поскольку речь идет про сервер, я предпочитаю консольные варианты. Есть rtorrent, но его настраивать для одной раздачи мне было лениво, поэтому я решил воспользоваться aria2c. Если у кого-то есть идеи, что использовать вместо него (например, lftp тоже поддерживает торренты), пишите.

Да, с помощью этой утилиты можно посмотреть magnet-ссылку, если не хотите заморачиваться с раздачей торрент-файла
Код:
aria2c -S test.torrent
Я перешел в директорию с файлами, полученными командами, указанными выше, поэтому пути все относительные.

Ну, и собственно, сама раздача из текущей директории с игнорированием того, что файл не был скачан этой утилитой
Код:
aria2c -V --seed-ratio=0.0 -d./ test.torrent
команду запускал в screen, чтобы сессия не порвалась при закрытии SSH-консоли.

Если не использовать -V (что не очень очевидно из документации), получите ошибку
Цитата:
File ... exists, but a control file(*.aria2) does not exist. Download was canceled in order to prevent your file from being truncated to 0. If you are sure to download the file all over again, then delete it or add --allow-overwrite=true option and restart aria2.
Вы, конечно, можете использовать и другие клиенты, если устраивает раздача с десктопа.
Часовой пояс GMT +3, время: 10:16.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.