Свободный BitTorrent клиент, написанный с использованием фреймворка Qt и библиотеки libtorrent.
По-умолчанию, клиент прослушивает все сетевые интерфейсы и отлично подходит для обмена файлами в сети Yggdrasil.
При необходимости, в графических настройках можно указать сетевой интерфейс явно, что особенно полезно для изолированного от других сетей сидирования.
Для этого, достаточно указать интерфейс или адрес Yggdrasil из списка доступных:
Preferences → Advanced → Network interface или Optional IP address to bind to
Поскольку трафик между пирами Yggdrasil шифруется по-умолчанию, для снижения нагрузки, штатное шифрование можно отключить:
Preferences → BitTorrent → Privacy → Encription mode → Disable
Загружая файлы посредством протокола BitTorrent, принято делиться раздачей с другими.
Для этого достаточно открыть порт в фаервол:
ufw allow from 0200::/7 to any port [Listening Port]
[Listening Port] - автоматически выданный клиентом порт в разделе Preferences → Connections
Обратите внимание, что UPnP в контексте Yggdrasil не используется, поэтому включение этой опции никак не влияет на участие в сидинге.
Не забываем анонсировать свою раздачу как минимум одному трекеру в сети Yggrasil. Сделать это можно выбрав соответствующий файл, во вкладке Trackers → Add trackers…
Подробная настройка сид-сервера на базе qBittorrent, описана в разделе Сервер на базе qBittorrent
В клиенте qBittorrent имеется встроенный торрент-трекер, активировать который можно в разделе меню:
Advanced → Enable embedded tracker
Разрешаем покдключение к трекеру из сети Yggdrasil (по-умолчанию 9000):
ufw allow from 0200::/7 to any port 9000
Затем, можно поделиться ссылкой вида http://[address]:9000/announce с другими или добавить в список внутрисетевых сервисов
* Организовать легковесный торрент-трекер можно также с помощью специализированного ПО, например Opentracker
Клиент поддерживает альтернативные темы оформления в формате .qbttheme
Следует учитывать, что темы для десктоп клиента несовместимы с клиентом Web UI.
Для изменения внешнего вида Web UI, вместо файла .qbttheme, используются альтернативные клиенты.
Чтобы создать альтернативный Web UI, достаточно скопировать директорию
cp src/webui/www /somelocation/newtheme
Минимальный набор файлов представлен директориями:
/private - все страницы клиента, доступные после авторизации /public - страница логина
После нужных изменений, путь к альтернативному клиенту можно в опции:
Preferences → Web UI → Use alternative Web UI
В последних версиях qBittorrent была убрана поддержка обработки мульти-язычных строк, поэтому придется удалить конструкции из файлов html авто-заменой
QBT_TR\((.*)\)QBT_TR\[CONTEXT=.*\]
Результатом можно поделиться на GitHub, добавив страницу проекта в список List of known alternate WebUIs
Для отправки PR в официальный репозиторий, чтобы исключить конфликты обновлений, желательно разбивать правки на отдельные ветки:
git checout master git checkout -b my-webui-fix
Важно перед отправкой тестировать форматирование и валидность кода:
cd src/webui/www npm install npm run lint && npm run format
Актуальные инструкции по компиляции, описаны в файле INSTALL а также разделе официальной Wiki
При использовании последней версии из репозитория, с большой вероятностью, версии зависимостей в штатных репозиториях окажутся устаревшими.
В частности, может дополнительно понадобиться сборка последних версий libboost, libtorrent и Qt.
Для сборки серверного клиента без графической оболочки (qbittorrent-nox), есть удобная утилита qbittorrent-nox-static, которая соберет все зависимости автоматически.
Удобна тем, что также поддерживает различные платформы, в том числе ARM.
Официальная инструкция:
git clone --recursive https://github.com/boostorg/boost.git cd boost ./bootstrap.sh ./b2
Главная ветка включает межверсионные изменения последней версии.
На практике, для разрешения зависимостей, используются релизы (это касается и остальных пакетов).
Загружаем архив нужной версии и пропускаем шаг git/clone.
Для глобальной установки:
./b2 install
git clone --recurse-submodules https://github.com/arvidn/libtorrent.git cd libtorrent ./configure make
* возможно для конфигурации потребуется указать путь к boost, например ./configure –with-boost-libdir=/usr/lib/arm-linux-gnueabihf/
Для глобальной установки:
make install
Необходимую для qBittorrent версию проще всего установить из официального онлайн-установщика (для загрузки потребуется регистрация на сайте).
Также библиотеки (qtbase и qttools) можно загрузить из архива релизов и собрать вручную.
В таком случае, важно учитывать наличие доступных ресурсов - для сборки qtbase понадобится порядка 3Гб ОЗУ и до 5Гб дискового пространства.
Если есть возможность подключения внешнего накопителя, буфер памяти можно увеличить через файл подкачки:
fallocate -l 4G /mount/swapfile chmod 600 /mount/swapfile mkswap /mount/swapfile swapon /mount/swapfile
по завершению:
swapoff /mount/swapfile rm /mount/swapfile
При монтировании дополнительного дискового пространства посредством /etc/fstab, важно добавить флаги user,exec иначе при сборке cmake выдаст ошибку «Permission denied».
Процесс компиляции выглядит примерно так:
cd /mount/qtbase-everywhere-src-6.5.3 cmake -B build cmake --build build --parallel 4
* 4 - количество потоков
Можно указать параметры для отдельных дистрибутивов, например Debian/Ubuntu
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local
В этом примере, собранные файлы будут расположены в директории
/mount/qtbase-everywhere-src-6.5.3/build/lib/cmake
Для глобальной установки:
cd /mount/qtbase-everywhere-src-6.5.3/build cmake --install .
Как указано в файле dependencies.yaml, сборка требует предустановленной библиотеки qtbase, приступаем только если выполнили предыдущий шаг.
cd /mount/qttools-everywhere-src-6.5.3 qt-configure-module . cmake --build .
Для глобальной установки:
cmake --install .
Для сборки серверной версии с помощью cmake - отключаем графическую среду флагом
-DGUI=OFF
Если пакеты Qt не установлены глобально, при компиляции qBittorrent с помощью cmake, нужно указать дополнительный флаг c префиксом директории:
-DCMAKE_PREFIX_PATH='/home/USERNAME/Qt/6.5.3/gcc_64/lib/cmake'
Подробнее о доступных опциях сборки и их значениями по-умолчанию, можно почитать в разделе Compilation
git clone https://github.com/qbittorrent/qBittorrent.git cd qBittorrent cmake -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DGUI=OFF cmake --build build
Готовый бинарный пакет qbittorrent-nox будет доступен в директории /build
При большом количестве раздач, в qBittorrent 4, наблюдается проблема повышенного расхода памяти с активным использованием swap и зависанием интерфейса.
Чтобы избежать перебоев в работе других служб, можно добавить лимиты на процесс, указав объем доступной памяти:
nano /etc/systemd/system/qbittorrent-nox.service
* qbittorrent-nox - серверный клиент qbittorrent
[Service] MemoryHigh=256M MemoryMax=512M MemorySwapMax=512M
В версии 5 (из ветки unstable) проблема пока что не наблюдалась.
Установить альфа версию для требуемого дистрибутива можно из списка на официальной странице загрузок, раздел «Other Binary Packages»
Например, репозиторий Ubuntu:
add-apt-repository ppa:qbittorrent-team/qbittorrent-unstable
qBittorrent по-умолчанию генерирует торрент-файлы гибридного формата.
Клиенты (например, Transmission) не имеющие поддержку протокола 2 версии, не смогут открыть файл.
Таким образом, при создании торрент-файлов лучше явно указывать формат версии 1.
Автоматически сгенерированный из magnet ссылки .torrent файл (при включенной опции авто-сохранения .torrent файлов), может не содержать фрагментов (pieces) что сделает его не совместимым при импорте.
В качестве решения, для раздач лучше генерировать новый .torrent файл после загрузки содержимого.
В 4 версии клиента замечено зависание (stalled) при скачивании файлов. Частой причиной этому может быть использование только первого трекера (оффлайн) из списка доступных.
Решение описано в официальной инструкции по дополнительным настройкам:
Preferences → Advanced → Always announce to all trackers
Также можно отметить
Preferences → Advanced → Always announce to all trackers in a tier
В большинстве случаев связано с настройками MIME.
В дистрибутивах Linux, можно попробовать очистить кеш в директории
/home/USERNAME/local/share/mime
При использовании приватных трекеров или таких, что требуют авторизации для осуществления поиска, следует:
Официальный сайт qBittorrent
Частые вопросы
Альтернативные темы (Десктоп)
Альтернативные клиенты (Web UI)
Поисковые плагины
Обсуждение
https://www.opennet.ru/opennews/art.shtml?num=58617
У меня почти все вручную созданные раздачи были в таком формате, теперь нужно генерировать заново для 1-й версии
Написал пока в тикет, нужно разбираться
https://github.com/Rhilip/Bencode/issues/15
В самом Transmission такие файлы просто инициализируют открытие клиента без окна добавления файла, логи пока не смотрел, но странно что даже Transmission никак не оповещает об ошибке формата
http://[201:23b4:991a:634d:8359:4521:5576:15b7]/yggtracker/en/torrent/85
В прочем, в Transmission его не открыть, не смотря на то, что есть хеш 1-й версии
Как мне видится, это две разные проблемы, где в первом случае, мои торент файлы были сгенерированы из магнет ссылок / DHT (и наверное остались без pieces)
Поскольку зеркало проксирует из другого айпишника, rutracker видимо считает это отдельным устройством
Пробовал вручную создавать файл кукисов, но бестолку
может у кого будут идеи как прикрутить сессию для поискового плагина
http://[321:c99a:91a1:cd2c::18]/forum/
Кое-что было изменено, в частности отказ от графики в табах и тд с переходом на CSS / Flat Design
Если у кого есть предложения (в частности по палитре и контрасту) - комментируйте, иначе придется юзать из коробки в следующем релизе qBittorrent:
https://github.com/qbittorrent/qBittorrent/pull/19901