80 lines
7.4 KiB
Markdown
80 lines
7.4 KiB
Markdown
# Прозрачный прокси контейнера через Shadowsocks и tun2socks
|
||
|
||
У меня есть Docker-контейнер Audiobookshelf, в котором я слушаю аудио-книги и подкасты. Он сам скачивает подкасты
|
||
из интернета и это очень удобно (все нужные мне подкасты в одном месте). Работал контейнер на домашнем NAS Synology
|
||
(в нем есть Docker Station с веб-интерфейсов). Книг у меня в "библиотеке" уже более тысячи, а подкастов и того больше,
|
||
так что домашний NAS с доступом из интернет -- идеальное решение.
|
||
|
||
Все отлично работало и подкасты обновлялись, пока не настало DPI. Где-то в первой декаде января 2026 подкасты перестали
|
||
обновляться. Проверки показали, что это из-за блокировок на уровне провайдера. Mp3-файлы файлы размещены на
|
||
DigitalOcean, и заблокирован именно он. Audiobookshelf получает ссылки через RSS-фиды, видит новые эпизоды, и зависает
|
||
при скачивании.
|
||
|
||
## Как решить проблему DPI?
|
||
|
||
Как все работало до блокировок:
|
||
|
||
### Старая схема
|
||
|
||
```text
|
||
Интернет
|
||
▲
|
||
│
|
||
│
|
||
┌─Docker (на Synology)──────┐ скачивание подкастов ┌────┴─────┐
|
||
│ Audiobookshelf ├─────────────────────────────►│ Роутер │
|
||
└──────────────────┬────────┘ └────▲─────┘
|
||
│ │
|
||
│ для прослушивания │
|
||
│ (порт 8000) │
|
||
│ │
|
||
┌─Host (Orange Pi)─▼────────┐ для прослушивания c SSL │
|
||
│ Nginx Proxy ├───────────────────────────────────┘
|
||
└───────────────────────────┘
|
||
```
|
||
|
||
Контейнер Audiobookshelf на Synology работает по 8000 порту. Nginx на Orange Pi 5 Plus проксирует на этот порт на
|
||
IP-адресе Synology, добавляет SSL и обновляет сертификат Let's Encrypt (на самом деле у меня для этой цели используется
|
||
Traefik на k3s и все еще проходдит через VIP-адрес Keepalive, но для простоты я опускаю эти детали). На роутере
|
||
настройка проброс 443-порта на Orange Pi. Внешний DNS настроен на IP-адрес роутера (A- и AAAA-записи) и так я могу
|
||
слушать подкасты из любой точки мира.
|
||
|
||
Скачивание подкастов внутри Audiobookshelf идет напрямую. Контейнер сразу обращается к Роутеру и пытается скачать
|
||
mp3-файл. И это ему не удаётся из-за DPI.
|
||
|
||
### Новая схема
|
||
|
||
К счастью, проверки показали, что у провайдеров (даже у Российских) нет блокировок DigitalOcean. А значит эпизоды
|
||
подкастов можно скачать на VPS/VDS виртуалке, и нужно только настроить Audiobookshelf так, чтобы он скачивал mp3-файлы
|
||
через прокси. При этом прослушивание книг и подкастов должно работать по старой схеме, без изменений.
|
||
|
||
Как-то так:
|
||
```text
|
||
Интернет Интернет
|
||
▲ ▲
|
||
│ │
|
||
│ │
|
||
┌─VPS/VDS (Hosting)────────────┐ │ для прослушивания
|
||
│ VPN (Shadowsocks Server) │ │ (SSL)
|
||
└──────────────────────▲───────┘ │
|
||
╚═════════════════════╗ │
|
||
┌──▲────▲──┐
|
||
│ Роутер │
|
||
└──▲────▲──┘
|
||
║ │
|
||
для скачивания ║ └──────────────┐
|
||
(канал-VPN) ║ │
|
||
···Docker Compose (на Synology)································ ║ ·············· │
|
||
: ║ : │
|
||
: ┌────────────────┐ ┌───────────────┐ ┌─────────▲──────────┐ : ▲
|
||
: │ Audiobookshelf ├─────►│ tun2socks ├────────►│ shadowsocks/SOCKS5 │ : │
|
||
: └────────────────┘ └───────┬───────┘ └────────────────────┘ : │
|
||
: │ для прослушивания : │
|
||
··································· │ ·········································· │
|
||
│ (порт 8000) ▲
|
||
┌─Host (Orange Pi)─▼────────┐ для прослушивания c SSL │
|
||
│ Nginx Proxy ├──────────────────────────────────────┘
|
||
└───────────────────────────┘
|
||
```
|
||
|