31 Commits
v1 ... alfa-v2

Author SHA1 Message Date
anten-ka
a62063fe1c Replace Unicode box frames with ASCII stars - consistent width in all terminals
Made-with: Cursor
2026-03-22 17:14:38 +03:00
anten-ka
4a2ce02d33 Fix all box frames: aligned to consistent 54-char inner width
Made-with: Cursor
2026-03-22 17:11:15 +03:00
anten-ka
3b7765124a Simplify bot: single Chat ID, remove multi-admin, auto-detect without Enter (polls 30s)
Made-with: Cursor
2026-03-22 16:58:02 +03:00
anten-ka
d25da45fcd Revert bot_daemon to proven working loop (no poll_cycle/TSV), keep multi-admin and config re-source
Made-with: Cursor
2026-03-22 16:38:34 +03:00
anten-ka
9fcee1d985 Fix bot crash: pipefail+echo|jq killed daemon, add || true; replace sed with while-read in save_config_val
Made-with: Cursor
2026-03-22 15:01:07 +03:00
anten-ka
ca8cd07f24 Fix bot daemon: revert herestring to echo|jq (herestring unreliable in systemd context)
Made-with: Cursor
2026-03-22 14:45:07 +03:00
anten-ka
dde0152786 Fix: bot daemon re-reads config each poll cycle so new admins work without restart
Made-with: Cursor
2026-03-22 14:38:08 +03:00
anten-ka
53069905f2 Fix bot_add_admin: was skipping add when BOT_CHAT_ID empty because is_bot_admin returned true for everyone
Made-with: Cursor
2026-03-22 14:15:26 +03:00
anten-ka
94006fe104 Fix bot_auto_chatid: disable+stop daemon to prevent Restart=always from stealing updates
Made-with: Cursor
2026-03-22 14:07:36 +03:00
anten-ka
0b6c6875cf Skip license check if already installed (gowarp exists or config present)
Made-with: Cursor
2026-03-22 13:59:38 +03:00
anten-ka
6fe5cf2540 Show all containers with number and uptime in main menu and bot
Made-with: Cursor
2026-03-22 13:53:35 +03:00
anten-ka
7c7364f501 Fix container selector formatting: strip CR, simplify layout, no ANSI in brackets
Made-with: Cursor
2026-03-22 13:51:53 +03:00
anten-ka
195345d6f4 Bot multi-container: container selector in cl, cc:* handler, rc restarts all, back to containers button
Made-with: Cursor
2026-03-22 13:46:04 +03:00
anten-ka
796de24e92 Move container check into AmneziaWG section (p.8), renumber: 9=bot, 10=promo, 11=info, 12=uninstall
Made-with: Cursor
2026-03-22 13:37:06 +03:00
anten-ka
71e386cdec Fix multi-container: install WARP on ALL containers, always show container selector, discover without overwriting CONTAINER
Made-with: Cursor
2026-03-22 13:25:50 +03:00
anten-ka
061e5c190d Optimize bot_daemon: 2 jq calls via herestring instead of 8+ echo|jq forks, separate poll_cycle for local cleanup
Made-with: Cursor
2026-03-22 13:09:57 +03:00
anten-ka
0e80e94dd7 v2.2: multi-admin bot, improved chat ID detect, multi-container AWG v1+v2, container check menu
Made-with: Cursor
2026-03-22 12:52:58 +03:00
anten-ka
767201a6ce Revert MTU to 1280 for maximum stability, keep MSS clamping
Made-with: Cursor
2026-03-22 12:32:55 +03:00
anten-ka
6ff27a8bd9 Fix YouTube hangs: MTU 1280->1380, add MSS clamping (TCPMSS --clamp-mss-to-pmtu) for warp interface
Made-with: Cursor
2026-03-22 12:31:36 +03:00
anten-ka
27133e3cf9 Fix: escape client names in bot JSON keyboard to prevent malformed JSON
Made-with: Cursor
2026-03-20 18:49:07 +03:00
anten-ka
25665a1331 Fix: revert save_clients to heredoc (pipe was unreliable), remove warp interface guard from apply_rules
Made-with: Cursor
2026-03-20 18:24:02 +03:00
anten-ka
fe934267ac Fix AWG client rules: sleep after wg-quick up, safe save via pipe, skip rules if warp not up
Made-with: Cursor
2026-03-20 18:18:37 +03:00
anten-ka
29048e6f83 v2.1: optional routing text, full promo codes, bot wizard, upgrade compat, 3-cycle audit fixes
Made-with: Cursor
2026-03-20 17:49:40 +03:00
anten-ka
a0cc78cb1a Fix 3X-UI guide: show UI form fields instead of raw JSON, step-by-step with field names
Made-with: Cursor
2026-03-20 17:28:21 +03:00
anten-ka
dacfba7f62 v2.1: MODE=both support - 3X-UI and AmneziaWG simultaneously, dual bot handlers, 4 bugs fixed
Made-with: Cursor
2026-03-20 17:19:47 +03:00
anten-ka
4ad1ac497e v2.1: 3X-UI submenu with JSON guide and port, toggle clients with ok confirm and container restart
Made-with: Cursor
2026-03-20 16:42:15 +03:00
anten-ka
82b1a38592 v2.1: unified client toggle, 3X-UI SOCKS5 submenu, fix 14 bugs across 3 audit cycles
Made-with: Cursor
2026-03-20 16:29:48 +03:00
anten-ka
9c41c93507 Fix: 3X-UI status shows SOCKS5+JSON; rewrite AmneziaWG backend per bandju reference
Made-with: Cursor
2026-03-20 16:01:12 +03:00
anten-ka
0a4b0c4620 Restructure menu: WARP key / 3X-UI / AmneziaWG / Bot / Other sections; auto-confirm wgcf
Made-with: Cursor
2026-03-20 15:48:42 +03:00
anten-ka
29a4f168a7 README v2.0: full docs for both 3X-UI and AmneziaWG modes
Made-with: Cursor
2026-03-20 15:27:20 +03:00
anten-ka
3f097263e8 WARP Manager v2.0: unified 3X-UI + AmneziaWG with Telegram bot
Made-with: Cursor
2026-03-20 15:21:54 +03:00
2 changed files with 1898 additions and 644 deletions

