WARP Manager v2.2

Cloudflare WARP для 3X-UI и AmneziaWG

Один скрипт — два режима. Автоматическая установка и управление Cloudflare WARP на VPS-сервере. WARP даёт «чистый» IP от Cloudflare, который не заблокирован популярными сервисами (ChatGPT, Netflix, Spotify и др.).

Канал: YouTube @antenkaru


Два режима работы

Режим 3X-UI

Клиент → 3X-UI (Xray) → SOCKS5 (WARP 127.0.0.1:40000) → Cloudflare → Интернет

Нативный warp-cli, SOCKS5-прокси на 127.0.0.1:40000. Маршрутизация по доменам настраивается в 3X-UI (Xray routing). Основной IP сервера не меняется — через WARP идёт только тот трафик, который вы укажете.

Режим AmneziaWG

Клиент → AmneziaWG Docker → warp WG interface → Cloudflare → Интернет

WireGuard-интерфейс WARP внутри Docker-контейнера AmneziaWG. Маршрутизация per-client — вы выбираете, каких именно клиентов пускать через WARP. Трафик выбранных клиентов идёт через Cloudflare, остальные клиенты работают напрямую.

Скрипт автоматически определяет, что установлено на сервере (3X-UI или AmneziaWG Docker), и предлагает соответствующий режим.


Возможности

Функция 3X-UI AmneziaWG
Установка WARP в один клик
Telegram-бот
Перевыпуск ключа (смена WARP IP)
Автоперезапуск через systemd
Полное удаление
SOCKS5-прокси
JSON-конфиги для Xray
Маршрутизация по доменам
Изменение порта SOCKS5
Управление клиентами (переключатели /☐ в одном меню)
WireGuard внутри Docker
Перезапуск контейнера

Установка

Команда для установки и сам скрипт не публикуются в открытом доступе.

Получить готовую команду установки и доступ к скрипту можно в Telegram-группе «anten-ka club» по подписке на Boosty:

→ Оформить подписку и получить доступ (Boosty)

После установки скрипт доступен по команде:

gowarp

Важно: чтобы команда gowarp сохранялась и работала после выхода, используйте установку в два шага (сначала скачать скрипт в файл, затем запустить), а не через bash <(curl ...). В группе по подписке даётся готовая команда.

Требования

Для режима 3X-UI:

  • VPS с Ubuntu/Debian
  • Установленный 3X-UI (панель должна быть активна)

Для режима AmneziaWG:

  • VPS с Ubuntu/Debian
  • Docker
  • Запущенный контейнер AmneziaWG (развёрнутый через приложение Amnezia VPN)

Интеграция с 3X-UI — пошаговая инструкция

Этот раздел только для режима 3X-UI. Для AmneziaWG перейдите к разделу Интеграция с AmneziaWG.

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

  1. Скрипт устанавливает cloudflare-warp на сервер
  2. WARP работает в режиме SOCKS5-прокси на 127.0.0.1:40000
  3. В 3X-UI добавляется outbound типа SOCKS с тегом warp
  4. В маршрутизации указываете, какие сайты направлять через WARP

Основной IP сервера не меняется. Через WARP идёт только тот трафик, который вы настроите в маршрутизации 3X-UI.

Шаг 1. Установка WARP

  1. Запустите gowarp
  2. Выберите пункт 1 — Установить WARP
  3. Дождитесь установки и проверки статуса — должен быть «Подключён»

Шаг 2. Добавление Outbound (исходящее подключение)

  1. Откройте панель 3X-UI в браузере
  2. Перейдите в Настройки Xray (Xray Settings)
  3. Найдите раздел Outbounds (Исходящие подключения)
  4. Нажмите Добавить Outbound (Add Outbound)
  5. Вставьте следующий JSON:
{
  "tag": "warp",
  "protocol": "socks",
  "settings": {
    "servers": [
      {
        "address": "127.0.0.1",
        "port": 40000
      }
    ]
  }
}

Важно: порт 40000 — это порт по умолчанию. Если вы меняли порт через меню WARP Manager (пункт 7), укажите ваш порт.

  1. Нажмите Сохранить (Save)

Шаг 3. Настройка маршрутизации (Routing)

Теперь нужно указать, какой трафик направлять через WARP.

Вариант А: Определённые сайты через WARP (рекомендуется)

  1. Перейдите в Настройки XrayRouting (Маршрутизация)
  2. Нажмите Добавить правило (Add Rule)
  3. Заполните:
    • Outbound Tag: warp
    • Domain: добавьте домены, которые хотите направить через WARP

