0%

TorrServer на VPS: безопасная настройка удалённого стриминга

9 мин 2026-08-17T12:00:00+03:00
Rianvy
Эта запись также доступна на 🇬🇧 English
TorrServer на VPS: безопасная настройка удалённого стриминга

Полное руководство по установке TorrServer на удалённый VPS: от выбора сервера до защищённого подключения Lampa.

Как работает TorrServer на VPS

TorrServer получает части файла из BitTorrent-сети, держит буфер в оперативной памяти и отдаёт видеопоток клиенту по HTTP или HTTPS. После переноса на VPS пиринговый трафик идёт через сервер, но домашний интернет всё равно используется для получения готового видеопотока.

Преимущества такого варианта:

  • доступ с телевизора, телефона и ноутбука вне домашней сети;
  • круглосуточная работа без включённого домашнего компьютера;
  • быстрый канал дата-центра и независимость от исходящей скорости домашнего подключения;
  • единый сервер для нескольких личных устройств.

При этом появляются расходы на VPS, исходящий трафик и необходимость правильно защитить сервис.

Что понадобится

Требования к VPS

Это ориентиры, а не жёсткие системные требования: фактическая нагрузка зависит от битрейта, числа зрителей, размера кэша и использования транскодирования.

Параметр CPU
Для старта 1 vCPU для обычного проксирования
Комфортный вариант 2+ vCPU; больше для GStreamer-транскодирования
Параметр RAM
Для старта 1 ГБ
Комфортный вариант 2 ГБ для крупного кэша или нескольких потоков
Параметр Диск
Для старта 5 ГБ
Комфортный вариант 10 ГБ с запасом под ОС, логи и метаданные
Параметр Сеть
Для старта битрейт видео + 30–50% запаса
Комфортный вариант порт 200 Мбит/с и выше
Параметр ОС
Для старта современный glibc-based Linux
Комфортный вариант Ubuntu 22.04/24.04 или Debian 12/13

Основной стриминговый кэш TorrServer находится в RAM, поэтому выделять 10–20 ГБ диска именно «под кэш» не требуется. Старые дистрибутивы и системы на musl могут быть несовместимы с актуальным бинарником: официальный инсталлятор проверяет архитектуру, ОС и версию glibc.

Фиксированного требования «100 Мбит/с для любого 4K» нет. Обычный 1080p может занимать 10–40 Мбит/с, а пиковый битрейт тяжёлого 4K-remux способен превысить 100 Мбит/с. Ориентируйтесь на реальный битрейт файла и оставляйте запас.

Выбор VPS-провайдера

Тарифы меняются, поэтому перед оплатой проверяйте текущую цену, скорость порта, лимит исходящего трафика и допустимость BitTorrent в правилах провайдера.

Провайдер Aéza
Что проверить доступные локации, тип тарифа и правила трафика
Ссылка aeza.net
Провайдер Xorek Cloud
Что проверить скорость порта, лимит трафика и выбранную локацию
Ссылка xorek.cloud

Для обычной сборки без транскодирования важнее сеть и RAM. Для -gst-сборки с GStreamer, которая умеет remux и транскодирование, производительность CPU тоже имеет значение.

SSH-клиент

В примерах используется Termius , но подойдёт любой SSH-клиент. Бесплатный тариф Termius включает SSH, SFTP и автодополнение; облачная синхронизация между мобильными и настольными устройствами относится к Pro-тарифу.

Шаг 1: подготовка сервера

Закажите VPS с Ubuntu 22.04/24.04 или Debian 12/13. После создания сервера провайдер выдаст IP-адрес, пользователя, пароль или SSH-ключ.

При первом подключении сравните fingerprint SSH-ключа с данными в панели провайдера, если они доступны. Не подтверждайте неизвестный fingerprint автоматически.

Подключитесь к серверу и обновите систему:

apt update && apt upgrade -y
apt install -y curl ca-certificates

Если вы вошли не как root, добавляйте sudo перед административными командами.

Шаг 2: установка TorrServer

Рекомендуемый вариант: официальный инсталлятор

Скачайте скрипт отдельно, просмотрите его при желании и запустите интерактивно:

curl -fsSL https://raw.githubusercontent.com/YouROK/TorrServer/master/installTorrServerLinux.sh \
  -o installTorrServerLinux.sh
