mirror of
https://gitverse.ru/kpa39l/networking-proxy.git
synced 2026-09-29 09:15:02 +00:00
Initial commit: Hermes skill networking-proxy
This commit is contained in:
@@ -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`
|
||||
Reference in New Issue
Block a user