Либо вставьте JSON-правило напрямую:

{
  "type": "field",
  "outboundTag": "warp",
  "domain": [
    "geosite:openai",
    "geosite:netflix",
    "geosite:disney",
    "geosite:spotify",
    "domain:chat.openai.com",
    "domain:claude.ai",
    "domain:openai.com",
    "domain:netflix.com",
    "domain:disneyplus.com",
    "domain:spotify.com"
  ]
}

Это направит трафик к ChatGPT, Netflix, Disney+, Spotify и Claude через WARP. Остальной трафик пойдёт напрямую через основной IP сервера.

Вариант Б: Весь трафик через WARP

Если хотите направить весь клиентский трафик через WARP:

{
  "type": "field",
  "outboundTag": "warp",
  "network": "tcp,udp"
}

Внимание: при этом варианте весь трафик пойдёт через Cloudflare. Скорость может незначительно снизиться.

Вариант В: По IP-адресам (геолокация)

Можно направить через WARP трафик к определённым IP-диапазонам:

{
  "type": "field",
  "outboundTag": "warp",
  "ip": [
    "geoip:us",
    "geoip:gb"
  ]
}

Трафик в США и Великобританию пойдёт через WARP.

Шаг 4. Перезапуск Xray

После сохранения настроек:

  1. Нажмите Перезапустить Xray (Restart Xray) в панели 3X-UI
  2. Или выполните в SSH:
x-ui restart

Шаг 5. Проверка

  1. Подключитесь к VPN через клиент (v2rayN, Hiddify, NekoBox и т.д.)
  2. Откройте https://whoer.net или https://ifconfig.me
  3. Если вы настроили маршрутизацию по доменам:
    • Обычные сайты покажут основной IP сервера
    • Сайты из списка (ChatGPT, Netflix и др.) покажут IP Cloudflare
  4. Попробуйте открыть https://chat.openai.com — если раньше был заблокирован, теперь должен работать

Проверка через SSH:

curl -s --proxy socks5h://127.0.0.1:40000 ifconfig.me

Интеграция с AmneziaWG — пошаговая инструкция

Этот раздел только для режима AmneziaWG. Для 3X-UI перейдите к разделу Интеграция с 3X-UI.

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

  1. wgcf регистрирует бесплатный аккаунт Cloudflare WARP и генерирует WireGuard-профиль
  2. Внутри Docker-контейнера AmneziaWG поднимается отдельный WG-интерфейс warp
  3. Для выбранных клиентов создаются ip rule + iptables правила, направляющие их трафик через WARP
  4. Правила автоматически прописываются в start.sh контейнера для персистентности при перезагрузках

В отличие от 3X-UI, где маршрутизация по доменам, в AmneziaWG маршрутизация по клиентам: вы выбираете, какие клиенты (по IP-адресу внутри VPN) будут ходить через WARP.

Шаг 1. Подготовка

Убедитесь, что:

  • На сервере установлен Docker
  • AmneziaWG контейнер запущен и работает (проверить: docker ps | grep amnezia)
  • Клиенты подключены и работают через AmneziaWG

Шаг 2. Установка WARP

  1. Запустите gowarp
  2. Скрипт автоматически определит контейнер AmneziaWG и предложит режим
  3. Выберите пункт 1 — Установить WARP

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

  • Скачает wgcf (утилита для регистрации в Cloudflare WARP)
  • Зарегистрирует аккаунт WARP
  • Сгенерирует WireGuard-профиль
  • Создаст конфигурацию warp.conf внутри Docker-контейнера
  • Поднимет WG-интерфейс warp внутри контейнера
  • Покажет WARP IP

Шаг 3. Включение клиентов в WARP

После установки WARP нужно указать, каких клиентов пускать через Cloudflare.

Через SSH-меню:

  1. Выберите пункт 6 — переключение клиентов WARP (единое меню)
  2. Вы увидите список всех клиентов AmneziaWG с их IP и именами; напротив каждого — (уже в WARP) или (не в WARP)
  3. Введите номер клиента, чтобы переключить состояние (в WARP или вне WARP)
  4. Скрипт:
    • Добавит или снимет ip rule для маршрутизации трафика клиента через WARP
    • Настроит или уберёт iptables NAT для корректного выхода через WG-интерфейс
    • Пропишет правила в start.sh контейнера (персистентность)

