Российские сайты не открываются через VPN: отдельный маршрут на том же сервере
Многие российские сервисы закрывают доступ зарубежным дата-центрам целыми диапазонами, и через VPN банк, госуслуги или маркетплейс перестают открываться. Эта надстройка к обычной установке amneziawg-installer пускает трафик к российским сетям через Cloudflare WARP, а остальной отправляет напрямую с вашего сервера. Второй сервер не нужен. Настоящего российского адреса она не даёт - для него нужен каскад.
Как это работает
У сервера AmneziaWG появляется второй выход в интернет, и трафик делится по адресу назначения.
Второй выход на том же сервере
Cloudflare WARP - это обычный WireGuard, и поднять его можно тем же инструментом, который уже стоит на сервере. Отдельно ставить wireguard-tools и поднимать вторую машину не придётся: WARP работает через второй сетевой интерфейс на том же сервере.
Развилка по адресу назначения
Российские сети складываются в отдельную таблицу маршрутов, и трафик клиентов сначала заглядывает туда. Маршрута по умолчанию в этой таблице нет, поэтому всё, чего в ней не нашлось, автоматически уходит прежней дорогой.
Список сетей приходит сам
Сервер подписывается по BGP на фид antifilter.network и получает список российских сетей, на момент проверки около 11800 штук. Он обновляется сам, вести его руками не нужно.
Когда это нужно, а когда нет
Схема решает одну конкретную задачу и не решает соседние.
Она пригодится, если через свой VPN нужен вход на российские сайты, а они из-за зарубежного адреса отказывают: показывает капчу, не пускает в личный кабинет или отклоняет операцию. После настройки трафик к сетям из списка выходит через Cloudflare. Зарубежный по-прежнему идёт напрямую, с адреса вашего сервера.
Чего эта схема не даёт
Российские сайты увидят адрес Cloudflare, а не российский. Сервису, которому достаточно не видеть зарубежный дата-центр, этого хватит; тому, кому нужен именно российский адрес, - нет, и там потребуется каскад со вторым сервером в России.
Ограничения схемы. Адреса WARP общие на многих пользователей, поэтому отдельные сайты могут встретить капчей или гео-ограничением. Схема работает по IPv4. Список ведёт сторонний сервис, и ошибаться он может в обе стороны: не знать какую-то российскую сеть или отдать лишнюю. Российский трафик идёт через вторую обёртку: это добавляет несколько миллисекунд и нагрузку на процессор. Зарубежный трафик идёт прежним путём.
Браться за неё стоит не всегда. Если российские сайты и так открываются, чинить нечего. Если проблема в том, что рубят сам туннель на подходе к серверу, это другая история и лечится она иначе. И если российские адреса можно убрать из туннеля прямо на клиенте, проще задать их списком в его конфиге - тогда российский трафик пойдёт мимо VPN с домашнего адреса.
Что предстоит сделать
Четыре шага, все на одном сервере. Команды - в инструкции, здесь только объём работ.
- Профиль WARP.
Утилита
wgcfвыпускает конфиг для Cloudflare WARP. - Второй интерфейс и правило маршрутизации.
Интерфейс поднимается тем же инструментом, что уже стоит на сервере, а правило отправляет трафик клиентов сначала в отдельную таблицу маршрутов.
- Подписка на фид.
Внешний адрес сервера регистрируется в antifilter.network. Без регистрации BGP-сессия не поднимется.
- BGP-демон BIRD.
Он получает список российских сетей и наполняет им таблицу маршрутов.
Две вещи стоит проверить до начала, обе блокирующие: свободна ли таблица маршрутизации 200 и не занят ли BIRD другой задачей. Если BIRD уже работает под что-то своё, его конфиг нельзя заменять целиком - нужные блоки добавляют к существующему.
Проверено, а не пересказано
Схему прислал пользователь, я повторил её у себя целиком.
Автор схемы - @alexfiu4-cyber, обсуждение в issue #103. Я собрал её на стенде от начала до конца поверх обычной установки amneziawg-installer на Ubuntu 24.04: BGP-сессия поднялась, около 11800 сетей встали в таблицу маршрутов, клиент за туннелем стал виден российским сервисам с адреса Cloudflare, а зарубежным - с адреса сервера. По дороге нашлись два места, где исходный рецепт не заводился как есть, оба разобраны в инструкции. Там же таблица поведения при сбоях, включая неприятный случай, когда возврата на прямой выход не происходит.