Initial commit: Hermes skill networking-proxy

This commit is contained in:
estorozhenko
2026-09-06 13:51:04 +00:00
commit be86a3ff2b
8 changed files with 1389 additions and 0 deletions
+107
View File
@@ -0,0 +1,107 @@
# 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`