181 lines
8.1 KiB
Markdown
181 lines
8.1 KiB
Markdown
# 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 **отсекаются**. Возможно, поэтому пусто
|