# ru1 — `85.198.109.86` (RU entry node) VPN entry-нода в РФ. Точка входа в топологии **RU↔DE**: умный роутинг (RU-трафик → напрямую, зарубежный → туннель AWG до de1). Полный runbook — `~/README.md` на сервере. Секреты (MTProxy user-secrets, ключи WG) — только на сервере, не здесь. **Провайдер:** VDSina · РФ **ОС:** Ubuntu 24.04.3 LTS · kernel 6.8.0-78 **Ресурсы:** 1 vCPU / 1.9 GB RAM / 50 GB (swap 2 GB) — маленькая нода **hostname:** `v2911854.hosted-by-vdsina.ru` ## Доступ - `ssh mik@85.198.109.86` (пользователь `mik`, вход по ключу), **passwordless sudo**. ## Интерфейсы - `ens3` — публичный `85.198.109.86/24` (RU интернет, default route via 85.198.109.1) - `tun0` — OpenVPN #1 (умный роутинг) `192.168.255.1/24` - `tun1` — OpenVPN #2 (RU-выход) `192.168.254.1/24` - `wg0` — AmneziaWG туннель до de1 `10.8.1.4/32` - `wg1` — WireGuard для клиентов `10.8.2.1/24` ## Сервисы и порты | Сервис | Порт | Описание | |---|---|---| | OpenVPN #1 | 1194/udp (`tun0`) | умный роутинг: RU→ens3, зарубеж→wg0→de1. Cfg `/etc/openvpn/server/openvpn.conf` | | OpenVPN #2 | 1195/udp (`tun1`) | RU-выход (весь трафик через ens3, DNS Yandex). Cfg `/etc/openvpn/server/ruopenvpn.conf` | | AmneziaWG `wg0` | (awg, `45451/udp`) | туннель до de1 (exit). `awg-quick@wg0`, cfg `/etc/amnezia/amneziawg/wg0.conf`, `Table=off` | | WireGuard `wg1` | 51820/udp | VPN для клиентов (Docker `linuxserver/wireguard`), подсеть `10.8.2.0/24`, `~/wireguard/` | | telemt (MTProxy) | 443 | FakeTLS под `ru.ruzzy.dev`, маска → nginx `127.0.0.1:4443`. API `9091`. Docker, `~/gost/` | | nginx | 80, 4443 | маскировочный сайт `ru.ruzzy.dev` (Docker `nginx:alpine`) | Контейнеры: `telemt`, `wireguard`, `nginx` (docker compose в `~/gost` и `~/wireguard`). ## Умный роутинг (tun0 и wg1) - `ipset ru_ips` (~11400 подсетей, источник ipdeny.com). До routing decision (mangle PREROUTING): - dst ∈ ru_ips → RETURN (без метки) → main table → ens3 (RU напрямую) - иначе → MARK `0x64` → `ip rule fwmark 0x64 → table vpn (100)` → default dev wg0 → de1 - Обновление списка: `~/smart-routing/update-ru-ips.sh`, cron вс 03:00. Восстановление при ребуте: `ipset-restore.service` (до `awg-quick@wg0`). - tun1 — без умного роутинга (всегда RU/ens3). ## AWG Watchdog - `~/awg-watchdog.sh` в root-cron **каждые 3 мин**: если handshake `wg0` старше 5 мин → рестарт `awg-quick@wg0` + чистка дублей iptables. Лог `~/awg-watchdog.log`. (telemt зависит от wg0 — Telegram DC маршрутизируются через туннель до de1.) ## Клиенты - OpenVPN: `~/gen_client.sh --profile de|ru|both <имя>`, PKI `~/easy-rsa/pki`, профили `~/clients/`. CRL отключён. - WireGuard: `~/wireguard/gen_client.sh <имя>` → `~/wireguard/clients/<имя>.conf` (горячее добавление). ## Прочее в `~` - `badvpn`, `gost`, `smart-routing`, `tun2socks.log`, `net-backup`, `works`, `telemt-build`, `cloudflared.deb`. ## Живой статус (2026-06-21) Все юниты active (`awg-quick@wg0`, оба `openvpn-server@`, `ipset-restore`), 3 контейнера up, `wg0` handshake свежий, ipset ru_ips = 11394. ## ⚠️ Грабли (из README) - `wg1.conf` обязан иметь `Table = off` — иначе wg-quick при рестарте сносит default route и сервер теряет SSH (восстановление: `ip route add default via 85.198.109.1 dev ens3`). - Таблица маршрутизации — `vpn` (100), не `awg`.