84 lines
3.0 KiB
Markdown
84 lines
3.0 KiB
Markdown
---
|
|
title: "Точечные маршруты Telegram API через AmneziaWG VPN"
|
|
date: 2026-10-19
|
|
tags: [telegram, vpn, amneziawg, routing, network, hermes]
|
|
---
|
|
|
|
# Telegram API через AmneziaWG VPN: точечные маршруты
|
|
|
|
**Проблема:** ISP блокирует Telegram API (ConnectTimeout на `api.telegram.org`). AmneziaWG VPN на `192.168.1.147` обходит DPI, но направлять **весь** трафик Hermes LXC (`192.168.1.44`) через VPN нельзя — провайдер LLM (polza.ai) перестаёт работать при полном туннелировании.
|
|
|
|
**Решение:** точечные статические маршруты — только подсети Telegram API через VPN-шлюз, остальной трафик напрямую через Keenetic.
|
|
|
|
## Сеть
|
|
|
|
| Устройство | IP | Роль |
|
|
|---|---|---|
|
|
| Keenetic Giga | 192.168.1.1 | Основной шлюз (default gateway) |
|
|
| Hermes LXC | 192.168.1.44 | Hermes Agent (TUI, gateway) |
|
|
| VPN-шлюз LXC | 192.168.1.147 | Docker + AmneziaWG (awg0) |
|
|
|
|
## Подсети Telegram API
|
|
|
|
```
|
|
149.154.160.0/20
|
|
91.108.56.0/22
|
|
91.108.4.0/22
|
|
91.108.8.0/22
|
|
```
|
|
|
|
## Команды
|
|
|
|
```bash
|
|
# Добавить маршруты (вручную)
|
|
ip route add 149.154.160.0/20 via 192.168.1.147
|
|
ip route add 91.108.56.0/22 via 192.168.1.147
|
|
ip route add 91.108.4.0/22 via 192.168.1.147
|
|
ip route add 91.108.8.0/22 via 192.168.1.147
|
|
|
|
# Проверить
|
|
ip route get 149.154.166.110
|
|
# → 149.154.166.110 via 192.168.1.147 dev eth0 src 192.168.1.44
|
|
|
|
curl -v --connect-timeout 10 https://api.telegram.org
|
|
# → TLS handshake (успех)
|
|
```
|
|
|
|
## Автоматическое восстановление после перезагрузки
|
|
|
|
Файл: `/etc/network/if-up.d/telegram-vpn-routes`
|
|
|
|
```bash
|
|
#!/bin/sh
|
|
ip route add 149.154.160.0/20 via 192.168.1.147 2>/dev/null
|
|
ip route add 91.108.56.0/22 via 192.168.1.147 2>/dev/null
|
|
ip route add 91.108.4.0/22 via 192.168.1.147 2>/dev/null
|
|
ip route add 91.108.8.0/22 via 192.168.1.147 2>/dev/null
|
|
```
|
|
|
|
```bash
|
|
chmod +x /etc/network/if-up.d/telegram-vpn-routes
|
|
```
|
|
|
|
## Проверка работы Telegram backend в Hermes
|
|
|
|
```bash
|
|
journalctl -u hermes-gateway --no-pager -n 20 | grep telegram
|
|
```
|
|
|
|
Успешное подключение:
|
|
```
|
|
[Telegram] Connected to Telegram (polling mode)
|
|
```
|
|
|
|
Если контейнер `amneziawg-client` на 1.147 упал:
|
|
|
|
```bash
|
|
ssh 192.168.1.147 "docker start amneziawg-client"
|
|
```
|
|
|
|
## Важно
|
|
|
|
- **Только Telegram** идёт через VPN. Polza.ai, web_search, и остальной трафик Hermes — напрямую через Keenetic.
|
|
- Если контейнер `amneziawg-client` на 1.147 не работает — Telegram backend не сможет подключиться (маршруты есть, но awg0 нет).
|
|
- При добавлении новых подсетей Telegram API обновить и скрипт `/etc/network/if-up.d/telegram-vpn-routes`. |