Files
networking-proxy/references/ssh-tunnel-telegram-gateway.md
T
2026-09-06 13:51:04 +00:00

107 lines
3.6 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.
# 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`