chmod 755 installTorrServerLinux.sh
sudo bash ./installTorrServerLinux.sh

В меню выберите установку последней версии. Стандартная сборка подходит для прямого стриминга. -gst-сборка нужна только для функций GStreamer и может потребовать больше CPU.

Инсталлятор:

  • определяет архитектуру и совместимость glibc;
  • устанавливает бинарник в /opt/torrserver;
  • создаёт отдельного пользователя torrserver;
  • создаёт и включает systemd-сервис torrserver.service;
  • умеет настроить логирование и HTTP Basic Auth;
  • поддерживает последующие обновления и перенастройку.

Во время установки включите HTTP-аутентификацию и задайте уникальные логин и длинный пароль. Учётные данные сохраняются в /opt/torrserver/accs.db, а флаг --httpauth включает их проверку.

Проверьте сервис:

systemctl status torrserver --no-pager
journalctl -u torrserver -n 50 --no-pager

Управление сервисом:

systemctl restart torrserver
systemctl stop torrserver
systemctl start torrserver

Как устроена авторизация

TorrServer не принимает логин и пароль в аргументе -a. Параметр -a или --httpauth — это только переключатель. Пользователи хранятся в accs.db рядом с config.db:

{
  "admin": "ЗАМЕНИТЕ_НА_ДЛИННЫЙ_УНИКАЛЬНЫЙ_ПАРОЛЬ"
}

Не существует отдельного надёжного способа создать эти учётные данные через обычные настройки веб-интерфейса. Для изменения авторизации снова запустите официальный скрипт:

sudo bash ./installTorrServerLinux.sh --reconfigure

Шаг 3: безопасная проверка

Не открывайте 8090/tcp всему интернету только ради проверки. Создайте SSH-туннель с вашего компьютера:

ssh -L 8090:127.0.0.1:8090 root@IP_СЕРВЕРА

Пока SSH-сессия открыта, перейдите в браузере на http://127.0.0.1:8090. Введите логин и пароль TorrServer.

Basic Auth кодирует, но не шифрует пароль. Поэтому публичный доступ по обычному http://IP:8090 небезопасен даже с авторизацией. Для постоянного удалённого доступа используйте HTTPS или приватную VPN-сеть.

Шаг 4: файрвол

Сначала разрешите реальный SSH-порт. Если сервер использует стандартный OpenSSH на порту 22:

apt install -y ufw
ufw allow OpenSSH
ufw enable
ufw status verbose

Если SSH работает на другом порту, разрешите именно его до включения UFW.

Для рекомендуемой схемы с Nginx не добавляйте публичное правило для 8090. Порты HTTP/HTTPS откроем после установки Nginx, когда появится профиль Nginx Full.

Если нужно временно проверить прямое подключение, ограничьте его текущим публичным IP вашего устройства:

ufw allow from ВАШ_ПУБЛИЧНЫЙ_IP to any port 8090 proto tcp

После проверки удалите это правило командой ufw status numbered, затем ufw delete НОМЕР.

Шаг 5: HTTPS с Nginx

Для этого шага нужен домен с A/AAAA-записью, направленной на VPS.

Установите Nginx и Certbot:

apt install -y nginx certbot python3-certbot-nginx
ufw allow 'Nginx Full'
ufw status verbose

Создайте конфигурацию:

nano /etc/nginx/sites-available/torrserver
server {
    listen 80;
    listen [::]:80;
    server_name torr.example.com;

    location / {
        proxy_pass http://127.0.0.1:8090;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Authorization $http_authorization;

        proxy_buffering off;
        proxy_request_buffering off;
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
    }
}

Замените torr.example.com своим доменом, активируйте сайт и проверьте синтаксис:

ln -s /etc/nginx/sites-available/torrserver /etc/nginx/sites-enabled/torrserver
nginx -t
systemctl reload nginx
certbot --nginx -d torr.example.com

После выпуска сертификата используйте https://torr.example.com. Убедитесь, что порт 8090 не открыт в UFW или в облачном файрволе провайдера.

Если домена нет, безопаснее подключить VPS и устройства через WireGuard, Tailscale или другую приватную VPN-сеть, чем публиковать TorrServer по HTTP.

