ru1: паспорт RU entry-ноды (85.198.109.86, VDSina)

This commit is contained in:
Ruslan Gilfanov
2026-06-21 22:03:56 +03:00
parent 818958ace9
commit fa23444148
2 changed files with 57 additions and 1 deletions

55
servers/ru1.md Normal file
View File

@@ -0,0 +1,55 @@
# 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`.