mirror of
https://github.com/anten-ka/go_warp_pro.git
synced 2026-05-19 20:36:01 +00:00
520 lines
24 KiB
Markdown
520 lines
24 KiB
Markdown
# WARP Manager v2.2
|
||
|
||
**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)
|