# Фикс обнаружения и блокировки туннелей: разделение IP + маршрутизация sing-box
**Дата:** 7 апреля 2026
**Источник:** [Dreaght — ntc.party](https://ntc.party/t/фикс-обнаружения-и-блокировки-туннелей-sing-box-маршрутизация/), 2 апреля 2026
**Контекст:** Шпионские модули в РФ-приложениях сливают входной IP VPN-сервера → РКН блокирует сервер. Инфраструктурный фикс на уровне VPS.
**Связанные заметки:**
- [Уязвимость VLESS-клиентов — SOCKS5 на localhost](VLESS-SOCKS5-vulnerability.md)
- [Защита VPN от localhost-атаки](VLESS-localhost-protection-guide.md)
- [Localhost-трекинг Meta/Яндекс](Localhost-tracking-Meta-Yandex-SOCKS5.md)
---
## Оглавление
1. [TL;DR](#1-tldr)
2. [Модель угрозы](#2-модель-угрозы)
3. [Почему sandbox и split-tunneling не спасают](#3-почему-sandbox-и-split-tunneling-не-спасают)
4. [Установка sing-box на сервере](#4-установка-sing-box-на-сервере)
5. [Шаг 1: Купить второй IPv4 на VPS](#5-шаг-1-купить-второй-ipv4-на-vps)
6. [Шаг 2: Разделить входной/выходной IP в sing-box](#6-шаг-2-разделить-входнойвыходной-ip-в-sing-box)
7. [Шаг 3: WARP для неизвестного трафика](#7-шаг-3-warp-для-неизвестного-трафика)
8. [Шаг 4: Direct для доверенных CIDR](#8-шаг-4-direct-для-доверенных-cidr)
9. [Шаг 5: Tor для геоблокированных сервисов](#9-шаг-5-tor-для-геоблокированных-сервисов)
10. [Шаг 6: I2P через VPS](#10-шаг-6-i2p-через-vps)
11. [Шаг 7: SSH через туннель](#11-шаг-7-ssh-через-туннель)
12. [Шаг 8: DNS-разделение RU/Default](#12-шаг-8-dns-разделение-rudefault)
13. [Итоговая архитектура](#13-итоговая-архитектура)
14. [Рекомендация по транспорту](#14-рекомендация-по-транспорту)
15. [Fallback: если только 1 IPv4](#15-fallback-если-только-1-ipv4)
16. [Продвинутый уровень: множественные SNI и балансировка](#16-продвинутый-уровень-множественные-sni-и-балансировка)
17. [Альтернатива WARP: домашний статический IP](#17-альтернатива-warp-домашний-статический-ip-как-входная-точка)
18. [Дополнительные улучшения](#18-дополнительные-улучшения)
19. [Контр-аргументы и известные риски](#19-контр-аргументы-и-известные-риски)
20. [Чеклист](#20-чеклист)
---
## 1. TL;DR
- Шпионские модули в РФ-приложениях (MAX, Яндекс, ВК, и др.) обнаруживают входной IP VPN-сервера и сливают его РКН.
- РКН через логи провайдеров + корреляционную атаку по времени блокирует сервер.
- **Минимальный фикс:** купить второй IPv4, принимать VLESS на входном IP, а выходить в интернет через выходной IP.
- **Расширенная схема:** маршрутизация на VPS через sing-box — WARP, direct, Tor, DNS-разделение.
- Клиентские устройства должны быть «тупыми» — просто гнать весь трафик через VLESS на VPS.
---
## 2. Модель угрозы
### Что подтверждено
1. **MAX содержит шпионский модуль** — разработчики встроили модуль слежки за VPN-пользователями с удалённым управлением, сделали его максимально трудноблокируемым.
2. **РКН продавил закон о логах** — провайдеры обязаны сливать данные (netflow и пр.), позволяющие однозначно идентифицировать абонентов по внутреннему NAT IP.
3. **Active probing** — РКН автоматически прозванивает обнаруженные входные IP VPN-серверов.
### Как работает корреляционная атака
```
1. Шпион в приложении (MAX/VK/Яндекс) → запрос через свой exit IP → логируется на сервере
2. В то же временное окно другой шпион (другое приложение) → запрос через другой exit IP
3. У провайдера: из логов (netflow) → внутренний NAT IP пользователя
4. Два IP в одно время от одного NAT IP → один из них = VPN-туннель
5. Особенно легко при split-tunneling: два разных IP в одном временном окне
```
### Три точки наблюдения (модель деанонимизации)
Для полной деанонимизации входного IP туннеля требуются **минимум 2 из 3** точек:
| # | Точка наблюдения | Статус |
|---|-----------------|--------|
| 1 | **ISP** (логи провайдера, netflow) | Доступ у РКН — закон принят |
| 2 | **Хостер** (VPS-провайдер) | Зависит от юрисдикции |
| 3 | **CF / Конечные сервисы** (шпионские модули) | Активно эксплуатируется |
> Пускание шпионов в DIRECT **ослабляет схему сильнее**, чем «палевные» объёмы трафика к одному IP. Шпион идёт через direct → точно спалитесь. Шпион не идёт через direct → достаточно хорошо.
### Симптомы блокировки
- Периодические обрывы соединений к self-hosted VPS.
- ClientHello доходит, сервер не видит ACK, клиент ими долбится.
- RST-пакеты от лица сервера к клиенту и от клиента к серверу (инжектируемые ТСПУ).
- SSH тоже отваливается.
- Блокировка входного IP со всех локаций сразу.
---
## 3. Почему sandbox и split-tunneling не спасают
| Подход | Почему не работает |
|--------|--------------------|
| **Sandbox / Knox / Shelter / Island** | Loopback-интерфейс общий, шпион и так может обойти изоляцию |
| **Per-app split-tunneling** | Заставляет конечные устройства быть «умными» — рано или поздно ошибёшься. Архитектурно неправильно |
| **Бан конкретных приложений** | Тараканов по одному ловить — тупик. IP утекает сотней способов |
| **Изоляция интерфейса сети (QubesOS-style)** | Нереалистично на смартфонах, заведомо проигрышная борьба |
| **IP-чекеры / блок шпионов** | Невозможно отловить все каналы утечки, пролезут в правила маршрутизации |
| **geoip:ru → WARP без разделения IP** | IP-чекеры вне geoip:ru (ifconfig.me и др.) покажут реальный входной IP сервера. Правилами маршрутизации это не решить |
| **Белые списки на роутере** | CDN-сайты нельзя надёжно IP-листить. Шпион подкинет fake SNI (как Zapret) и обойдёт. Не работает для мобильных устройств без карманного OpenWRT |
| **Отказ от TUN / ручные листы** | Костыльная архитектура. Нет прозрачности, нет надёжности. Когда-нибудь ошибётесь — РКН увидит ошибку в логах |
> **Правильный подход:** инфраструктурный фикс на сервере. Клиенты — тупые, сервер — умный. Никакие костыли на роутере не сравнятся с простым разделением ingress/egress IPv4 + полное туннелирование.
---
## 4. Установка sing-box на сервере
sing-box и Xray — практически производные от v2ray. sing-box — следующий этап эволюции после Xray, конфиги единообразнее и понятнее.
```bash
# Arch Linux
yay -S sing-box
# Debian/Ubuntu
sudo apt install sing-box
```
- Конфиг: `/etc/sing-box/config.json` — единственный файл конфигурации
- Перезапуск: `systemctl restart sing-box`
- **Документация:** [sing-box.sagernet.org](https://sing-box.sagernet.org/)
> Автор изначально использовал Xray на сервере + sing-box на клиенте, но ушёл полностью на sing-box — единообразнее.
---
## 5. Шаг 1: Купить второй IPv4 на VPS
1. В панели управления VPS → вкладка **«Сеть»** → купить дополнительный белый IPv4.
2. Проверить, что оба IP доступны:
```bash
ip a
```
Должны быть видны:
- **Входной IP** (`X.X.X.X`) — на нём будет слушать sing-box. **Нигде не светить!**
- **Выходной IP** (`Y.Y.Y.Y`) — на него bind outbound. Этот IP увидят шпионы, и это ОК.
- IPv6 выходной (опционально, WARP предоставляет свой).
### Настройка сетевого интерфейса (systemd-networkd)
Если нового IP нет в `ip a` после покупки — настройте вручную.
Файл `/etc/systemd/network/20-eth0.network`:
```ini
[Match]
Name=eth0
[Network]
# IPv4 — ПОРЯДОК ВАЖЕН: выходной IP первым (будет дефолтным)!
Address=Y.Y.Y.Y/24
Address=X.X.X.X/24
Gateway=Y.Y.Y.1
# IPv6
Address=YYYY:YYYY:Y:Y::YYYY/64
Gateway=YYYY:YYYY:Y:Y::1
DNS=1.1.1.1
DNS=2606:4700:4700::1111
IPv6AcceptRA=yes
```
> **Критично:** `X.X.X.X` (входной) должен идти **ПОСЛЕ** `Y.Y.Y.Y` (выходной), чтобы выходной был дефолтным в системе!
Перезапустить:
```bash
systemctl restart systemd-networkd
```
---
## 6. Шаг 2: Разделить входной/выходной IP в sing-box
Конфиг `/etc/sing-box/config.json`:
### Inbound — слушать ТОЛЬКО на входном IP
```json
{
"inbounds": [
{
"type": "vless",
"tag": "reality-in",
"listen": "X.X.X.X",
"listen_port": 443,
"...": "остальные параметры VLESS-Reality"
}
]
}
```
> Где `X.X.X.X` — **входной IP**, который нельзя нигде светить.
### Outbound — выходить через выходной IP
```json
{
"outbounds": [
{
"type": "direct",
"tag": "direct",
"inet4_bind_address": "Y.Y.Y.Y"
}
]
}
```
> Где `Y.Y.Y.Y` — **выходной IP**. Его и увидят шпионы — но заблокировать по нему входной IP уже не смогут.
### Подстраховка для других outbound
Если есть другие outbound (upstream прокси, WARP и т.д.) — добавить `inet4_bind_address` и туда:
```json
{
"type": "direct",
"tag": "some-other-outbound",
"inet4_bind_address": "Y.Y.Y.Y"
}
```
> **Это минимальный фикс.** Его одного уже достаточно, чтобы закрыть основную уязвимость.
---
## 7. Шаг 3: WARP для неизвестного трафика
Зачем: выходной IP принадлежит ASN датацентра → сервисы типа Кинопоиск не откроются. WARP даёт «резидентный» IP.
Цепочка: `Me → VLESS → WARP → Неизвестный трафик`
### Генерация конфига WARP
С VPS выполнить (инструкции из репозитория [WARP-клиента](https://github.com/ViRb3/wgcf)):
```bash
wgcf register
wgcf generate
```
### Endpoint в sing-box
```json
{
"endpoints": [
{
"type": "wireguard",
"tag": "warp-ep",
"system": false,
"name": "wg0",
"mtu": 1280,
"address": [
"172.16.0.2/32",
"fd01:5ca1:ab1e:8d97:ef27:3f9b:aa5c:1234/128"
],
"private_key": "ВАШ_ПРИВАТНЫЙ_КЛЮЧ=",
"domain_resolver": "google",
"peers": [
{
"address": "engage.cloudflareclient.com",
"port": 2408,
"public_key": "bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=",
"allowed_ips": [
"0.0.0.0/0",
"::/0"
]
}
]
}
]
}
```
> Замените `address`, `private_key` на значения из сгенерированного `wgcf-profile.conf`. `public_key` пира — стандартный CF WARP.
### Риски WARP (предупреждение bolvan, автор Zapret)
> **С 15 апреля 2026** РФ-сервисам приказано банить IP известных VPN, и WARP будет первым. Вероятно лягут: mail.ru, VK, Yandex, Ozon, Avito и пр.
- Русские сайты уже подвисают с WARP (возможно связано с AMS точкой входа).
- **Если РУ-сервисы перестанут открываться через WARP** — пускать их в DIRECT через `geosite-category-ru` (см. шаг 8), а неизвестное через WARP. Или «шлите такие сервисы лесом, это их проблемы» (Dreaght).
- На некоторых ASN (например Ростелеком) не проходит трафик к Cloudflare CDN — проблемы связности на промежуточных хопах.
### WARP: ограничения
- **Не подходит для realtime** (игры, VoIP) — ping jitter.
- **Хорош для вебсайтов** благодаря CDN Cloudflare.
- Для игр → пускать в DIRECT с VPS (игровые порты).
### WARP = резидентский ASN
CloudFlare WARP считается **резидентским** IP. Даже Кинопоиск, который блокирует ASN датацентров, **пускает через WARP**. Госуслуги тоже открываются.
> **Selectel уже ограничил доступ к госуслугам** со своих серверов (апрель 2026). Тренд расширится на другие хостеры. Без WARP или резидентского прокси — РФ-сервисы с VPS не откроются.
### geosite для IP-чекеров
Существует отдельный geosite-список IP-чекеров. Их можно пустить в отдельный outbound (WARP/Tor), чтобы не светить реальный IP:
```json
{
"rule_set": ["geosite-category-ip-checker"],
"action": "route",
"outbound": "warp-ep"
}
```
---
## 8. Шаг 4: Direct для доверенных CIDR
Доверенные сервисы, на чьих CIDR нельзя разместить свой сервер — напрямую в direct без WARP.
Цепочка: `Me → VLESS → Direct → Apple, Telegram, и др.`
### Route rules
```json
{
"route": {
"rules": [
{
"rule_set": ["geoip-apple", "geoip-telegram"],
"action": "route",
"outbound": "direct"
}
]
}
}
```
> Важно: используйте **CIDR / geoip**, а не geosite. Geosite работает через домены — шпион может подставить свой домен в тот же CIDR.
### Что ещё пускать в DIRECT с VPS (уточнение из обсуждения)
- **Игровые порты** + конкретные домены/списки (WARP не подходит для realtime из-за ping jitter)
- **YouTube** — много трафика, не светит наружу IP, считается доверенным
- **BitTorrent** — только с ПК, в DIRECT напрямую (максимизация bandwidth + юр. риски при проксировании)
> WARP хорошо работает с вебсайтами (CDN), но **не предназначен для realtime** (игры, VoIP).
---
## 9. Шаг 5: Tor для геоблокированных сервисов
Некоторые сервисы (OpenAI, Habr, TikTok) блокируют IP датацентров и WARP. Решение — Tor или upstream прокси.
Цепочка: `Me → VLESS → Tor → Геоблокированные сервисы`
### Установка Tor на VPS
```bash
# Debian/Ubuntu
sudo apt install tor
# Arch
sudo pacman -S tor
```
Tor запустится как SOCKS5 прокси на `127.0.0.1:9050`.
### Outbound в sing-box
```json
{
"type": "socks",
"tag": "tor-out",
"server": "127.0.0.1",
"server_port": 9050
}
```
### Route rule
```json
{
"rule_set": ["geosite-openai", "geosite-tiktok"],
"action": "route",
"outbound": "tor-out"
}
```
> Альтернатива Tor: upstream ShadowSocks-прокси (с/без WARP). Современный Tor достаточно быстрый для большинства задач.
---
## 10. Шаг 6: I2P через VPS
Цепочка: `Me → VLESS → I2P`
I2P-роутер работает на самом VPS. Клиент не знает про I2P — просто гонит трафик через VLESS, а VPS маршрутизирует в I2P по правилам.
### Установка I2P на VPS
```bash
# Debian/Ubuntu
sudo apt install i2pd
# Arch
sudo pacman -S i2pd
```
I2P-роутер запустится и создаст HTTP-прокси на `127.0.0.1:4444` и SOCKS на `127.0.0.1:4447`.
### Outbound в sing-box
```json
{
"type": "socks",
"tag": "i2p-out",
"server": "127.0.0.1",
"server_port": 4447
}
```
### Route rule (для .i2p доменов)
```json
{
"domain_suffix": [".i2p"],
"action": "route",
"outbound": "i2p-out"
}
```
---
## 11. Шаг 7: SSH через туннель
SSH слушает ТОЛЬКО на выходном IP → подключение автоматически идёт через VLESS.
Цепочка: `Me → VLESS → SSH (к выходному IP Y.Y.Y.Y) → мой сервер`
### Настройка sshd
В `/etc/ssh/sshd_config`:
```
ListenAddress Y.Y.Y.Y
```
> Пинг от входного IP к выходному IP в подсети хостера — околонулевой. Также можно подключаться через IPv6 если есть.
### Аварийный доступ — через Tor (onion SSH)
Если туннель лёг:
```
Me → Tor bridges → Tor → SSH-over-onion → мой сервер
```
В `/etc/tor/torrc`:
```
HiddenServiceDir /var/lib/tor/ssh/
HiddenServicePort 22 127.0.0.1:22
```
После перезапуска Tor — onion-адрес в `/var/lib/tor/ssh/hostname`.
> Это single-point-of-failure бэкап. Мосты Tor можно получить через email, PGP, GitHub Actions бот.
---
## 12. Шаг 8: DNS-разделение RU/Default
Проблема: Google DNS не возвращает «правильные» IP для РФ-сервисов (госуслуги и т.д.). Решение — форсировать Yandex DNS для RU-сегмента на самом VPS.
```
DNS over VLESS:
RU → Yandex DoU (unencrypted, на VPS)
Default → Google DoT (encrypted)
```
> Не заморачивайте конечные клиенты DNS-правилами — всё на сервере.
### dns.rules — перенаправить RU-домены на Yandex
```json
{
"dns": {
"servers": [
{
"tag": "google",
"address": "tls://8.8.8.8",
"detour": "direct"
},
{
"tag": "local",
"address": "77.88.8.8",
"detour": "direct"
}
],
"rules": [
{
"rule_set": ["geosite-category-ru"],
"server": "local"
}
]
}
}
```
### route.rules — заставить RU-сервисы использовать Yandex DNS
```json
{
"route": {
"rules": [
{
"rule_set": ["geosite-category-ru"],
"action": "resolve",
"server": "local"
}
]
}
}
```
### rule_set — источник списка RU-доменов
```json
{
"route": {
"rule_set": [
{
"tag": "geosite-category-ru",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/runetfreedom/russia-v2ray-rules-dat/release/sing-box/rule-set-geosite/geosite-category-ru.srs"
}
]
}
}
```
---
## 13. Итоговая архитектура
```
Клиент (смартфон / ПК)
│
│ Весь трафик (кроме BitTorrent на ПК)
│
▼
VLESS-XTLS-uTLS-REALITY-xudp-gRPC
│ → входной IP X.X.X.X (скрытый)
│
▼
VPS sing-box (маршрутизатор)
│
├─► RU-сервисы (geosite-category-ru)
│ DNS: Yandex 77.88.8.8
│ → Direct (выходной IP Y.Y.Y.Y)
│
├─► Доверенные CIDR (Apple, Telegram)
│ → Direct (выходной IP Y.Y.Y.Y)
│
├─► Неизвестный трафик (default)
│ DNS: Google 8.8.8.8 DoT
│ → WARP (CF WireGuard)
│
├─► Геоблокированные (OpenAI, TikTok, Habr)
│ → Tor SOCKS5 (localhost:9050)
│ или ShadowSocks (с/без WARP)
│
├─► I2P
│ → I2P-роутер на самом VPS
│
├─► SSH
│ → к выходному IP Y.Y.Y.Y (через VLESS автоматически)
│ → или по IPv6
│ → аварийный: bridges → Tor → SSH-over-onion
│
└─► BitTorrent (только ПК)
→ DIRECT (напрямую, минуя VPN)
Клиент → DIRECT → BitTorrent
```
### Проброс портов на входном IP
```
80/TCP — на входном IP (X.X.X.X)
443/UDP — на входном IP (X.X.X.X)
```
SSH слушать **только** на выходном IPv4 (`Y.Y.Y.Y`).
### Правила маршрутизации
Реализованы на **сервере** по:
- `geosite` / `geoip` — rule_set
- Портам — port matching
- `user_auth` — дифференциация по пользователям
### Принцип
- **Клиенты — тупые.** Только гонят весь трафик через VLESS.
- **VPS — умный.** Вся логика маршрутизации на сервере.
- **Входной IP скрыт.** Шпионы видят только выходной IP (или WARP/Tor IP).
- **Выходной IPv4 — дефолтный** в системе, входной IPv4 — дополнительный.
- **Принуждение DNS:** Yandex DoU для RU-доменов, даже если клиент хотел другой DNS.
---
## 14. Рекомендация по транспорту
**Протокол:** `VLESS-XTLS-uTLS-REALITY-xudp-gRPC`
- **REALITY** — SNI к домену в подсети хостера (не к публичному сайту).
- **gRPC транспорт** — обязателен как минимум. Мультиплексирование gRPC предотвращает триггер «Сибирской блокировки» (корреляция по временным паттернам TCP-соединений).
- После фикса (разделение IP) автор пользовался обычным TCP без мультиплексирования — проблемы исчезли. Но gRPC рекомендуется для подстраховки.
### Аналог для Xray-core
В Xray-core аналог `inet4_bind_address` — параметр **`sendThrough`** в Outbounds:
```json
{
"outbounds": [
{
"tag": "direct",
"protocol": "freedom",
"sendThrough": "Y.Y.Y.Y",
"settings": {}
}
]
}
```
> Документация: [xtls.github.io — OutboundObject](https://xtls.github.io/config/outbound.html)
---
## 15. Fallback: если только 1 IPv4
На нищих промо-тарифах хостеры дают только 1 адрес. В этом случае:
> **Ничего в direct напрямую с VPS не пускать.** Весь трафик — только через WARP/Tor.
Входной и выходной IP совпадают, но шпионы увидят IP CloudFlare (WARP), а не реальный IP сервера. Менее надёжно, чем 2 IP, но лучше чем ничего.
---
## 16. Продвинутый уровень: множественные SNI и балансировка
> Рекомендация NikeProPickMe из обсуждения.
Критическая ошибка большинства — **1 outbound с 1 SNI**. Рекомендуется:
1. **5 outbound с разными SNI** — диверсификация TLS fingerprint
2. **Промежуточная MSK-машина** (VPS в РФ) — не подключается к единственному VLESS-серверу напрямую
3. **Второй зарубежный сервер** с `dnsmasq`, блокирующим `.ru`, `.рф` и `yandex.net`
4. **Балансировка** на MSK-машине: `least_ping` или `round_robin` между зарубежными серверами
Схема:
```
Клиент → MSK VPS (балансировщик)
├─► Зарубежный сервер 1 (SNI-A, SNI-B)
└─► Зарубежный сервер 2 (SNI-C, SNI-D, SNI-E)
└─ dnsmasq: блок .ru/.рф/yandex.net
```
> Это уровень параноидальной безопасности. Базовая схема с 2 IP уже закрывает основную уязвимость.
---
## 17. Альтернатива WARP: домашний статический IP как входная точка
> Предложение knitabsorbed из обсуждения.
Если у вас **белый (статический) домашний IP**, его можно использовать как входную точку для RU-трафика вместо WARP:
```
Me → VLESS → VPS → (RU-трафик) → домашний IP → РФ-сервисы
```
**Плюсы:**
- Не нужен WARP для РФ-сервисов — домашний IP = легитимный резидентский
- Нет рисков бана WARP на госуслугах/сервисах
**Минусы:**
- Не все ISP дают статические IP — схема не универсальна
- Появляется новая точка обслуживания (домашний сервер/роутер)
- Если триггеры корреляции по временным окнам в ТСПУ существуют — слив домашнего IP через direct (допущение)
> Dreaght: «Резидентский прокси — да, это будет работать. Неудобно, появляется новая точка обслуживания.»
---
## 18. Дополнительные улучшения
### XHTTP + разделение up/downstream
Возможно реализовать **XHTTP с разделением upload/download потоков** для дополнительной обфускации. Упоминается в обсуждении как перспективное направление.
### DNS-бойкот вредоносных сервисов
Если сервис блокирует WARP или требует резидентский IP — вместо ослабления схемы (direct) добавить его в DNS-блок:
```json
{
"dns": {
"rules": [
{
"domain_suffix": ["selectel-blocked-service.ru"],
"action": "reject"
}
]
}
}
```
> Принцип Dreaght: **идти дальше, а не сдавать назад**. Ослабление схемы ради удобства одного сервиса — компромисс не в вашу пользу.
---
## 19. Контр-аргументы и известные риски
Честный обзор критики из обсуждения — чтобы принимать решения с открытыми глазами.
### «Один туннель = табличка "я использую VPN"» (aki)
**Аргумент:** Пользователь месяцами держит единственный постоянный коннект к одному IP, гонит сотни ГБ → для провайдера это VPN с вероятностью 99%. Не нужен ML, достаточно простого анализа метаданных. Пакет Яровой = все метаданные сессий хранятся 3 года.
**Контр-аргумент (Dreaght):** Помимо VPN, на один IP постоянно ходят:
- Игры (постоянный коннект, большой трафик)
- Стриминг (один IP, огромный трафик)
- Торренты (один IP)
- Синхронизация облачных дисков (один IP, огромный трафик)
- Корпоративные туннели / домашние серверы — туннелирование не запрещено
Ложных срабатываний будет слишком много. Точечные ручные проверки не масштабируются.
> **Вывод:** риск существует, но на данный момент никого за объёмы трафика к одному IP ещё не банили. Проблема шпионов реальнее.
### CF WARP ≠ резидентский IP (aki)
**Аргумент:** WARP использует IP, принадлежащие ASN13335 (Cloudflare). Определяется как cdn/hosting. Сегодня банки и Кинопоиск пускают, завтра — могут перестать.
**Контр-аргумент (Dreaght):** Пока лично не сталкивался с ограничениями через WARP. Госуслуги, Яндекс, ВК — работают. Если перестанут — шлите такие сервисы лесом, или пускайте RU-сегмент через Yandex DNS + direct на VPS.
> **Вывод:** WARP — не настоящий резидентский, но функционально пока работает как резидентский для РФ-сервисов. Заменить на домашний статический IP (§17) если начнут банить.
### Риск бана всей подсети (SweetPotato)
**Аргумент:** Хостеры выделяют IP из одной подсети. РКН банит подсети целиком. Входной IP может попасть под бан, предназначенный для чужого выходного IP.
> **Вывод:** реальный риск. Входной IP лучше брать из другой подсети, если хостер позволяет. Или у другого хостера.
### CGNAT размывает корреляцию (Dreaght)
Внутренний NAT IP (CGNAT провайдера) может меняться, размывая связку SRC → DST. Общедоступные сети (Wi-Fi, коворкинги) ещё сильнее усложняют идентификацию. Не везде можно привязать конкретную сессию к конкретному человеку.
---
## 20. Чеклист
- [ ] Куплен второй IPv4 на VPS
- [ ] Оба IP видны в `ip a`
- [ ] В systemd-networkd: выходной IP **первым**, входной — вторым
- [ ] `inbounds.listen` = входной IP (X.X.X.X)
- [ ] `outbounds.direct.inet4_bind_address` = выходной IP (Y.Y.Y.Y)
- [ ] Все прочие outbound тоже с `inet4_bind_address` = Y.Y.Y.Y
- [ ] Входной IP не фигурирует ни в каких outbound
- [ ] Проброс портов: 80/TCP и 443/UDP на входном IP
- [ ] SSH слушает **только** на выходном IPv4
- [ ] WARP endpoint настроен (ключи сгенерированы с VPS)
- [ ] I2P-роутер (i2pd) запущен на VPS
- [ ] Tor демон запущен на VPS
- [ ] Tor onion для аварийного SSH доступа
- [ ] DNS: RU → Yandex, Default → Google DoT
- [ ] Route rules: geosite-category-ru → resolve через local DNS
- [ ] Маршрутизация по geosite/geoip/портам/user_auth — на сервере
- [ ] Клиенты настроены гнать ВЕСЬ трафик через VLESS (кроме BitTorrent на ПК)
- [ ] Проверить: `curl ifconfig.me` с клиента → показывает WARP/выходной IP, **НЕ** входной
- [ ] Проверить: госуслуги и РФ-сервисы открываются через туннель