mirror of
https://gitverse.ru/kpa39l/networking-proxy.git
synced 2026-09-29 09:15:02 +00:00
107 lines
3.6 KiB
Markdown
107 lines
3.6 KiB
Markdown
# 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` |