Check the proxy at startup instead of failing on first use

A proxy pointed at 127.0.0.1 from inside a container reaches the
container itself, and the only sign was a connection error buried in the
first search. Startup now probes the proxy over TCP and says what is
wrong, naming host.docker.internal when loopback was configured.

The README also covers the follow-up trap: even that address fails when
the proxy listens on loopback only, so it shows how to check the bind
address and what to change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Leonid Pershin
2026-09-09 00:29:36 +03:00
co-authored by Claude Opus 5
parent ea19a74c12
commit 380f7bcf31
4 changed files with 57 additions and 5 deletions
+15 -2
View File
@@ -242,8 +242,21 @@ YTDLP_PROXY=socks5h://127.0.0.1:1080
Два подводных камня:
- **`127.0.0.1` внутри контейнера — это сам контейнер.** Если Psiphon или ваш SOCKS запущен на
хосте, укажите `socks5h://host.docker.internal:1080` и добавьте в `compose.yml`
к `extra_hosts` строку `"host.docker.internal:host-gateway"`.
хосте, укажите `socks5h://host.docker.internal:1080` (эта запись в `extra_hosts` уже есть).
Бот проверяет прокси при старте и пишет в лог понятную причину, если тот недоступен.
- **Прокси должен слушать интерфейс, видимый контейнеру.** Даже с `host.docker.internal`
соединение упрётся в `ECONNREFUSED`, если клиент забинден только на loopback. Проверить:
```bash
ss -lntp | grep 1080
```
Если там `127.0.0.1:1080`, разрешите прослушивание всех интерфейсов (в конфиге
psiphon-tunnel-core за это отвечает `ListenInterface`) и закройте порт снаружи файрволом.
Альтернатива без правки прокси — добавить сервису `network_mode: host`, тогда `127.0.0.1:1080`
работает как есть; но при этом перестают действовать `ports` и `extra_hosts`, то есть
`STOAT_DOMAIN` снова начнёт резолвиться публично, а панель нужно будет привязать к
`HOST=127.0.0.1`.
- **ffmpeg не умеет SOCKS.** Поэтому при заданном прокси аудио всегда идёт через yt-dlp, а не
напрямую из CDN — трафик не утекает мимо прокси. Побочный эффект: перемотка становится
медленнее, так как позиция отыгрывается декодированием, а не HTTP-запросом с диапазоном.