# WARP Manager v2.0 **Cloudflare WARP для 3X-UI и AmneziaWG** Один скрипт — два режима. Автоматическая установка и управление Cloudflare WARP на VPS-сервере. WARP даёт «чистый» IP от Cloudflare, который не заблокирован популярными сервисами (ChatGPT, Netflix, Spotify и др.). > Канал: [YouTube @antenkaru](https://www.youtube.com/@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)](https://boosty.to/anten-ka/purchase/3134076?ssource=DIRECT&share=subscription_link)** После установки скрипт доступен по команде: ```bash 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](#интеграция-с-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: ```json { "tag": "warp", "protocol": "socks", "settings": { "servers": [ { "address": "127.0.0.1", "port": 40000 } ] } } ``` > **Важно:** порт `40000` — это порт по умолчанию. Если вы меняли порт через меню WARP Manager (пункт 7), укажите ваш порт. 6. Нажмите **Сохранить** (Save) ### Шаг 3. Настройка маршрутизации (Routing) Теперь нужно указать, какой трафик направлять через WARP. #### Вариант А: Определённые сайты через WARP (рекомендуется) 1. Перейдите в **Настройки Xray** → **Routing** (Маршрутизация) 2. Нажмите **Добавить правило** (Add Rule) 3. Заполните: - **Outbound Tag**: `warp` - **Domain**: добавьте домены, которые хотите направить через WARP Либо вставьте JSON-правило напрямую: ```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: ```json { "type": "field", "outboundTag": "warp", "network": "tcp,udp" } ``` > **Внимание:** при этом варианте весь трафик пойдёт через Cloudflare. Скорость может незначительно снизиться. #### Вариант В: По IP-адресам (геолокация) Можно направить через WARP трафик к определённым IP-диапазонам: ```json { "type": "field", "outboundTag": "warp", "ip": [ "geoip:us", "geoip:gb" ] } ``` > Трафик в США и Великобританию пойдёт через WARP. ### Шаг 4. Перезапуск Xray После сохранения настроек: 1. Нажмите **Перезапустить Xray** (Restart Xray) в панели 3X-UI 2. Или выполните в SSH: ```bash x-ui restart ``` ### Шаг 5. Проверка 1. Подключитесь к VPN через клиент (v2rayN, Hiddify, NekoBox и т.д.) 2. Откройте [https://whoer.net](https://whoer.net) или [https://ifconfig.me](https://ifconfig.me) 3. Если вы настроили маршрутизацию по доменам: - Обычные сайты покажут **основной IP** сервера - Сайты из списка (ChatGPT, Netflix и др.) покажут **IP Cloudflare** 4. Попробуйте открыть [https://chat.openai.com](https://chat.openai.com) — если раньше был заблокирован, теперь должен работать Проверка через SSH: ```bash curl -s --proxy socks5h://127.0.0.1:40000 ifconfig.me ``` --- ## Интеграция с AmneziaWG — пошаговая инструкция > Этот раздел только для **режима AmneziaWG**. Для 3X-UI перейдите к разделу [Интеграция с 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://whoer.net) или [https://ifconfig.me](https://ifconfig.me) 3. Если ваш клиент включён в WARP — вы увидите **IP Cloudflare** 4. Если клиент не в WARP — вы увидите **обычный IP сервера** Проверка через SSH (внутри контейнера): ```bash 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 Меню организовано по секциям. Пункты **1–5** (WARP) и **8–11** (бот, промо, инструкция, удаление) одинаковы в обоих режимах; пункты **6–7** зависят от режима (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](https://t.me/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) ```bash warp-cli --accept-tos status journalctl -u warp-svc --no-pager -n 20 ``` Попробуйте перевыпустить ключ (пункт 5 в меню). ### WARP не подключается (AmneziaWG) ```bash docker exec <контейнер> wg show warp docker exec <контейнер> cat /opt/warp/warp.conf ``` Убедитесь, что контейнер запущен и внутри него есть интерфейс `warp`: ```bash 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` — при следующем запуске скрипт снова предложит выбор. --- ## Удаление ```bash 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](https://www.youtube.com/@antenkaru)