Шаг 6: подключение Lampa

Пункт меню зависит от версии клиента, но обычно находится в Настройки → TorrServer.

  1. Откройте настройки TorrServer в Lampa.
  2. Укажите защищённый адрес, например https://torr.example.com.
  3. Сохраните настройки и выполните проверку соединения.
  4. Для теста используйте торрент с контентом, который вы имеете право смотреть.

Поддержка Basic Auth различается между сборками Lampa. Если ваш клиент предоставляет отдельные поля логина и пароля, используйте их. Не рассчитывайте, что URL вида https://user:password@torr.example.com обязательно заработает: веб-версии часто блокируют встроенные учётные данные или запросы к небезопасному HTTP-ресурсу. В таком случае используйте VPN либо клиент/плагин с явной поддержкой авторизации — не отключайте защиту сервера.

Альтернатива: Docker

Установите Docker по официальной инструкции . Пример ниже предполагает Nginx на том же VPS и поэтому публикует порт только на loopback-интерфейсе.

Подготовьте каталог и файл авторизации:

install -d -m 700 /var/lib/torrserver/config
nano /var/lib/torrserver/config/accs.db
chmod 600 /var/lib/torrserver/config/accs.db

Содержимое accs.db:

{
  "admin": "ЗАМЕНИТЕ_НА_ДЛИННЫЙ_УНИКАЛЬНЫЙ_ПАРОЛЬ"
}

Запустите контейнер:

docker run -d \
  --name torrserver \
  --restart unless-stopped \
  -p 127.0.0.1:8090:8090 \
  -e TS_HTTPAUTH=1 \
  -v /var/lib/torrserver:/opt/ts \
  ghcr.io/yourok/torrserver:latest

Каталог постоянных данных внутри официального контейнера — /opt/ts, а не /data. Файл авторизации при стандартном TS_CONF_PATH должен лежать в /opt/ts/config/accs.db.

Полезные команды:

docker logs -f torrserver
docker restart torrserver
docker stop torrserver
docker start torrserver

Для обновления загрузите новый образ, пересоздайте контейнер той же командой и не удаляйте /var/lib/torrserver:

docker pull ghcr.io/yourok/torrserver:latest
docker rm -f torrserver
# Повторите команду docker run из примера выше.

Настройки производительности

Текущие значения TorrServer по умолчанию — безопасная отправная точка. Меняйте их после проверки на реальном файле.

Параметр Cache size
По умолчанию 64 МБ
Ориентир для VPS с 1–2 ГБ RAM 128–256 МБ, если хватает RAM
Параметр Preload cache
По умолчанию 50%
Ориентир для VPS с 1–2 ГБ RAM 50–75% для нестабильных раздач
Параметр Connections limit
По умолчанию 25
Ориентир для VPS с 1–2 ГБ RAM 25–50
Параметр Upload rate limit
По умолчанию 0 — без ограничения
Ориентир для VPS с 1–2 ГБ RAM ограничивать только при лимитном трафике

Upload rate в настройках задаётся в KiB/s: 1024 — примерно 1 MiB/s, 5120 — примерно 5 MiB/s. Слишком низкий upload может ухудшить участие в раздаче. Сначала изучите правила и тарификацию исходящего трафика у провайдера.

Решение проблем

Сервис не запускается

systemctl status torrserver --no-pager
journalctl -u torrserver -n 100 --no-pager

Проверьте права на /opt/torrserver, корректность JSON в accs.db и совместимость бинарника с архитектурой VPS.

Nginx возвращает 502 Bad Gateway

ss -tlnp | grep 8090
curl -I http://127.0.0.1:8090
nginx -t
journalctl -u nginx -n 50 --no-pager

При использовании reverse proxy адрес 127.0.0.1:8090 — нормальный и безопасный. Слушать 0.0.0.0:8090 для этой схемы необязательно.

Lampa не подключается

  1. Откройте адрес TorrServer в браузере с того же устройства.
  2. Проверьте сертификат и используйте https://, если настроили Certbot.
  3. Убедитесь, что Basic Auth поддерживается вашей сборкой Lampa.
  4. Для веб-клиента проверьте ошибки mixed content и CORS в консоли браузера.
  5. Посмотрите логи: journalctl -u torrserver -f или docker logs -f torrserver.