Через Telegram-бот:

  1. Нажмите 👥 Клиенты WARP — откроется тот же список-переключатель
  2. Напротив клиентов отображаются (в WARP) и (вне WARP); выбор пункта переключает состояние

Шаг 4. Проверка

  1. Подключитесь к VPN через приложение Amnezia
  2. Откройте https://whoer.net или https://ifconfig.me
  3. Если ваш клиент включён в WARP — вы увидите IP Cloudflare
  4. Если клиент не в WARP — вы увидите обычный IP сервера

Проверка через SSH (внутри контейнера):

docker exec <имя_контейнера> curl -s --interface warp ifconfig.me

Управление клиентами

В SSH и в боте используется одно меню переключателей: у каждого клиента видно (трафик через WARP) или (напрямую); действие по пункту меняет состояние.

Действие SSH-меню Telegram-бот
Включить/выключить клиента в WARP (список /☐) пункт 6 👥 Клиенты WARP
Перевыпуск ключа пункт 5 🔑 Перевыпуск ключа
Перезапуск контейнера пункт 7 🔄 Контейнер

Что происходит при включении клиента в WARP

Когда вы переводите клиента в WARP (например, 10.8.1.2), скрипт:

  1. Создаёт ip rule: ip rule add from 10.8.1.2 table 51820
  2. Добавляет iptables NAT: iptables -t nat -A POSTROUTING -s 10.8.1.2 -o warp -j MASQUERADE
  3. Записывает клиента в /opt/warp/clients.list
  4. Патчит start.sh контейнера — добавляет блок между маркерами WARP-MANAGER BEGIN / END, чтобы правила восстанавливались после перезапуска контейнера

При удалении — всё убирается в обратном порядке.

Перевыпуск ключа (AmneziaWG)

Перевыпуск ключа полностью пересоздаёт WARP-профиль:

  1. Останавливает текущий WG-интерфейс warp
  2. Удаляет старый аккаунт wgcf
  3. Регистрирует новый аккаунт
  4. Генерирует новый профиль
  5. Пересобирает warp.conf и поднимает интерфейс
  6. Восстанавливает правила маршрутизации клиентов

Это полезно, если WARP IP попал в блокировку и нужен новый.


Меню WARP Manager

Меню организовано по секциям. Пункты 15 (WARP) и 811 (бот, промо, инструкция, удаление) одинаковы в обоих режимах; пункты 67 зависят от режима (3X-UI или AmneziaWG).

Общая секция — WARP-ключ (оба режима)

Пункт Действие
1 Установить WARP
2 Запустить WARP
3 Остановить WARP
4 Статус
5 Перевыпуск ключа (новый WARP IP)

Секция 3X-UI (только в режиме 3X-UI)

Пункт Действие
6 Настройки SOCKS5 / JSON для 3X-UI
7 Изменить порт SOCKS5

Секция AmneziaWG (только в режиме AmneziaWG)

Пункт Действие
6 Переключение клиентов WARP (единое меню, / ☐)
7 Перезапуск контейнера

Общая секция — бот и прочее (оба режима)

Пункт Действие
8 Telegram Bot (настройка и управление)
9 PROMO
10 Инструкция
11 Полное удаление
0 Выход

Telegram-бот

WARP Manager включает встроенный Telegram-бот для удалённого управления. Бот работает в обоих режимах — интерфейс и кнопки автоматически адаптируются.

Настройка бота

  1. Откройте @BotFather в Telegram
  2. Отправьте /newbot
  3. Задайте имя и username бота
  4. Скопируйте полученный токен
  5. На сервере выполните gowarp → пункт 8 (Telegram Bot)
  6. Выберите 1) Токен бота — вставьте токен
  7. Выберите 2) Chat ID (авто):
    • Откройте вашего бота в Telegram
    • Отправьте ему любое сообщение
    • Вернитесь в SSH и нажмите Enter
    • Скрипт автоматически определит ваш Chat ID
  8. Выберите 4) Запустить

Команды бота

  • /start или /menu — главное меню

Кнопки бота — режим 3X-UI

Кнопка Действие
📊 Статус Текущий статус WARP, порт, IP
🌍 IP адреса Реальный IP сервера и WARP IP
▶️ Запустить Запуск WARP
⏹ Остановить Остановка WARP
🔑 Перевыпуск ключа Новый WARP IP
📋 JSON Готовая конфигурация outbound для 3X-UI
🖥 Система CPU, RAM, диск, uptime
🏷 Хостинг Промо-материалы

