Files
obsidian-vault/personal/tech/lampac-torrserver.md
T

181 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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":"Pid<s>T</s>or"`.
### 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=<name> --scope <script>`: отвязывает от сессии.
3. 🔴 **`strings` в контейнере не даёт маршрутов TS** — пустой вывод. Смотреть
`README.md` модуля и **пробовать запросы** (404 vs 400), а не парсить бинарник.
4. 🔴 **`vast.js` и `modification.js` — НЕ источники рекламы.** VASTPlayer
не подключён в `sisi/index.html`; `modification.js` (22 КБ) даёт 0 совпадений
на `1xbet|vast|adTag`, домены только `w3.org`. Реклама от онлайн-источников.
## Если «Торренты» всё же пусто у Alex — что проверить
1. Что именно за фильм (есть ли раздачи в принципе — старые/редкие могут быть без сидов)
2. `curl "http://127.0.0.1:9118/lite/pidtor?title=<название>&year=<год>"` — отдаёт ли
3. `docker logs lampac | grep -i pidtor` — доходит ли запрос
4. `min_sid: 15` — раздачи с сидами < 15 **отсекаются**. Возможно, поэтому пусто