VPN Platform
WireGuard · VLESS+REALITY
DPI Bypass · Multi-server
VPN-платформа: мультисерверная инфраструктура с защитой от DPI-блокировок
Коммерческая VPN с подпиской, гибридными протоколами и selective bypass для Telegram. WireGuard + VLESS+REALITY — два протокола для разных рынков в одной платформе.
2 proto
WireGuard + VLESS+REALITY под разные рынки
table 200
отдельная таблица маршрутизации для bypass
3 phase
многофазные напоминания: 3d / 1d / 0d
✓ live
relay-узлы в нескольких странах, работает
Контекст
Коммерческая VPN-платформа coeur VPN с подпиской, ботом (@coeurvpn_bot), Cryptomus + Robokassa-оплатой. Мультисерверная архитектура: Backend API, RU VPN серверы, Relay NL, World VPN. Стек: FastAPI + aiogram + WireGuard + VLESS.
FastAPI backend
aiogram bot
Cryptomus
Проблема
WireGuard блокируется DPI по характеристикам трафика на ряде рынков. После настройки маршрутизации — Telegram голос/видео переставал работать: UDP-пакеты уходили в туннель, но серверы Telegram не отвечали через VPN-IP.
DPI blocks WireGuard
Telegram calls broken
UDP routing conflict
Мультисерверная архитектура
Гибридный стек: два протокола, relay-узлы, selective bypass
Клиент → Bot/API → выбор протокола по региону → туннель → интернет. Telegram UDP идёт напрямую через bypass.
Client
iOS · Android
macOS · Windows
Telegram Bot
Backend API
FastAPI · ARQ
89.169.55.86
PostgreSQL · Redis
RU VPN #1/2
WireGuard
стандартные рынки
WireGuard
Internet
+selective
bypass
Relay NL
VLESS+REALITY
185.93.104.56
VLESS+REALITY
World VPN
DPI-рынки
RU / CN / IR
DPI bypass
WireGuard — стандарт
VLESS+REALITY — DPI-рынки
Backend + Redis + PostgreSQL
Relay NL — промежуточный узел
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.8.0.1/24
PostUp = iptables -A FORWARD \
-i wg0 -j ACCEPT
PostUp = iptables -t nat -A \
POSTROUTING -o eth0 -j MASQUERADE
# ❌ весь трафик клиента → wg0
# Telegram UDP серверы не отвечают
# через VPN IP → звонки рвутся
# Создаём ipset с IP Telegram серверов
ipset create telegram_ips hash:net
ipset add telegram_ips 149.154.160.0/20
ipset add telegram_ips 91.108.4.0/22
ipset add telegram_ips 91.108.56.0/22
# fwmark для Telegram UDP → таблица 200
iptables -t mangle -A PREROUTING \
-m set --match-set telegram_ips dst \
-p udp -j MARK --set-mark 0x200
# Таблица 200: маршрут в обход туннеля
ip rule add fwmark 0x200 table 200
ip route add default via $GW table 200
[Interface]
PostUp = bash /etc/wireguard/bypass.sh up
PostDown = bash /etc/wireguard/bypass.sh down
# /etc/wireguard/bypass.sh
GW=$(ip route | grep default | awk '{print $3}')
# 1. ipset с CIDR блоками Telegram
ipset create tg hash:net 2>/dev/null || true
# ... add all Telegram CIDR blocks
# 2. mangle: помечаем UDP к Telegram
iptables -t mangle -A PREROUTING \
-m set --match-set tg dst -p udp \
-j MARK --set-mark 0x200
# 3. policy routing: fwmark → table 200
ip rule add fwmark 0x200 table 200 prio 100
ip route add default via $GW dev eth0 table 200
# ✓ Telegram UDP → eth0 напрямую
# ✓ остальной трафик → wg0 туннель
# Характеристики WG-трафика:
# UDP фиксированный порт 51820
# - размер пакетов инициации 148 b
# - фиксированный header паттерн
# - UDP без вариации порта
# ❌ легко детектируется и блокируется
[Interface]
ListenPort = 51820 # известный порт
# config.json (xray-core)
{
"protocol": "vless",
"streamSettings": {
"security": "reality",
"realitySettings": {
"dest": "google.com:443",
"serverNames": ["google.com"],
// ✓ трафик = TLS к google.com
// ✓ DPI не отличает от легит.
}}}
# Фазы напоминания
PHASES = {"3d": 3, "1d": 1, "0d": 0}
async def notify_expiring(ctx):
redis: Redis = ctx["redis"]
for phase, days in PHASES.items():
subs = await get_expiring(days)
for sub in subs:
# Дедупликация через Redis key
key = f"notif:{sub.user_id}:{phase}"
if await redis.exists(key):
continue # уже отправлено
await bot.send_message(
sub.user_id, TEXTS[phase][sub.lang]
)
# Флаг на 4 дня → нет дублей
await redis.setex(key, 86400*4, "1")
Реализованные решения:
✓ Telegram UDP bypass
✓ VLESS+REALITY
✓ policy routing 200
✓ Redis dedup
Результат
Платформа работает на мультисерверной инфраструктуре с relay-узлами в нескольких странах. Telegram-звонки работают корректно при активном VPN. Уровень продления подписок вырос после внедрения системы уведомлений. VLESS+REALITY обеспечивает работу на рынках с активным DPI.
WireGuard
VLESS+REALITY · xray-core
ipset + fwmark
policy routing · table 200
FastAPI · ARQ
aiogram · Telegram bot
Redis · dedup
Cryptomus