From 29a4f168a739732320db5c8c3c8f1932c4852158 Mon Sep 17 00:00:00 2001 From: anten-ka Date: Fri, 20 Mar 2026 15:27:20 +0300 Subject: [PATCH] README v2.0: full docs for both 3X-UI and AmneziaWG modes Made-with: Cursor --- README.md | 303 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 248 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index d5d0830..362ae3a 100644 --- a/README.md +++ b/README.md @@ -13,15 +13,15 @@ WARP даёт «чистый» IP от Cloudflare, который не забл ### Режим 3X-UI ``` -Клиент → 3X-UI (Xray) → SOCKS5 (WARP) → Cloudflare → Интернет +Клиент → 3X-UI (Xray) → SOCKS5 (WARP 127.0.0.1:40000) → Cloudflare → Интернет ``` -Нативный `warp-cli`, SOCKS5-прокси, маршрутизация по доменам в Xray. +Нативный `warp-cli`, SOCKS5-прокси на `127.0.0.1:40000`. Маршрутизация по доменам настраивается в 3X-UI (Xray routing). Основной IP сервера **не меняется** — через WARP идёт только тот трафик, который вы укажете. ### Режим AmneziaWG ``` Клиент → AmneziaWG Docker → warp WG interface → Cloudflare → Интернет ``` -WireGuard-интерфейс WARP внутри Docker-контейнера, маршрутизация по клиентам. +WireGuard-интерфейс WARP внутри Docker-контейнера AmneziaWG. Маршрутизация **per-client** — вы выбираете, каких именно клиентов пускать через WARP. Трафик выбранных клиентов идёт через Cloudflare, остальные клиенты работают напрямую. Скрипт автоматически определяет, что установлено на сервере (3X-UI или AmneziaWG Docker), и предлагает соответствующий режим. @@ -29,15 +29,20 @@ WireGuard-интерфейс WARP внутри Docker-контейнера, ма ## Возможности -- Автоопределение режима (3X-UI / AmneziaWG) -- Установка Cloudflare WARP в один клик (оба режима) -- Интерактивное SSH-меню с полным управлением -- Telegram-бот для удалённого мониторинга и управления -- **3X-UI:** SOCKS5-прокси, JSON-конфигурации, маршрутизация по доменам -- **AmneziaWG:** управление клиентами (добавить/убрать из WARP), WireGuard внутри Docker -- Перевыпуск ключа (смена WARP IP) -- Автоперезапуск через systemd -- Полное удаление в одну команду +| Функция | 3X-UI | AmneziaWG | +|---------|:-----:|:---------:| +| Установка WARP в один клик | ✅ | ✅ | +| Telegram-бот | ✅ | ✅ | +| Перевыпуск ключа (смена WARP IP) | ✅ | ✅ | +| Автоперезапуск через systemd | ✅ | ✅ | +| Полное удаление | ✅ | ✅ | +| SOCKS5-прокси | ✅ | — | +| JSON-конфиги для Xray | ✅ | — | +| Маршрутизация по доменам | ✅ | — | +| Изменение порта SOCKS5 | ✅ | — | +| Управление клиентами (add/remove) | — | ✅ | +| WireGuard внутри Docker | — | ✅ | +| Перезапуск контейнера | — | ✅ | --- @@ -57,13 +62,24 @@ gowarp **Важно:** чтобы команда `gowarp` сохранялась и работала после выхода, используйте установку **в два шага** (сначала скачать скрипт в файл, затем запустить), а не через `bash <(curl ...)`. В группе по подписке даётся готовая команда. +### Требования + +**Для режима 3X-UI:** +- VPS с Ubuntu/Debian +- Установленный 3X-UI (панель должна быть активна) + +**Для режима AmneziaWG:** +- VPS с Ubuntu/Debian +- Docker +- Запущенный контейнер AmneziaWG (развёрнутый через приложение Amnezia VPN) + --- -## Схема работы +## Интеграция с 3X-UI — пошаговая инструкция -``` -Клиент → 3X-UI (Xray) → SOCKS5 (WARP 127.0.0.1:40000) → Cloudflare → Интернет -``` +> Этот раздел только для **режима 3X-UI**. Для AmneziaWG перейдите к разделу [Интеграция с AmneziaWG](#интеграция-с-amneziawg--пошаговая-инструкция). + +### Как это работает 1. Скрипт устанавливает `cloudflare-warp` на сервер 2. WARP работает в режиме **SOCKS5-прокси** на `127.0.0.1:40000` @@ -72,13 +88,13 @@ gowarp Основной IP сервера **не меняется**. Через WARP идёт только тот трафик, который вы настроите в маршрутизации 3X-UI. ---- +### Шаг 1. Установка WARP -## Интеграция с 3X-UI — пошаговая инструкция +1. Запустите `gowarp` +2. Выберите пункт **1** — Установить WARP +3. Дождитесь установки и проверки статуса — должен быть «Подключён» -После установки WARP и подтверждения статуса «Подключён» выполните следующие шаги в панели 3X-UI. - -### Шаг 1. Добавление Outbound (исходящее подключение) +### Шаг 2. Добавление Outbound (исходящее подключение) 1. Откройте панель **3X-UI** в браузере 2. Перейдите в **Настройки Xray** (Xray Settings) @@ -105,7 +121,7 @@ gowarp 6. Нажмите **Сохранить** (Save) -### Шаг 2. Настройка маршрутизации (Routing) +### Шаг 3. Настройка маршрутизации (Routing) Теперь нужно указать, какой трафик направлять через WARP. @@ -144,12 +160,6 @@ gowarp Если хотите направить **весь** клиентский трафик через WARP: -1. В разделе **Routing** добавьте правило: - - **Outbound Tag**: `warp` - - **Network**: `tcp,udp` - -Или JSON: - ```json { "type": "field", @@ -160,7 +170,7 @@ gowarp > **Внимание:** при этом варианте весь трафик пойдёт через Cloudflare. Скорость может незначительно снизиться. -#### Вариант В: По IP-адресам +#### Вариант В: По IP-адресам (геолокация) Можно направить через WARP трафик к определённым IP-диапазонам: @@ -177,7 +187,7 @@ gowarp > Трафик в США и Великобританию пойдёт через WARP. -### Шаг 3. Перезапуск Xray +### Шаг 4. Перезапуск Xray После сохранения настроек: @@ -188,9 +198,7 @@ gowarp x-ui restart ``` -### Шаг 4. Проверка - -Убедитесь, что всё работает: +### Шаг 5. Проверка 1. Подключитесь к VPN через клиент (v2rayN, Hiddify, NekoBox и т.д.) 2. Откройте [https://whoer.net](https://whoer.net) или [https://ifconfig.me](https://ifconfig.me) @@ -199,20 +207,121 @@ x-ui restart - Сайты из списка (ChatGPT, Netflix и др.) покажут **IP Cloudflare** 4. Попробуйте открыть [https://chat.openai.com](https://chat.openai.com) — если раньше был заблокирован, теперь должен работать -### Проверка через SSH - -На сервере можно проверить WARP IP командой: +Проверка через SSH: ```bash curl -s --proxy socks5h://127.0.0.1:40000 ifconfig.me ``` -Эта команда покажет IP, который видят сайты при маршрутизации через WARP. +--- + +## Интеграция с 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. Выберите пункт **5** — ➕ Добавить клиентов в WARP +2. Вы увидите список всех клиентов AmneziaWG с их IP и именами +3. Введите номер клиента, которого хотите добавить, или `all` для всех +4. Скрипт: + - Добавит `ip rule` для маршрутизации трафика клиента через WARP + - Настроит `iptables` NAT для корректного выхода через WG-интерфейс + - Пропишет правила в `start.sh` контейнера (персистентность) + +**Через Telegram-бот:** + +1. Нажмите **Клиенты** → **➕ Добавить** +2. Выберите клиента из списка (✅ = уже в WARP, ➕ = можно добавить) +3. Или нажмите **✅ Все в 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-меню | Telegram-бот | +|----------|----------|--------------| +| Добавить в WARP | пункт **5** | Клиенты → ➕ Добавить | +| Убрать из WARP | пункт **6** | Клиенты → ➖ Убрать | +| Список клиентов в WARP | пункт **7** | Клиенты | +| Перевыпуск ключа | пункт **12** | 🔑 Перевыпуск ключа | +| Перезапуск контейнера | пункт **13** | 🔄 Контейнер | + +### Что происходит при добавлении клиента + +Когда вы добавляете клиента (например, `10.8.1.2`) в WARP, скрипт: + +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 +### Режим 3X-UI + | Пункт | Действие | |-------|----------| | 1 | Установить WARP | @@ -222,17 +331,36 @@ curl -s --proxy socks5h://127.0.0.1:40000 ifconfig.me | 5 | JSON для 3X-UI (готовые конфиги) | | 6 | Перевыпуск ключа (новый WARP IP) | | 7 | Изменить порт SOCKS5 | -| 8 | Telegram Bot (настройка и управление) | +| 8 | Telegram Bot | | 9 | PROMO | | 10 | Инструкция | | 11 | Полное удаление | | 0 | Выход | +### Режим AmneziaWG + +| Пункт | Действие | +|-------|----------| +| 1 | Установить WARP | +| 2 | Запустить WARP | +| 3 | Остановить WARP | +| 4 | Статус | +| 5 | ➕ Добавить клиентов в WARP | +| 6 | ➖ Убрать клиентов из WARP | +| 7 | Показать клиентов | +| 8 | Telegram Bot | +| 9 | PROMO | +| 10 | Инструкция | +| 11 | Полное удаление | +| 12 | Перевыпуск ключа | +| 13 | Перезапуск контейнера | +| 0 | Выход | + --- ## Telegram-бот -WARP Manager включает встроенный Telegram-бот для удалённого управления. +WARP Manager включает встроенный Telegram-бот для удалённого управления. Бот работает **в обоих режимах** — интерфейс и кнопки автоматически адаптируются. ### Настройка бота @@ -253,15 +381,34 @@ WARP Manager включает встроенный Telegram-бот для уда - `/start` или `/menu` — главное меню -### Кнопки меню +### Кнопки бота — режим 3X-UI -- **Статус** — текущий статус WARP, порт, IP -- **IP адреса** — реальный IP сервера и WARP IP -- **Запустить / Остановить** — управление WARP -- **Перевыпуск ключа** — получить новый WARP IP -- **JSON для 3X-UI** — готовая конфигурация для копирования -- **Система** — CPU, RAM, диск, uptime -- **Хостинг** — промо-материалы +| Кнопка | Действие | +|--------|----------| +| 📊 Статус | Текущий статус 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 | +| 🏷 Хостинг | Промо-материалы | ### Безопасность @@ -273,15 +420,16 @@ WARP Manager включает встроенный Telegram-бот для уда ## Автоперезапуск -- Служба `warp-svc` настроена с `Restart=always` — WARP автоматически перезапускается при сбое +- Служба `warp-svc` (3X-UI) настроена с `Restart=always` — WARP автоматически перезапускается при сбое - Служба `warp-bot` (Telegram-бот) также имеет `Restart=always` -- При перезагрузке сервера оба сервиса запускаются автоматически +- При перезагрузке сервера сервисы запускаются автоматически +- В режиме AmneziaWG правила маршрутизации прописаны в `start.sh` контейнера — они восстанавливаются при перезапуске контейнера или сервера --- ## Часто задаваемые вопросы -### WARP не подключается +### WARP не подключается (3X-UI) ```bash warp-cli --accept-tos status @@ -290,22 +438,50 @@ journalctl -u warp-svc --no-pager -n 20 Попробуйте перевыпустить ключ (пункт 6 в меню). -### Сайт всё ещё заблокирован после настройки +### WARP не подключается (AmneziaWG) + +```bash +docker exec <контейнер> wg show warp +docker exec <контейнер> cat /opt/warp/warp.conf +``` + +Убедитесь, что контейнер запущен и внутри него есть интерфейс `warp`: + +```bash +docker exec <контейнер> ip link show warp +``` + +Попробуйте перевыпустить ключ (пункт 12) или перезапустить контейнер (пункт 13). + +### Сайт всё ещё заблокирован после настройки (3X-UI) 1. Убедитесь, что WARP в статусе «Подключён» (`gowarp` → пункт 4) 2. Проверьте, что домен добавлен в routing-правило в 3X-UI 3. Перезапустите Xray: `x-ui restart` 4. Очистите DNS-кэш в браузере или используйте режим инкогнито +### Клиент не видит WARP IP (AmneziaWG) + +1. Убедитесь, что клиент **добавлен** в WARP (`gowarp` → пункт 7) +2. Проверьте, что интерфейс `warp` поднят (`gowarp` → пункт 4) +3. Перезапустите контейнер (`gowarp` → пункт 13) +4. Переподключитесь к VPN на клиентском устройстве + ### Как сменить WARP IP -В SSH: `gowarp` → пункт **6** (Перевыпуск ключа) -В Telegram: кнопка **Перевыпуск ключа** +- **3X-UI:** `gowarp` → пункт **6** или кнопка бота **🔑 Перевыпуск ключа** +- **AmneziaWG:** `gowarp` → пункт **12** или кнопка бота **🔑 Перевыпуск ключа** -### Как изменить порт SOCKS5 +### Как изменить порт SOCKS5 (только 3X-UI) `gowarp` → пункт **7** — введите новый порт. Не забудьте обновить порт в outbound-настройках 3X-UI. +### Можно ли переключить режим? + +Режим определяется автоматически при запуске. Если на сервере установлены и 3X-UI, и AmneziaWG Docker — скрипт предложит выбрать. Выбор сохраняется в конфигурации. + +Чтобы сбросить: удалите строку `MODE=` из `/etc/warp-manager/config` — при следующем запуске скрипт снова предложит выбор. + --- ## Удаление @@ -316,10 +492,27 @@ gowarp Выберите пункт **11** — Полное удаление. -Будут удалены: cloudflare-warp, конфигурация, Telegram-бот, команда `gowarp`, логи. +### Что удаляется (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 и его клиенты **не затрагиваются**. + --- ## Лицензия