Российские сайты не открываются через VPN: отдельный маршрут на том же сервере

Многие российские сервисы закрывают доступ зарубежным дата-центрам целыми диапазонами, и через VPN банк, госуслуги или маркетплейс перестают открываться. Эта надстройка к обычной установке amneziawg-installer пускает трафик к российским сетям через Cloudflare WARP, а остальной отправляет напрямую с вашего сервера. Второй сервер не нужен. Настоящего российского адреса она не даёт - для него нужен каскад.

Один сервер: второй VPS не нужен Около 11800 российских сетей, список обновляется сам Зарубежный трафик идёт прежним путём

Как это работает

У сервера AmneziaWG появляется второй выход в интернет, и трафик делится по адресу назначения.

Клиент одно подключение Ваш сервер один, здесь развилка сети РФ Cloudflare WARP второй выход Российские сайты видят адрес Cloudflare всё остальное, напрямую Зарубежные сайты видят адрес вашего сервера
Один сервер и два выхода. К российским сетям трафик идёт через Cloudflare WARP, весь остальной - напрямую, как и раньше.

Второй выход на том же сервере

Cloudflare WARP - это обычный WireGuard, и поднять его можно тем же инструментом, который уже стоит на сервере. Отдельно ставить wireguard-tools и поднимать вторую машину не придётся: WARP работает через второй сетевой интерфейс на том же сервере.

Развилка по адресу назначения

Российские сети складываются в отдельную таблицу маршрутов, и трафик клиентов сначала заглядывает туда. Маршрута по умолчанию в этой таблице нет, поэтому всё, чего в ней не нашлось, автоматически уходит прежней дорогой.

Список сетей приходит сам

Сервер подписывается по BGP на фид antifilter.network и получает список российских сетей, на момент проверки около 11800 штук. Он обновляется сам, вести его руками не нужно.

Когда это нужно, а когда нет

Схема решает одну конкретную задачу и не решает соседние.

Она пригодится, если через свой VPN нужен вход на российские сайты, а они из-за зарубежного адреса отказывают: показывает капчу, не пускает в личный кабинет или отклоняет операцию. После настройки трафик к сетям из списка выходит через Cloudflare. Зарубежный по-прежнему идёт напрямую, с адреса вашего сервера.

Чего эта схема не даёт

Российские сайты увидят адрес Cloudflare, а не российский. Сервису, которому достаточно не видеть зарубежный дата-центр, этого хватит; тому, кому нужен именно российский адрес, - нет, и там потребуется каскад со вторым сервером в России.

Ограничения схемы. Адреса WARP общие на многих пользователей, поэтому отдельные сайты могут встретить капчей или гео-ограничением. Схема работает по IPv4. Список ведёт сторонний сервис, и ошибаться он может в обе стороны: не знать какую-то российскую сеть или отдать лишнюю. Российский трафик идёт через вторую обёртку: это добавляет несколько миллисекунд и нагрузку на процессор. Зарубежный трафик идёт прежним путём.

Браться за неё стоит не всегда. Если российские сайты и так открываются, чинить нечего. Если проблема в том, что рубят сам туннель на подходе к серверу, это другая история и лечится она иначе. И если российские адреса можно убрать из туннеля прямо на клиенте, проще задать их списком в его конфиге - тогда российский трафик пойдёт мимо VPN с домашнего адреса.

Что предстоит сделать

Четыре шага, все на одном сервере. Команды - в инструкции, здесь только объём работ.

  1. Профиль WARP.

    Утилита wgcf выпускает конфиг для Cloudflare WARP.

  2. Второй интерфейс и правило маршрутизации.

    Интерфейс поднимается тем же инструментом, что уже стоит на сервере, а правило отправляет трафик клиентов сначала в отдельную таблицу маршрутов.

  3. Подписка на фид.

    Внешний адрес сервера регистрируется в antifilter.network. Без регистрации BGP-сессия не поднимется.

  4. BGP-демон BIRD.

    Он получает список российских сетей и наполняет им таблицу маршрутов.

Две вещи стоит проверить до начала, обе блокирующие: свободна ли таблица маршрутизации 200 и не занят ли BIRD другой задачей. Если BIRD уже работает под что-то своё, его конфиг нельзя заменять целиком - нужные блоки добавляют к существующему.

Проверено, а не пересказано

Схему прислал пользователь, я повторил её у себя целиком.

Автор схемы - @alexfiu4-cyber, обсуждение в issue #103. Я собрал её на стенде от начала до конца поверх обычной установки amneziawg-installer на Ubuntu 24.04: BGP-сессия поднялась, около 11800 сетей встали в таблицу маршрутов, клиент за туннелем стал виден российским сервисам с адреса Cloudflare, а зарубежным - с адреса сервера. По дороге нашлись два места, где исходный рецепт не заводился как есть, оба разобраны в инструкции. Там же таблица поведения при сбоях, включая неприятный случай, когда возврата на прямой выход не происходит.

Частые вопросы

Это VPN с российским IP?
Нет. Российские сайты увидят адрес Cloudflare вместо адреса вашего дата-центра. Сервису, которому достаточно не видеть зарубежный дата-центр, этого хватит. Но сервисам, которым нужен именно российский адрес, адреса Cloudflare не хватит - там понадобится каскад со вторым сервером в России.
Нужен ли для этого второй сервер?
Нет, всё делается на том же сервере, где уже стоит amneziawg-installer. Второй выход в интернет поднимается на нём же отдельным интерфейсом. Это главное отличие от каскада, которому нужны два VPS.
Не сломается ли доступ к зарубежным сайтам?
Нет, зарубежный трафик идёт прежним путём и схема его не касается. В отдельную таблицу маршрутов попадают только российские сети, и маршрута по умолчанию в ней нет. Поэтому всё, чего в этой таблице не нашлось, автоматически уходит обычной дорогой - прямо с вашего сервера.
Откуда берётся список российских сетей?
Сервер получает его по BGP от сервиса antifilter.network. На момент проверки это около 11800 сетей, и они обновляются сами, вести список руками не нужно. Регистрация внешнего адреса сервера в этом сервисе обязательна, без неё BGP-сессия не поднимется.
Что будет, если схема сломается?
Зависит от того, что именно сломалось. Если отвалится фид или остановится BGP-демон, маршруты снимаются и российский трафик возвращается на прямой выход, связь не теряется. Но есть и обратный случай: если сам WARP перестал отвечать, а интерфейс остался поднят, маршруты продолжают вести в никуда, и российские сайты перестают открываться совсем. Автоматического возврата тут нет, поэтому следить надо не только за BGP-сессией, но и за проходимостью второго выхода.
Это входит в установщик?
Нет. Это надстройка поверх обычной установки, отдельная пошаговая инструкция. Второй выход и BGP-демон - другой класс задач, держать их внутри установочного скрипта неправильно. Обновление установщика схему не тронет, но и не восстановит.
Что настраивать на клиентах?
Ничего. Развилка живёт на сервере и работает одинаково для всех подключённых клиентов. Конфиги перевыпускать не нужно, приложение на телефоне или компьютере остаётся прежним.