Поток буферизуется

  1. Сравните битрейт файла со скоростью VPS и домашнего подключения.
  2. Выберите раздачу с достаточным числом доступных пиров.
  3. Увеличивайте кэш постепенно и следите за RAM через free -h.
  4. Проверьте потери и маршрут между устройством и VPS.
  5. Если включено транскодирование, проверьте загрузку CPU через top.

Обновление TorrServer

Не используйте скрипт, который останавливает сервис до успешной загрузки нового бинарника. Официальный инсталлятор уже поддерживает безопасное обновление:

curl -fsSL https://raw.githubusercontent.com/YouROK/TorrServer/master/installTorrServerLinux.sh \
  -o installTorrServerLinux.sh
chmod 755 installTorrServerLinux.sh
sudo bash ./installTorrServerLinux.sh --update --silent

После обновления проверьте сервис и путь к запущенному бинарнику:

systemctl status torrserver --no-pager
systemctl show torrserver -p ExecStart --no-pager

Имя бинарника зависит от архитектуры и выбранной standard/-gst-сборки. Установленные файлы можно посмотреть командой ls -1 /opt/torrserver/TorrServer-*.

Плюсы и минусы

Плюсы Доступ с личных устройств вне дома
Минусы Ежемесячная оплата VPS
Плюсы Работа 24/7
Минусы Нужно поддерживать обновления и безопасность
Плюсы Быстрый канал дата-центра
Минусы Домашний downlink всё равно используется для просмотра
Плюсы Пиринговый трафик переносится на VPS
Минусы Возможны лимиты или запрет BitTorrent у провайдера
Плюсы Не нужен постоянно включённый домашний ПК
Минусы Несколько одновременных потоков требуют больше ресурсов

Заключение

TorrServer на VPS удобен, когда нужен личный сервер для нескольких устройств и доступ вне домашней сети. Для стандартного проксирования обычно достаточно недорогого VPS с 1–2 ГБ RAM, но тариф следует выбирать по реальному битрейту, лимиту исходящего трафика и правилам провайдера.

Главное — не публиковать порт 8090 без защиты. Используйте отдельного системного пользователя, встроенную авторизацию, HTTPS или приватную VPN и официальный механизм обновления.

Полезные ссылки

Ресурс TorrServer — репозиторий и документация
Ресурс TorrServer releases
Ресурс Lampa
Ресурс Docker Engine
Ресурс Termius
Ссылка termius.com
Ресурс Предыдущая статья о Lampa
Ссылка 0x69.ru

© 2025 - 2026 0x69.ru

Powered by ❤️

Readme.md

whoami 👨‍💻

$ cat /etc/profile

Username: Rianvy
Real name: Максим Александров
Age: 28 Location: Тула, RU
Role: Senior Developer & UI/UX Designer 😎

About

Этот блог — мой personal knowledge base, где я пушу заметки про tech stack, life experience и всё, что триггерит мой interest => 🚀

Contact

Open for collaboration 🤝 — готов к мёрджу идей и совместным проектам.

Stack

💻 ЯП

  • C#, PHP, JavaScript/TypeScript, Python

⚛️ Frontend

  • React / Next.js, Vue.js / Nuxt.js
  • Tailwind CSS / SCSS
  • Адаптивная вёрстка (HTML, CSS, JS) 📱

🔧 Backend

  • Laravel, Node.js / Express / NestJS
  • REST API

🗄️ Базы данных

  • MySQL, PostgreSQL, MongoDB, Redis

🛠️ DevOps

  • Docker, Git, CI/CD, Linux 🐧

🎨 Дизайн и графика

  • Figma — UI/UX дизайн и прототипирование
  • Photoshop — графика и обработка изображений
  • After Effects — моушн-дизайн и анимация 🎬
Мои Open Source проекты 🌟
Название VKify
Описание Мощное браузерное расширение для кастомизации ВКонтакте с блокировкой рекламы, темами оформления, режимом приватности и пользовательским CSS
Название CleanSlate for Reddit
Описание Приватное local-first расширение для очистки постов, комментариев, сохранённых публикаций и голосов Reddit прямо в браузере
Мои проекты 🚀
Название GreenShield VPN
Описание VPN-сервис в Telegram
Социальные сети