Skip to content

AlexandrVK/WireGuardProjectRu

Repository files navigation

WireGuard WARP-RU AutoStart

Автоматический запуск 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)
  • Доступ в интернет при установке
  • Права администратора

Установка

1. Скачайте файлы

Скачайте архив и распакуйте в любую папку (например C:\Downloads\warp-ru).

В папке должны быть:

install.cmd
install.ps1
uninstall.ps1
Update-Warp-RU.ps1
sources.txt

2. Запустите установку

Правой кнопкой на install.cmdЗапуск от имени администратора

Скрипт автоматически:

  • Предложит подтверждение перед началом установки
  • Скачает и установит WireGuard (если не установлен)
  • Скачает wgcf для регистрации в Cloudflare WARP
  • Зарегистрирует новый аккаунт WARP и создаст warp-base.conf
  • Скопирует скрипты в C:\WireGuardProject\ и скроет папку
  • Создаст задачу планировщика на автозапуск при подключении к сети
  • Автоматически запустит основной скрипт для первоначальной настройки

3. Первый запуск VPN

После установки основной скрипт запускается автоматически и:

  • Синхронизирует 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. Не публикуйте этот файл.

Источники списка RU IP-адресов

Список источников хранится в файле sources.txt в репозитории: AlexandrVK/WireGuardProjectRu/sources.txt

При каждом запуске скрипт автоматически синхронизирует локальный sources.txt с GitHub (таймаут 5 секунд — если GitHub недоступен, используется локальная копия). Если все источники в sources.txt оказались недоступны — скрипт принудительно обновляет sources.txt без таймаута и пробует снова.

Для добавления или замены источника достаточно отредактировать файл на GitHub — основной скрипт трогать не нужно.

Формат файла: один URL на строку, строки с # — комментарии.

Текущие источники:

  1. ipverse/country-ip-blocks — данные из всех 5 RIR, агрегированные, обновляются ежедневно
  2. Travisun/Latest-Country-IP-List — обновляется ежедневно
  3. ebrasha/cidr-ip-ranges-by-country — резервный источник

Использование на Android (WG Tunnel)

Для использования WireGuard WARP-RU на Android рекомендуется приложение WG Tunnel — бесплатный open-source клиент с поддержкой импорта конфига прямо из zip-архива без распаковки.

Шаг 1: Установка WG Tunnel

Установите приложение из Google Play: play.google.com/store/apps/details?id=com.zaneschepke.wireguardautotunnel

Или из F-Droid (open-source альтернатива Play Store).

Шаг 2: Получение warp-base.conf

warp-base.conf создаётся автоматически при установке на Windows. Найдите его в рабочей папке проекта и скиньте на телефон любым удобным способом (Telegram, Google Drive, USB и т.п.).

Как получить warp-base.conf вручную (если проект на Windows ещё не установлен):

  1. Скачайте wgcf_*_windows_amd64.exe со страницы релизов: github.com/ViRb3/wgcf/releases, переименуйте файл в wgcf.exe и положите, например, в C:\wgcf\
  2. Откройте командную строку от имени администратора (Win+Rcmd → правая кнопка → Запуск от имени администратора)
  3. Перейдите в папку с файлом:
    cd C:\wgcf
    
  4. Зарегистрируйте аккаунт WARP и сгенерируйте конфиг:
    wgcf.exe register --accept-tos
    wgcf.exe generate
    
  5. В папке появится wgcf-profile.conf — переименуйте его в warp-base.conf и скиньте на телефон. Файлы wgcf-account.toml и wgcf.exe после этого можно удалить.

Шаг 3: Генерация warp-ru.conf

Откройте в браузере телефона онлайн-генератор:

https://alexandrvk.github.io/WireGuardProjectRu/warp-ru-generator.html
  1. Выберите warp-base.conf — приложение запомнит его для следующих запусков
  2. Нажмите Сгенерировать и скачать
  3. В папку загрузок сохранится файл warp-ru.zip с готовым warp-ru.conf внутри

Шаг 4: Импорт в WG Tunnel

  1. Откройте WG Tunnel
  2. Нажмите +Import from file
  3. Выберите скачанный warp-ru.zip — приложение распакует архив и импортирует конфиг автоматически
  4. Туннель warp-ru появится в списке — нажмите переключатель для подключения

Обновление конфига

Список российских IP меняется. Для обновления достаточно повторить Шаг 3 — сгенерировать новый warp-ru.zip и импортировать его поверх существующего туннеля в WG Tunnel.

warp-base.conf при этом менять не нужно — он постоянный.

Как устроен туннель

WireGuard в Windows управляет туннелями через WireGuard Manager — фоновую службу. При установке туннеля:

  1. Конфиг .conf копируется в C:\Program Files\WireGuard\Data\Configurations\
  2. Manager шифрует его в .conf.dpapi и удаляет оригинал
  3. Запускается именованная служба WireGuardTunnel$warp-ru

Статус туннеля проверяется через wg show warp-ru — прямой запрос к WireGuard.

Ручное тестирование

Принудительный запуск (игнорирует ограничение раз в сутки)

C:\WireGuardProject\run-update.cmd

Проверка статуса туннеля

C:\WireGuardProject\test-tunnel-status.ps1

Тест wg syncconf

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-ru

Просмотр логов

Get-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 вручную. При следующем сетевом событии скрипт восстановит туннель автоматически.

WireGuard показывает ошибку в GUI

Проверьте что warp-base.conf содержит валидные ключи WARP. Если аккаунт деактивирован Cloudflare — удалите warp-base.conf и запустите install.cmd заново.

Нет доступа к российским сайтам через VPN

Запустите 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors