Files
infra/servers/ru1.md

4.0 KiB
Raw Blame History

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 0x64ip 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.