Кнопки бота — режим AmneziaWG

Кнопка Действие
📊 Статус Статус WARP, контейнер, IP, кол-во клиентов
🌍 IP адреса Реальный IP сервера и WARP IP
▶️ Запустить Поднять WG-интерфейс WARP
⏹ Остановить Опустить WG-интерфейс WARP
🔑 Перевыпуск ключа Пересоздать WARP-профиль
👥 Клиенты WARP Единое меню переключателей: список клиентов с (в WARP) и (вне WARP)
🔄 Контейнер Перезапуск Docker-контейнера AmneziaWG
🖥 Система CPU, RAM, диск, uptime
🏷 Хостинг Промо-материалы

Безопасность

Если задан Chat ID, бот отвечает только владельцу. Остальные пользователи получат сообщение «Нет доступа» с указанием их Chat ID.

Бот работает как systemd-сервис warp-bot с автоперезапуском.


Автоперезапуск

  • Служба warp-svc (3X-UI) настроена с Restart=always — WARP автоматически перезапускается при сбое
  • Служба warp-bot (Telegram-бот) также имеет Restart=always
  • При перезагрузке сервера сервисы запускаются автоматически
  • В режиме AmneziaWG правила маршрутизации прописаны в start.sh контейнера — они восстанавливаются при перезапуске контейнера или сервера

Часто задаваемые вопросы

WARP не подключается (3X-UI)

warp-cli --accept-tos status
journalctl -u warp-svc --no-pager -n 20

Попробуйте перевыпустить ключ (пункт 5 в меню).

WARP не подключается (AmneziaWG)

docker exec <контейнер> wg show warp
docker exec <контейнер> cat /opt/warp/warp.conf

Убедитесь, что контейнер запущен и внутри него есть интерфейс warp:

docker exec <контейнер> ip link show warp

Попробуйте перевыпустить ключ (пункт 5) или перезапустить контейнер (пункт 7).

Сайт всё ещё заблокирован после настройки (3X-UI)

  1. Убедитесь, что WARP в статусе «Подключён» (gowarp → пункт 4)
  2. Проверьте, что домен добавлен в routing-правило в 3X-UI
  3. Перезапустите Xray: x-ui restart
  4. Очистите DNS-кэш в браузере или используйте режим инкогнито

Клиент не видит WARP IP (AmneziaWG)

  1. Убедитесь, что клиент включён в WARP (gowarp → пункт 6, в списке должна быть )
  2. Проверьте, что интерфейс warp поднят (gowarp → пункт 4)
  3. Перезапустите контейнер (gowarp → пункт 7)
  4. Переподключитесь к VPN на клиентском устройстве

Как сменить WARP IP

  • 3X-UI: gowarp → пункт 5 или кнопка бота 🔑 Перевыпуск ключа
  • AmneziaWG: gowarp → пункт 5 или кнопка бота 🔑 Перевыпуск ключа

Как изменить порт SOCKS5 (только 3X-UI)

gowarp → пункт 7 — введите новый порт. Не забудьте обновить порт в outbound-настройках 3X-UI.

Можно ли переключить режим?

Режим определяется автоматически при запуске. Если на сервере установлены и 3X-UI, и AmneziaWG Docker — скрипт предложит выбрать. Выбор сохраняется в конфигурации.

Чтобы сбросить: удалите строку MODE= из /etc/warp-manager/config — при следующем запуске скрипт снова предложит выбор.


Удаление

gowarp

Выберите пункт 11 — Полное удаление.

Что удаляется (3X-UI)

  • cloudflare-warp и его конфигурация
  • Telegram-бот (сервис warp-bot)
  • Команда gowarp
  • Конфигурация и логи WARP Manager

Не забудьте вручную удалить outbound warp и связанные routing-правила из настроек 3X-UI.

Что удаляется (AmneziaWG)

  • WG-интерфейс warp внутри контейнера
  • Файлы WARP (/opt/warp/) внутри контейнера
  • Правила ip rule и iptables для клиентов
  • Блок WARP-MANAGER из start.sh контейнера
  • Telegram-бот (сервис warp-bot)
  • Команда gowarp
  • Конфигурация и логи WARP Manager

Сам контейнер AmneziaWG и его клиенты не затрагиваются.


Лицензия

Только для личного использования. Распространение без согласия запрещено.

anten-ka · YouTube

Description
No description provided
Readme 147 KiB
Languages
Shell 100%