README v2.0: full docs for both 3X-UI and AmneziaWG modes

Made-with: Cursor
This commit is contained in:
anten-ka
2026-03-20 15:27:20 +03:00
parent 3f097263e8
commit 29a4f168a7

303
README.md
View File

@@ -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 и его клиенты **не затрагиваются**.
---
## Лицензия