323
README.md
View File

@@ -1,24 +1,48 @@
# WARP Manager v1.1 # WARP Manager v2.0
**Cloudflare WARP SOCKS5 Proxy для 3X-UI** **Cloudflare WARP для 3X-UI и AmneziaWG**
Автоматическая установка и управление Cloudflare WARP на VPS-сервере. Один скрипт — два режима. Автоматическая установка и управление Cloudflare WARP на VPS-сервере.
WARP даёт «чистый» IP от Cloudflare, который не заблокирован популярными сервисами (ChatGPT, Netflix, Spotify и др.). WARP даёт «чистый» IP от Cloudflare, который не заблокирован популярными сервисами (ChatGPT, Netflix, Spotify и др.).
> Канал: [YouTube @antenkaru](https://www.youtube.com/@antenkaru) > Канал: [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), и предлагает соответствующий режим.
---
## Возможности ## Возможности
- Установка Cloudflare WARP в один клик | Функция | 3X-UI | AmneziaWG |
- Работа в режиме SOCKS5-прокси (только локальный трафик, не затрагивает основной IP сервера) |---------|:-----:|:---------:|
- Интерактивное SSH-меню с полным управлением | Установка WARP в один клик | ✅ | ✅ |
- Telegram-бот для удалённого мониторинга и управления | Telegram-бот | ✅ | ✅ |
- Автоперезапуск через systemd | Перевыпуск ключа (смена WARP IP) | ✅ | ✅ |
- Готовые JSON-конфигурации для 3X-UI | Автоперезапуск через systemd | ✅ | ✅ |
- Перевыпуск ключа (смена WARP IP) | Полное удаление | ✅ | ✅ |
- Полное удаление в одну команду | SOCKS5-прокси | ✅ | — |
| JSON-конфиги для Xray | ✅ | — |
| Маршрутизация по доменам | ✅ | — |
| Изменение порта SOCKS5 | ✅ | — |
| Управление клиентами (переключатели ✅/☐ в одном меню) | — | ✅ |
| WireGuard внутри Docker | — | ✅ |
| Перезапуск контейнера | — | ✅ |
--- ---
@@ -38,13 +62,24 @@ gowarp
**Важно:** чтобы команда `gowarp` сохранялась и работала после выхода, используйте установку **в два шага** (сначала скачать скрипт в файл, затем запустить), а не через `bash <(curl ...)`. В группе по подписке даётся готовая команда. **Важно:** чтобы команда `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--пошаговая-инструкция).
Клиент → 3X-UI (Xray) → SOCKS5 (WARP 127.0.0.1:40000) → Cloudflare → Интернет
``` ### Как это работает
1. Скрипт устанавливает `cloudflare-warp` на сервер 1. Скрипт устанавливает `cloudflare-warp` на сервер
2. WARP работает в режиме **SOCKS5-прокси** на `127.0.0.1:40000` 2. WARP работает в режиме **SOCKS5-прокси** на `127.0.0.1:40000`
@@ -53,13 +88,13 @@ gowarp
Основной IP сервера **не меняется**. Через WARP идёт только тот трафик, который вы настроите в маршрутизации 3X-UI. Основной IP сервера **не меняется**. Через WARP идёт только тот трафик, который вы настроите в маршрутизации 3X-UI.
--- ### Шаг 1. Установка WARP
## Интеграция с 3X-UI — пошаговая инструкция 1. Запустите `gowarp`
2. Выберите пункт **1** — Установить WARP
3. Дождитесь установки и проверки статуса — должен быть «Подключён»
После установки WARP и подтверждения статуса «Подключён» выполните следующие шаги в панели 3X-UI. ### Шаг 2. Добавление Outbound (исходящее подключение)
### Шаг 1. Добавление Outbound (исходящее подключение)
1. Откройте панель **3X-UI** в браузере 1. Откройте панель **3X-UI** в браузере
2. Перейдите в **Настройки Xray** (Xray Settings) 2. Перейдите в **Настройки Xray** (Xray Settings)
@@ -86,7 +121,7 @@ gowarp
6. Нажмите **Сохранить** (Save) 6. Нажмите **Сохранить** (Save)
### Шаг 2. Настройка маршрутизации (Routing) ### Шаг 3. Настройка маршрутизации (Routing)
Теперь нужно указать, какой трафик направлять через WARP. Теперь нужно указать, какой трафик направлять через WARP.
@@ -125,12 +160,6 @@ gowarp
Если хотите направить **весь** клиентский трафик через WARP: Если хотите направить **весь** клиентский трафик через WARP:
1. В разделе **Routing** добавьте правило:
- **Outbound Tag**: `warp`
- **Network**: `tcp,udp`
Или JSON:
```json ```json
{ {
"type": "field", "type": "field",
@@ -141,7 +170,7 @@ gowarp
> **Внимание:** при этом варианте весь трафик пойдёт через Cloudflare. Скорость может незначительно снизиться. > **Внимание:** при этом варианте весь трафик пойдёт через Cloudflare. Скорость может незначительно снизиться.
#### Вариант В: По IP-адресам #### Вариант В: По IP-адресам (геолокация)
Можно направить через WARP трафик к определённым IP-диапазонам: Можно направить через WARP трафик к определённым IP-диапазонам:
@@ -158,7 +187,7 @@ gowarp
> Трафик в США и Великобританию пойдёт через WARP. > Трафик в США и Великобританию пойдёт через WARP.
### Шаг 3. Перезапуск Xray ### Шаг 4. Перезапуск Xray
После сохранения настроек: После сохранения настроек:
@@ -169,9 +198,7 @@ gowarp
x-ui restart x-ui restart
``` ```
### Шаг 4. Проверка ### Шаг 5. Проверка
Убедитесь, что всё работает:
1. Подключитесь к VPN через клиент (v2rayN, Hiddify, NekoBox и т.д.) 1. Подключитесь к VPN через клиент (v2rayN, Hiddify, NekoBox и т.д.)
2. Откройте [https://whoer.net](https://whoer.net) или [https://ifconfig.me](https://ifconfig.me) 2. Откройте [https://whoer.net](https://whoer.net) или [https://ifconfig.me](https://ifconfig.me)
@@ -180,29 +207,148 @@ x-ui restart
- Сайты из списка (ChatGPT, Netflix и др.) покажут **IP Cloudflare** - Сайты из списка (ChatGPT, Netflix и др.) покажут **IP Cloudflare**
4. Попробуйте открыть [https://chat.openai.com](https://chat.openai.com) — если раньше был заблокирован, теперь должен работать 4. Попробуйте открыть [https://chat.openai.com](https://chat.openai.com) — если раньше был заблокирован, теперь должен работать
### Проверка через SSH Проверка через SSH:
На сервере можно проверить WARP IP командой:
```bash ```bash
curl -s --proxy socks5h://127.0.0.1:40000 ifconfig.me 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. Выберите пункт **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 ## Меню WARP Manager
Меню организовано по секциям. Пункты **15** (WARP) и **811** (бот, промо, инструкция, удаление) одинаковы в обоих режимах; пункты **67** зависят от режима (3X-UI или AmneziaWG).
### Общая секция — WARP-ключ (оба режима)
| Пункт | Действие | | Пункт | Действие |
|-------|----------| |-------|----------|
| 1 | Установить WARP | | 1 | Установить WARP |
| 2 | Запустить WARP | | 2 | Запустить WARP |
| 3 | Остановить WARP | | 3 | Остановить WARP |
| 4 | Статус и конфигурация | | 4 | Статус |
| 5 | JSON для 3X-UI (готовые конфиги) | | 5 | Перевыпуск ключа (новый WARP IP) |
| 6 | Перевыпуск ключа (новый WARP IP) |
### Секция 3X-UI (только в режиме 3X-UI)
| Пункт | Действие |
|-------|----------|
| 6 | Настройки SOCKS5 / JSON для 3X-UI |
| 7 | Изменить порт SOCKS5 | | 7 | Изменить порт SOCKS5 |
### Секция AmneziaWG (только в режиме AmneziaWG)
| Пункт | Действие |
|-------|----------|
| 6 | Переключение клиентов WARP (единое меню, ✅ / ☐) |
| 7 | Перезапуск контейнера |
### Общая секция — бот и прочее (оба режима)
| Пункт | Действие |
|-------|----------|
| 8 | Telegram Bot (настройка и управление) | | 8 | Telegram Bot (настройка и управление) |
| 9 | PROMO | | 9 | PROMO |
| 10 | Инструкция | | 10 | Инструкция |
@@ -213,7 +359,7 @@ curl -s --proxy socks5h://127.0.0.1:40000 ifconfig.me
## Telegram-бот ## Telegram-бот
WARP Manager включает встроенный Telegram-бот для удалённого управления. WARP Manager включает встроенный Telegram-бот для удалённого управления. Бот работает **в обоих режимах** — интерфейс и кнопки автоматически адаптируются.
### Настройка бота ### Настройка бота
@@ -234,15 +380,32 @@ WARP Manager включает встроенный Telegram-бот для уда
- `/start` или `/menu` — главное меню - `/start` или `/menu` — главное меню
### Кнопки меню ### Кнопки бота — режим 3X-UI
- **Статус** — текущий статус WARP, порт, IP | Кнопка | Действие |
- **IP адреса** — реальный IP сервера и WARP IP |--------|----------|
- **Запустить / Остановить** — управление WARP | 📊 Статус | Текущий статус WARP, порт, IP |
- **Перевыпуск ключа** — получить новый WARP IP | 🌍 IP адреса | Реальный IP сервера и WARP IP |
- **JSON для 3X-UI** — готовая конфигурация для копирования | ▶️ Запустить | Запуск WARP |
- **Система** — CPU, RAM, диск, uptime | ⏹ Остановить | Остановка 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 |
| 🏷 Хостинг | Промо-материалы |
### Безопасность ### Безопасность
@@ -254,39 +417,68 @@ WARP Manager включает встроенный Telegram-бот для уда
## Автоперезапуск ## Автоперезапуск
- Служба `warp-svc` настроена с `Restart=always` — WARP автоматически перезапускается при сбое - Служба `warp-svc` (3X-UI) настроена с `Restart=always` — WARP автоматически перезапускается при сбое
- Служба `warp-bot` (Telegram-бот) также имеет `Restart=always` - Служба `warp-bot` (Telegram-бот) также имеет `Restart=always`
- При перезагрузке сервера оба сервиса запускаются автоматически - При перезагрузке сервера сервисы запускаются автоматически
- В режиме AmneziaWG правила маршрутизации прописаны в `start.sh` контейнера — они восстанавливаются при перезапуске контейнера или сервера
--- ---
## Часто задаваемые вопросы ## Часто задаваемые вопросы
### WARP не подключается ### WARP не подключается (3X-UI)
```bash ```bash
warp-cli --accept-tos status warp-cli --accept-tos status
journalctl -u warp-svc --no-pager -n 20 journalctl -u warp-svc --no-pager -n 20
``` ```
Попробуйте перевыпустить ключ (пункт 6 в меню). Попробуйте перевыпустить ключ (пункт 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) 1. Убедитесь, что WARP в статусе «Подключён» (`gowarp` → пункт 4)
2. Проверьте, что домен добавлен в routing-правило в 3X-UI 2. Проверьте, что домен добавлен в routing-правило в 3X-UI
3. Перезапустите Xray: `x-ui restart` 3. Перезапустите Xray: `x-ui restart`
4. Очистите DNS-кэш в браузере или используйте режим инкогнито 4. Очистите DNS-кэш в браузере или используйте режим инкогнито
### Клиент не видит WARP IP (AmneziaWG)
1. Убедитесь, что клиент **включён** в WARP (`gowarp` → пункт 6, в списке должна быть **✅**)
2. Проверьте, что интерфейс `warp` поднят (`gowarp` → пункт 4)
3. Перезапустите контейнер (`gowarp` → пункт 7)
4. Переподключитесь к VPN на клиентском устройстве
### Как сменить WARP IP ### Как сменить WARP IP
В SSH: `gowarp` → пункт **6** (Перевыпуск ключа) - **3X-UI:** `gowarp` → пункт **5** или кнопка бота **🔑 Перевыпуск ключа**
В Telegram: кнопка **Перевыпуск ключа** - **AmneziaWG:** `gowarp` → пункт **5** или кнопка бота **🔑 Перевыпуск ключа**
### Как изменить порт SOCKS5 ### Как изменить порт SOCKS5 (только 3X-UI)
`gowarp` → пункт **7** — введите новый порт. Не забудьте обновить порт в outbound-настройках 3X-UI. `gowarp` → пункт **7** — введите новый порт. Не забудьте обновить порт в outbound-настройках 3X-UI.
### Можно ли переключить режим?
Режим определяется автоматически при запуске. Если на сервере установлены и 3X-UI, и AmneziaWG Docker — скрипт предложит выбрать. Выбор сохраняется в конфигурации.
Чтобы сбросить: удалите строку `MODE=` из `/etc/warp-manager/config` — при следующем запуске скрипт снова предложит выбор.
--- ---
## Удаление ## Удаление
@@ -297,10 +489,27 @@ gowarp
Выберите пункт **11** — Полное удаление. Выберите пункт **11** — Полное удаление.
Будут удалены: cloudflare-warp, конфигурация, Telegram-бот, команда `gowarp`, логи. ### Что удаляется (3X-UI)
- cloudflare-warp и его конфигурация
- Telegram-бот (сервис `warp-bot`)
- Команда `gowarp`
- Конфигурация и логи WARP Manager
**Не забудьте** вручную удалить outbound `warp` и связанные routing-правила из настроек 3X-UI. **Не забудьте** вручную удалить 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 и его клиенты **не затрагиваются**.
--- ---
## Лицензия ## Лицензия

2219
warp.sh

File diff suppressed because it is too large Load Diff