# SSH Tunnel: Telegram API via WireGuard + SOCKS5 ## Контекст Telegram Bot API заблокирован на сервере (Россия, DPI). Решение: SSH SOCKS5 туннель через VPS01 по WireGuard. ## Схема подключения ``` bigbox (este сервер) ├── wg0 — 10.8.0.2/24 ├── VPS01 — 10.8.0.1 (WireGuard IP), 5.129.217.146 (внешний) ├── Остальные: VPS02 (87.242.100.206), VPS03 (80.209.240.167) └── SSH SOCKS5: 127.0.0.1:1080 через root@10.8.0.1 (WireGuard адрес VPS01) ``` ## Текущая конфигурация (2026-07-15) **Режим: SOCKS5 (-D).** Ранее был TCP forward (-L 127.0.0.1:8444:api.telegram.org:443), переключено на SOCKS5 для поддержки TELEGRAM_PROXY и удалённого DNS. ### WireGuard - Интерфейс: `wg0` - Адрес bigbox: `10.8.0.2/24` - Маска: `/24` - Сервис: `wg-quick@wg0.service` — автостарт после загрузки - Jump host: VPS01 (5.129.217.146, root, key timewebVPS) ### SSH SOCKS5 туннель ```ini ExecStart=/usr/bin/ssh \ -i /mnt/yandex-disk/.ssh_box/timewebVPS \ -D 127.0.0.1:1080 \ -N \ -o ServerAliveInterval=30 \ -o ServerAliveCountMax=3 \ -o ExitOnForwardFailure=yes \ root@10.8.0.1 ``` - Сервис: `telegram-tunnel.service` - Файл: `/etc/systemd/system/telegram-tunnel.service` - Ключ: `/mnt/yandex-disk/.ssh_box/timewebVPS` (совпадает с `~/.ssh/timewebVPS`, хранится на Yandex.Disk davfs) - Автостарт: включён (`systemctl enable telegram-tunnel.service`) ### Hermes Gateway - Сервис: `hermes-gateway.service` - В `.env` (`~/.hermes/.env`): - `TELEGRAM_BOT_TOKEN=8620910071:...` - `TELEGRAM_PROXY=socks5://127.0.0.1:1080` - Gateway читает `TELEGRAM_PROXY` через `resolve_proxy_url()` и использует socks5 - В venv должен быть `aiohttp-socks` (установлен) - DNS резолвится на VPS01 (обход блокировки DNS) ### SSH конфиг (`~/.ssh/config`) ``` Host vps01 Hostname 5.129.217.146 User root IdentityFile ~/.ssh/timewebVPS IdentitiesOnly yes ForwardAgent yes ``` ### Проверка после перезагрузки ```bash # 1. WireGuard ip addr show wg0 # 2. SOCKS5 туннель systemctl status telegram-tunnel ss -tlnp | grep 1080 # 3. Gateway systemctl status hermes-gateway # 4. Telegram API доступен через SOCKS5 TOKEN=$(grep -a TELEGRAM_BOT_TOKEN ~/.hermes/.env | grep -v "^#" | cut -d= -f2-) curl -s --socks5 127.0.0.1:1080 "https://api.telegram.org/bot${TOKEN}/getMe" # 5. IP выходит через VPS01 curl -s --socks5 127.0.0.1:1080 https://httpbin.org/ip # 6. Логи туннеля journalctl -u telegram-tunnel --since "1 hour ago" ``` ## Порядок старта после перезагрузки 1. Сеть → `network-online.target` 2. Yandex.Disk davfs → `/etc/fstab` (ключи на FUSE) 3. WireGuard → `wg-quick@wg0.service` 4. SSH SOCKS5 туннель → `telegram-tunnel.service` 5. Hermes Gateway → `hermes-gateway.service` ## Заметка в Obsidian Создана: mozg → homelab/hermes/Gateway Telegram tunnel.md ## История изменений - 2026-07-15: Переход с TCP forward (-L 8444) на SOCKS5 (-D 1080) - Причина: поддержка TELEGRAM_PROXY, удалённый DNS, единый порт для нескольких сервисов - Добавлено: `TELEGRAM_PROXY=socks5://127.0.0.1:1080` в `.env`