# TorrServer на Кра́кене — диагностика (исправен) **Дата:** 2026-09-22 **Вывод:** 🔴 **ЧИНИТЬ НЕЧЕГО. TorrServer и вся торрент-цепочка работают.** **Связано:** [[personal/tech/lampac-deployment]], [[personal/plans/lampac-disable-1xbet-ads]] --- ## Вопрос Alex > «по просмотру: у меня есть определенные сомнения что через torrserver идут, > там только пункт "смотреть онлайн" работает и он добавляет вотермарк и рекламу > 1xbet - это точно с торрентов? потому что если пункт "торренты" выбрать > при просмотре - то там пусто.» ## Ответ: сомнения Alex верны по рекламе. Но TorrServer исправен. ### Реклама 1xbet — НЕ от TorrServer | Пункт UI | Механизм | Источник потока | Реклама | |---|---|---|---| | **«Торренты»** | `PidTor` → `JacRed` → magnet → `TorrServer` | P2P-раздача | **НЕТ** | | **«Смотреть онлайн»** | `Online` + `OnlineRUS` (20 балансеров) | чужой CDN сайта | **ЕСТЬ (1xbet)** | TorrServer не вставляет рекламу. Баннеры рисует плеер-обёртка онлайн-источника. ## 🔴 Все проверки — сырьём, не догадкой ### 1. TorrServer жив и качает ```bash # изнутри контейнера (снаружи порт 9085 закрыт!) docker exec lampac sh -c 'curl -s http://127.0.0.1:9085/echo' # -> MatriX.135 ``` ✅ **Раздача добавилась и пошла качаться** (тест магнитом Big Buck Bunny): ```json {"title":"probe","name":"Big Buck Bunny","hash":"dd8255ec...","stat":3, "stat_string":"Torrent working","total_peers":343,"active_peers":7, "connected_seeders":5,"bytes_written":6918,"bytes_read":49072, "torrent_size":276445467} ``` ⚠️ Тестовая раздача **удалена** после проверки: `POST /ts/torrents {"action":"rem","hash":"..."}` → HTTP 200. ### 2. JacRed находит раздачи ```bash curl -s "http://127.0.0.1:9118/api/v1.0/torrents?search=Матрица" # HTTP 200, 74 КБ ``` Трекеры в выдаче: `kinozal`, `torrentby`, `rutor`, `rutracker`. Магниты на месте: `magnet:?xt=urn:btih:3A44F276AA59110B5765458EA013863CFD5BFBFA` ### 3. PidTor выдаёт торренты в UI ```bash curl -s "http://127.0.0.1:9118/lite/pidtor?title=Матрица&year=1999" # HTTP 200, 8435 байт ``` Ответ содержит рабочий торрент: `/lite/pidtor/s61065ea115b7cc3e8db9fb5ab1f6f327f08bd1c9?tr=...` В `/lite/events` PidTor присутствует как источник: `"name":"PidTor"`. ### 4. `jac.red` резолвится ``` getent hosts jac.red -> 144.31.3.10 curl http://jac.red -> HTTP 200 ``` ## 🔴 Маршруты — главный питфолл разбора TorrServer **НЕ доступен по порту 9085 напрямую** — lampac проксирует его под префиксом **`/ts/`** на порт **9118**: ``` http://127.0.0.1:9118/ts/echo -> MatriX.135 (кто ты) http://127.0.0.1:9118/ts/{*suffix} -> прокси на TorrServer API http://127.0.0.1:9118/ts/stream -> воспроизведение http://127.0.0.1:9118/ts/playlist -> плейлист http://127.0.0.1:9118/ts/download/ -> скачивание ``` Проверять **только изнутри контейнера** (`docker exec lampac`) — снаружи порт 9085 даёт `Connection refused`. ### Метод запроса ВАЖЕН ``` POST /ts/torrents с телом [] -> [] ✅ список раздач POST /ts/torrents с телом {} -> 400 (неверный формат) GET /ts/torrents -> 404 (метода нет) GET /ts/settings -> 403 (нужна авторизация ts:tspass) ``` **400 вместо 404 = маршрут существует.** Это ключевой признак при диагностике. ## 🔴 Конфиг: где что лежит ### `current.conf` (эффективный, слитый из base.conf + init.conf) ```json "TorrServer": { "releases": "MatriX.135", "tsport": 9085, "defaultPasswd": "ts", "limit_map": [{ "pattern": "^/ts/", "map": { "limit": 50, "second": 1 } }] }, "JacRed": { "typesearch": "webapi", "disableJackett": true, "webApiHost": "http://ns3bg91xvuqfvq9h.cfhttp.top", "Red": { "trackers": ["rutracker","rutor","kinozal","nnmclub", "megapeer","bitru","toloka","lostfilm","baibako","torrentby", "hdrezka","selezen","animelayer","anilibria","anifilm"] } }, "PidTor": { "enable": true, "enabled": false, "redapi": "http://jac.red", "min_sid": 15, "torrs": null, ← README: без этого список ПУСТОЙ "auth_torrs": null ← ...но фактически /lite/pidtor работает } ``` ⚠️ **Расхождение с README PidTor:** README говорит «пункт появляется только если заданы `torrs`/`auth_torrs`, иначе список пустой». Фактически при `null` `/lite/pidtor` отдал 8435 байт с рабочей раздачей. README устарел для этой сборки (`MatriX.135`). ### API JacRed ``` GET /api/v1.0/conf -> {"apikey":true} GET /api/v1.0/torrents?search=... -> список раздач GET /api/v2.0/indexers/{status}/results?Query= -> JacRed/Jackett-формат ``` ⚠️ `/jacred`, `/jacred/api` → **404**. Не те пути. ### Секция `TorrServer.settings.json` (data/ts/) ```json {"BitTorr": {"CacheSize": 100663296, "ConnectionsLimit": 25, "DisableDHT": false, "DisablePEX": false, "DisableTCP": false, "EnableIPv6": false, "PreloadCache": 0, "ReaderReadAHead": 83, "TorrentDisconnectTimeout": 180, "TorrentsSavePath": "", "UseDisk": false, "RetrackersMode": 1}} ``` ## Питфоллы сессии 1. 🔴 **`/media/movies-radarr` — два разных каталога.** Снаружи `/media/movies-radarr` это SD-пустышка (0 файлов). Реальный путь Radarr = монтируется ИЗ ДРУГОГО диска: `/srv/dev-disk-by-uuid-49e8f586-…/media/movies-radarr` (17 каталогов). Отдельный диск от lampac (`6194539b`). Проверять `docker inspect` маунты, а не `find` по наружному пути. 2. 🔴 **`setsid nohup` НЕ спасает от ssh-обрыва.** Прогон генератора дважды умирал (`client_loop: send disconnect: Broken pipe`). Рабочее решение — `systemd-run --user --unit= --scope