Автоматический запуск WireGuard VPN при подключении к сети с маршрутизацией только российских IP-адресов через Cloudflare WARP.
Cloudflare WARP — бесплатный VPN на базе WireGuard. Стандартная конфигурация направляет через VPN весь трафик, что замедляет работу с зарубежными сайтами.
Данный проект решает эту задачу: через VPN идёт только трафик к российским IP-адресам (заблокированные ресурсы), всё остальное работает напрямую. Список российских адресов автоматически обновляется при каждом подключении к сети.
Подключение к сети (EventID 10000)
│
▼
Планировщик задач запускает Update-Warp-RU.ps1
│
├─ Туннель не запущен + обновление уже было сегодня
│ → Восстановить туннель без обновления баз → выход
│
├─ Обновление уже было сегодня + туннель работает → выход
│
└─ Полный цикл обновления:
├─ Синхронизирует sources.txt с GitHub (таймаут 5 сек)
├─ Скачивает актуальный список RU IP-адресов
├─ Сравнивает с предыдущим (по хэшу)
│
├─ Список не изменился + туннель работает → выход
├─ Список не изменился + туннель не запущен → запустить туннель
├─ Список изменился + туннель работает → wg syncconf (без разрыва)
└─ Список изменился + туннель не запущен → Build-Config → Install-Tunnel
Обновление маршрутов происходит через wg syncconf — без остановки туннеля и без разрыва активных соединений.
Восстановление после потери интернета: если при старте Windows сеть была недоступна и туннель упал — при появлении сети скрипт восстанавливает туннель используя уже имеющийся конфиг, без повторного скачивания баз.
- Windows 10 / Windows 11 (x64)
- PowerShell 5.1 (встроен в Windows)
- Доступ в интернет при установке
- Права администратора
Скачайте архив и распакуйте в любую папку (например C:\Downloads\warp-ru).
В папке должны быть:
install.cmd
install.ps1
uninstall.ps1
Update-Warp-RU.ps1
sources.txt
Правой кнопкой на install.cmd → Запуск от имени администратора
Скрипт автоматически:
- Предложит подтверждение перед началом установки
- Скачает и установит WireGuard (если не установлен)
- Скачает
wgcfдля регистрации в Cloudflare WARP - Зарегистрирует новый аккаунт WARP и создаст
warp-base.conf - Скопирует скрипты в
C:\WireGuardProject\и скроет папку - Создаст задачу планировщика на автозапуск при подключении к сети
- Автоматически запустит основной скрипт для первоначальной настройки
После установки основной скрипт запускается автоматически и:
- Синхронизирует
sources.txtс GitHub - Скачивает список RU IP-адресов
- Устанавливает и активирует туннель warp-ru
В окне WireGuard GUI должен появиться туннель warp-ru в статусе Active.
C:\WireGuardProject\ ← папка скрыта
├── Update-Warp-RU.ps1 — основной скрипт автозапуска
├── install.ps1 — скрипт установки
├── install.cmd — запуск установки
├── uninstall.ps1 — скрипт удаления
├── uninstall.cmd — запуск удаления
├── run-update.cmd — обычный запуск основного скрипта
├── test-tunnel-status.ps1 — проверка статуса туннеля
├── test-syncconf.ps1 — тест wg syncconf
├── sources.txt — список URL источников RU IP (синхронизируется с GitHub)
├── warp-base.conf — базовый конфиг WARP с ключами (не удалять!)
├── warp-ru.conf — генерируемый конфиг с RU маршрутами
├── warp-peer.conf — временный файл для wg syncconf
├── ru-last.txt — последний скачанный список RU IP
├── ru-last-run.txt — дата последнего успешного полного запуска
├── warp.log — лог работы (последние 200 строк)
└── warp-ru-generator.html — генератор конфига для Android
Важно:
warp-base.confсодержит приватные ключи WARP. Не публикуйте этот файл.
Список источников хранится в файле sources.txt в репозитории:
AlexandrVK/WireGuardProjectRu/sources.txt
При каждом запуске скрипт автоматически синхронизирует локальный sources.txt с GitHub (таймаут 5 секунд — если GitHub недоступен, используется локальная копия). Если все источники в sources.txt оказались недоступны — скрипт принудительно обновляет sources.txt без таймаута и пробует снова.
Для добавления или замены источника достаточно отредактировать файл на GitHub — основной скрипт трогать не нужно.
Формат файла: один URL на строку, строки с # — комментарии.
Текущие источники:
ipverse/country-ip-blocks— данные из всех 5 RIR, агрегированные, обновляются ежедневноTravisun/Latest-Country-IP-List— обновляется ежедневноebrasha/cidr-ip-ranges-by-country— резервный источник
Для использования WireGuard WARP-RU на Android рекомендуется приложение WG Tunnel — бесплатный open-source клиент с поддержкой импорта конфига прямо из zip-архива без распаковки.
Установите приложение из Google Play: play.google.com/store/apps/details?id=com.zaneschepke.wireguardautotunnel
Или из F-Droid (open-source альтернатива Play Store).
warp-base.conf создаётся автоматически при установке на Windows. Найдите его в рабочей папке проекта и скиньте на телефон любым удобным способом (Telegram, Google Drive, USB и т.п.).
Как получить
warp-base.confвручную (если проект на Windows ещё не установлен):
- Скачайте
wgcf_*_windows_amd64.exeсо страницы релизов: github.com/ViRb3/wgcf/releases, переименуйте файл вwgcf.exeи положите, например, вC:\wgcf\- Откройте командную строку от имени администратора (
Win+R→cmd→ правая кнопка → Запуск от имени администратора)- Перейдите в папку с файлом:
cd C:\wgcf- Зарегистрируйте аккаунт WARP и сгенерируйте конфиг:
wgcf.exe register --accept-tos wgcf.exe generate- В папке появится
wgcf-profile.conf— переименуйте его вwarp-base.confи скиньте на телефон. Файлыwgcf-account.tomlиwgcf.exeпосле этого можно удалить.
Откройте в браузере телефона онлайн-генератор:
https://alexandrvk.github.io/WireGuardProjectRu/warp-ru-generator.html
- Выберите
warp-base.conf— приложение запомнит его для следующих запусков - Нажмите Сгенерировать и скачать
- В папку загрузок сохранится файл
warp-ru.zipс готовымwarp-ru.confвнутри
- Откройте WG Tunnel
- Нажмите + → Import from file
- Выберите скачанный
warp-ru.zip— приложение распакует архив и импортирует конфиг автоматически - Туннель warp-ru появится в списке — нажмите переключатель для подключения
Список российских IP меняется. Для обновления достаточно повторить Шаг 3 — сгенерировать новый warp-ru.zip и импортировать его поверх существующего туннеля в WG Tunnel.
warp-base.confпри этом менять не нужно — он постоянный.
WireGuard в Windows управляет туннелями через WireGuard Manager — фоновую службу. При установке туннеля:
- Конфиг
.confкопируется вC:\Program Files\WireGuard\Data\Configurations\ - Manager шифрует его в
.conf.dpapiи удаляет оригинал - Запускается именованная служба
WireGuardTunnel$warp-ru
Статус туннеля проверяется через wg show warp-ru — прямой запрос к WireGuard.
C:\WireGuardProject\run-update.cmd
C:\WireGuardProject\test-tunnel-status.ps1
C:\WireGuardProject\test-syncconf.ps1
Заменяет AllowedIPs на базовый список и выводит wg show до и после. Для восстановления удалите ru-last.txt и запустите run-update.cmd.
# Проверить через какой интерфейс пойдёт пакет к RU-адресу
Find-NetRoute -RemoteIPAddress "5.8.8.8" | Select-Object InterfaceAlias, NextHop
# InterfaceAlias должен показать warp-ru
# Счётчики трафика туннеля
& "C:\Program Files\WireGuard\wg.exe" show warp-ruGet-Content C:\WireGuardProject\warp.logЛог хранит последние 200 строк и автоматически ротируется.
Пример успешного запуска:
2026-03-10 09:38:43 - === Запуск Update-Warp-RU ===
2026-03-10 09:38:45 - WireGuardManager запущен — OK
2026-03-10 09:38:45 - Предусловия OK
2026-03-10 09:38:45 - Интернет доступен
2026-03-10 09:38:45 - sources.txt обновлён с GitHub
2026-03-10 09:38:45 - Источников в sources.txt: 3
2026-03-10 09:38:46 - RU список скачан (131 КБ)
2026-03-10 09:38:46 - RU список не изменился
2026-03-10 09:38:46 - Туннель установлен: True | Запущен: True
2026-03-10 09:38:46 - Туннель установлен, запущен, список актуален — выходим
2026-03-10 09:38:46 - Дата запуска сохранена: 2026-03-10
Правый клик на C:\WireGuardProject\uninstall.cmd → Запуск от имени администратора
Скрипт предложит подтверждение, затем удалит:
- Туннель warp-ru (если активен)
- Задачу планировщика
WireGuard-WARP-RU - WireGuard (программа)
- Папку
C:\WireGuardProjectсо всеми файлами
Проверьте лог: C:\WireGuardProject\warp.log
Убедитесь что задача планировщика существует и не отключена:
Get-ScheduledTask -TaskName "WireGuard-WARP-RU"Запустите run-update.cmd для принудительного запуска и проверки.
Запустите run-update.cmd вручную. При следующем сетевом событии скрипт восстановит туннель автоматически.
Проверьте что warp-base.conf содержит валидные ключи WARP. Если аккаунт деактивирован Cloudflare — удалите warp-base.conf и запустите install.cmd заново.
Запустите run-update.cmd для принудительного обновления списка IP. Проверьте через test-tunnel-status.ps1 что в поле allowed ips присутствуют российские подсети.
| Параметр | Значение |
|---|---|
| Протокол | WireGuard |
| VPN-провайдер | Cloudflare WARP (бесплатный) |
| Маршрутизация | Только RU IP (split tunneling) |
| Обновление списка | При каждом подключении к сети, не чаще раза в сутки |
| Восстановление туннеля | При каждом сетевом событии, даже если обновление уже было |
| Применение изменений | wg syncconf (без разрыва соединения) |
| Запуск | Планировщик задач, триггер EventID 10000, от SYSTEM |
| Работа от батареи | Разрешена (DisallowStartIfOnBatteries = false) |
| PowerShell | 64-bit, System32\WindowsPowerShell\v1.0\powershell.exe |
| Рабочая папка | C:\WireGuardProject\, скрыта |
MIT