mirror of
https://github.com/anten-ka/go_warp_pro.git
synced 2026-05-19 19:46:10 +00:00
Restructure menu: WARP key / 3X-UI / AmneziaWG / Bot / Other sections; auto-confirm wgcf
Made-with: Cursor
This commit is contained in:
82
README.md
82
README.md
@@ -255,7 +255,7 @@ curl -s --proxy socks5h://127.0.0.1:40000 ifconfig.me
|
|||||||
|
|
||||||
**Через SSH-меню:**
|
**Через SSH-меню:**
|
||||||
|
|
||||||
1. Выберите пункт **5** — ➕ Добавить клиентов в WARP
|
1. Выберите пункт **6** — ➕ Добавить клиентов в WARP
|
||||||
2. Вы увидите список всех клиентов AmneziaWG с их IP и именами
|
2. Вы увидите список всех клиентов AmneziaWG с их IP и именами
|
||||||
3. Введите номер клиента, которого хотите добавить, или `all` для всех
|
3. Введите номер клиента, которого хотите добавить, или `all` для всех
|
||||||
4. Скрипт:
|
4. Скрипт:
|
||||||
@@ -286,11 +286,11 @@ docker exec <имя_контейнера> curl -s --interface warp ifconfig.me
|
|||||||
|
|
||||||
| Действие | SSH-меню | Telegram-бот |
|
| Действие | SSH-меню | Telegram-бот |
|
||||||
|----------|----------|--------------|
|
|----------|----------|--------------|
|
||||||
| Добавить в WARP | пункт **5** | Клиенты → ➕ Добавить |
|
| Добавить в WARP | пункт **6** | Клиенты → ➕ Добавить |
|
||||||
| Убрать из WARP | пункт **6** | Клиенты → ➖ Убрать |
|
| Убрать из WARP | пункт **7** | Клиенты → ➖ Убрать |
|
||||||
| Список клиентов в WARP | пункт **7** | Клиенты |
|
| Список клиентов в WARP | пункт **8** | Клиенты |
|
||||||
| Перевыпуск ключа | пункт **12** | 🔑 Перевыпуск ключа |
|
| Перевыпуск ключа | пункт **5** | 🔑 Перевыпуск ключа |
|
||||||
| Перезапуск контейнера | пункт **13** | 🔄 Контейнер |
|
| Перезапуск контейнера | пункт **9** | 🔄 Контейнер |
|
||||||
|
|
||||||
### Что происходит при добавлении клиента
|
### Что происходит при добавлении клиента
|
||||||
|
|
||||||
@@ -320,24 +320,9 @@ docker exec <имя_контейнера> curl -s --interface warp ifconfig.me
|
|||||||
|
|
||||||
## Меню WARP Manager
|
## Меню WARP Manager
|
||||||
|
|
||||||
### Режим 3X-UI
|
Меню организовано по секциям. Нумерация пунктов 1–5 и 10–13 одинакова в обоих режимах, а секция 6–9 адаптируется.
|
||||||
|
|
||||||
| Пункт | Действие |
|
### Общая секция — WARP-ключ (оба режима)
|
||||||
|-------|----------|
|
|
||||||
| 1 | Установить WARP |
|
|
||||||
| 2 | Запустить WARP |
|
|
||||||
| 3 | Остановить WARP |
|
|
||||||
| 4 | Статус и конфигурация |
|
|
||||||
| 5 | JSON для 3X-UI (готовые конфиги) |
|
|
||||||
| 6 | Перевыпуск ключа (новый WARP IP) |
|
|
||||||
| 7 | Изменить порт SOCKS5 |
|
|
||||||
| 8 | Telegram Bot |
|
|
||||||
| 9 | PROMO |
|
|
||||||
| 10 | Инструкция |
|
|
||||||
| 11 | Полное удаление |
|
|
||||||
| 0 | Выход |
|
|
||||||
|
|
||||||
### Режим AmneziaWG
|
|
||||||
|
|
||||||
| Пункт | Действие |
|
| Пункт | Действие |
|
||||||
|-------|----------|
|
|-------|----------|
|
||||||
@@ -345,15 +330,32 @@ docker exec <имя_контейнера> curl -s --interface warp ifconfig.me
|
|||||||
| 2 | Запустить WARP |
|
| 2 | Запустить WARP |
|
||||||
| 3 | Остановить WARP |
|
| 3 | Остановить WARP |
|
||||||
| 4 | Статус |
|
| 4 | Статус |
|
||||||
| 5 | ➕ Добавить клиентов в WARP |
|
| 5 | Перевыпуск ключа (новый WARP IP) |
|
||||||
| 6 | ➖ Убрать клиентов из WARP |
|
|
||||||
| 7 | Показать клиентов |
|
### Секция 3X-UI (только в режиме 3X-UI)
|
||||||
| 8 | Telegram Bot |
|
|
||||||
| 9 | PROMO |
|
| Пункт | Действие |
|
||||||
| 10 | Инструкция |
|
|-------|----------|
|
||||||
| 11 | Полное удаление |
|
| 6 | JSON конфиг для 3X-UI |
|
||||||
| 12 | Перевыпуск ключа |
|
| 7 | Изменить порт SOCKS5 |
|
||||||
| 13 | Перезапуск контейнера |
|
|
||||||
|
### Секция AmneziaWG (только в режиме AmneziaWG)
|
||||||
|
|
||||||
|
| Пункт | Действие |
|
||||||
|
|-------|----------|
|
||||||
|
| 6 | ➕ Добавить клиентов в WARP |
|
||||||
|
| 7 | ➖ Убрать клиентов из WARP |
|
||||||
|
| 8 | Показать клиентов в WARP |
|
||||||
|
| 9 | Перезапуск контейнера |
|
||||||
|
|
||||||
|
### Общая секция — бот и прочее (оба режима)
|
||||||
|
|
||||||
|
| Пункт | Действие |
|
||||||
|
|-------|----------|
|
||||||
|
| 10 | Telegram Bot (настройка и управление) |
|
||||||
|
| 11 | PROMO |
|
||||||
|
| 12 | Инструкция |
|
||||||
|
| 13 | Полное удаление |
|
||||||
| 0 | Выход |
|
| 0 | Выход |
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -368,7 +370,7 @@ WARP Manager включает встроенный Telegram-бот для уда
|
|||||||
2. Отправьте `/newbot`
|
2. Отправьте `/newbot`
|
||||||
3. Задайте имя и username бота
|
3. Задайте имя и username бота
|
||||||
4. Скопируйте полученный **токен**
|
4. Скопируйте полученный **токен**
|
||||||
5. На сервере выполните `gowarp` → пункт **8** (Telegram Bot)
|
5. На сервере выполните `gowarp` → пункт **10** (Telegram Bot)
|
||||||
6. Выберите **1) Токен бота** — вставьте токен
|
6. Выберите **1) Токен бота** — вставьте токен
|
||||||
7. Выберите **2) Chat ID (авто)**:
|
7. Выберите **2) Chat ID (авто)**:
|
||||||
- Откройте вашего бота в Telegram
|
- Откройте вашего бота в Telegram
|
||||||
@@ -436,7 +438,7 @@ 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)
|
### WARP не подключается (AmneziaWG)
|
||||||
|
|
||||||
@@ -451,7 +453,7 @@ docker exec <контейнер> cat /opt/warp/warp.conf
|
|||||||
docker exec <контейнер> ip link show warp
|
docker exec <контейнер> ip link show warp
|
||||||
```
|
```
|
||||||
|
|
||||||
Попробуйте перевыпустить ключ (пункт 12) или перезапустить контейнер (пункт 13).
|
Попробуйте перевыпустить ключ (пункт 5) или перезапустить контейнер (пункт 9).
|
||||||
|
|
||||||
### Сайт всё ещё заблокирован после настройки (3X-UI)
|
### Сайт всё ещё заблокирован после настройки (3X-UI)
|
||||||
|
|
||||||
@@ -462,15 +464,15 @@ docker exec <контейнер> ip link show warp
|
|||||||
|
|
||||||
### Клиент не видит WARP IP (AmneziaWG)
|
### Клиент не видит WARP IP (AmneziaWG)
|
||||||
|
|
||||||
1. Убедитесь, что клиент **добавлен** в WARP (`gowarp` → пункт 7)
|
1. Убедитесь, что клиент **добавлен** в WARP (`gowarp` → пункт 8)
|
||||||
2. Проверьте, что интерфейс `warp` поднят (`gowarp` → пункт 4)
|
2. Проверьте, что интерфейс `warp` поднят (`gowarp` → пункт 4)
|
||||||
3. Перезапустите контейнер (`gowarp` → пункт 13)
|
3. Перезапустите контейнер (`gowarp` → пункт 9)
|
||||||
4. Переподключитесь к VPN на клиентском устройстве
|
4. Переподключитесь к VPN на клиентском устройстве
|
||||||
|
|
||||||
### Как сменить WARP IP
|
### Как сменить WARP IP
|
||||||
|
|
||||||
- **3X-UI:** `gowarp` → пункт **6** или кнопка бота **🔑 Перевыпуск ключа**
|
- **3X-UI:** `gowarp` → пункт **5** или кнопка бота **🔑 Перевыпуск ключа**
|
||||||
- **AmneziaWG:** `gowarp` → пункт **12** или кнопка бота **🔑 Перевыпуск ключа**
|
- **AmneziaWG:** `gowarp` → пункт **5** или кнопка бота **🔑 Перевыпуск ключа**
|
||||||
|
|
||||||
### Как изменить порт SOCKS5 (только 3X-UI)
|
### Как изменить порт SOCKS5 (только 3X-UI)
|
||||||
|
|
||||||
@@ -490,7 +492,7 @@ docker exec <контейнер> ip link show warp
|
|||||||
gowarp
|
gowarp
|
||||||
```
|
```
|
||||||
|
|
||||||
Выберите пункт **11** — Полное удаление.
|
Выберите пункт **13** — Полное удаление.
|
||||||
|
|
||||||
### Что удаляется (3X-UI)
|
### Что удаляется (3X-UI)
|
||||||
|
|
||||||
|
|||||||
82
warp.sh
82
warp.sh
@@ -492,14 +492,13 @@ awg_install_wgcf() {
|
|||||||
awg_ensure_account() {
|
awg_ensure_account() {
|
||||||
if [ ! -f "$WGCF_ACCOUNT" ]; then
|
if [ ! -f "$WGCF_ACCOUNT" ]; then
|
||||||
echo -e "${YELLOW}Регистрация WARP через wgcf...${NC}"
|
echo -e "${YELLOW}Регистрация WARP через wgcf...${NC}"
|
||||||
echo -e "${WHITE}Если попросит подтверждение — введите ${GREEN}y${NC}"
|
(cd /root && yes | ./wgcf register 2>/dev/null)
|
||||||
(cd /root && ./wgcf register)
|
|
||||||
fi
|
fi
|
||||||
[ -f "$WGCF_ACCOUNT" ] || { echo -e "${RED}Не создан $WGCF_ACCOUNT${NC}"; return 1; }
|
[ -f "$WGCF_ACCOUNT" ] || { echo -e "${RED}Не создан $WGCF_ACCOUNT${NC}"; return 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
awg_generate_profile() {
|
awg_generate_profile() {
|
||||||
(cd /root && ./wgcf generate)
|
(cd /root && yes | ./wgcf generate 2>/dev/null)
|
||||||
[ -f "$WGCF_PROFILE" ] || { echo -e "${RED}Не создан профиль.${NC}"; return 1; }
|
[ -f "$WGCF_PROFILE" ] || { echo -e "${RED}Не создан профиль.${NC}"; return 1; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1135,7 +1134,7 @@ bot_handle_callback() {
|
|||||||
else
|
else
|
||||||
docker exec "$CONTAINER" sh -c "wg-quick down '$AWG_WARP_CONF' 2>/dev/null || true"
|
docker exec "$CONTAINER" sh -c "wg-quick down '$AWG_WARP_CONF' 2>/dev/null || true"
|
||||||
rm -f "$WGCF_ACCOUNT"
|
rm -f "$WGCF_ACCOUNT"
|
||||||
(cd /root && ./wgcf register --accept-tos 2>/dev/null && ./wgcf generate 2>/dev/null)
|
(cd /root && yes | ./wgcf register 2>/dev/null && yes | ./wgcf generate 2>/dev/null)
|
||||||
if [ -f "$WGCF_PROFILE" ]; then
|
if [ -f "$WGCF_PROFILE" ]; then
|
||||||
local ep; ep=$(awg_resolve_endpoint 2>/dev/null)
|
local ep; ep=$(awg_resolve_endpoint 2>/dev/null)
|
||||||
if [ -n "$ep" ]; then
|
if [ -n "$ep" ]; then
|
||||||
@@ -1467,56 +1466,65 @@ show_menu() {
|
|||||||
sc="$RED"; [[ "$st" == "Подключён" ]] && sc="$GREEN"; [[ "$st" == "Отключён" ]] && sc="$YELLOW"
|
sc="$RED"; [[ "$st" == "Подключён" ]] && sc="$GREEN"; [[ "$st" == "Отключён" ]] && sc="$YELLOW"
|
||||||
local mode_label="3X-UI"; [ "$MODE" = "amnezia" ] && mode_label="AmneziaWG"
|
local mode_label="3X-UI"; [ "$MODE" = "amnezia" ] && mode_label="AmneziaWG"
|
||||||
|
|
||||||
echo -e "${MAGENTA}******************************************************"
|
echo -e "${MAGENTA}╔══════════════════════════════════════════════════════╗"
|
||||||
echo " anten-ka · WARP Manager v${WARP_VERSION} (${mode_label})"
|
echo -e "║ anten-ka · WARP Manager v${WARP_VERSION} ║"
|
||||||
echo " YouTube: https://www.youtube.com/@antenkaru"
|
echo -e "║ YouTube: https://www.youtube.com/@antenkaru ║"
|
||||||
echo -e "******************************************************${NC}"
|
echo -e "╚══════════════════════════════════════════════════════╝${NC}"
|
||||||
echo -e "${WHITE}IP сервера: ${GREEN}${MY_IP}${NC} ${WHITE}WARP: ${sc}${st}${NC}"
|
echo -e " ${WHITE}IP сервера:${NC} ${GREEN}${MY_IP}${NC} ${WHITE}Режим:${NC} ${CYAN}${mode_label}${NC}"
|
||||||
|
echo -e " ${WHITE}WARP:${NC} ${sc}${st}${NC}"
|
||||||
if [ "$MODE" = "3xui" ] && is_warp_running; then
|
if [ "$MODE" = "3xui" ] && is_warp_running; then
|
||||||
echo -e "${WHITE}SOCKS5: ${CYAN}127.0.0.1:${SOCKS_PORT}${NC}"
|
echo -e " ${WHITE}SOCKS5:${NC} ${CYAN}127.0.0.1:${SOCKS_PORT}${NC}"
|
||||||
fi
|
fi
|
||||||
if [ "$MODE" = "amnezia" ]; then
|
if [ "$MODE" = "amnezia" ] && [ -n "${CONTAINER:-}" ]; then
|
||||||
echo -e "${WHITE}Контейнер: ${CYAN}${CONTAINER:-N/A}${NC}"
|
echo -e " ${WHITE}Контейнер:${NC} ${CYAN}${CONTAINER}${NC}"
|
||||||
fi
|
fi
|
||||||
echo -e "------------------------------------------------------"
|
|
||||||
|
echo -e "\n${CYAN}── WARP-ключ ──────────────────────────────────────────${NC}"
|
||||||
echo -e " 1) ${GREEN}Установить WARP${NC}"
|
echo -e " 1) ${GREEN}Установить WARP${NC}"
|
||||||
echo -e " 2) ${CYAN}Запустить WARP${NC}"
|
echo -e " 2) ${CYAN}Запустить WARP${NC}"
|
||||||
echo -e " 3) ${YELLOW}Остановить WARP${NC}"
|
echo -e " 3) ${YELLOW}Остановить WARP${NC}"
|
||||||
echo -e " 4) 📊 ${WHITE}Статус${NC}"
|
echo -e " 4) 📊 Статус"
|
||||||
|
echo -e " 5) 🔑 ${YELLOW}Перевыпуск ключа${NC}"
|
||||||
|
|
||||||
if [ "$MODE" = "3xui" ]; then
|
if [ "$MODE" = "3xui" ]; then
|
||||||
echo -e " 5) 📋 ${CYAN}JSON для 3X-UI${NC}"
|
echo -e "\n${CYAN}── 3X-UI ──────────────────────────────────────────────${NC}"
|
||||||
echo -e " 6) 🔑 ${YELLOW}Перевыпуск ключа${NC}"
|
echo -e " 6) 📋 ${CYAN}JSON конфиг для 3X-UI${NC}"
|
||||||
echo -e " 7) 🔧 ${WHITE}Изменить порт SOCKS5${NC}"
|
echo -e " 7) 🔧 ${WHITE}Изменить порт SOCKS5${NC}"
|
||||||
else
|
|
||||||
echo -e " 5) ${GREEN}➕ Добавить клиентов в WARP${NC}"
|
|
||||||
echo -e " 6) ${YELLOW}➖ Убрать клиентов из WARP${NC}"
|
|
||||||
echo -e " 7) 👥 ${WHITE}Показать клиентов${NC}"
|
|
||||||
echo -e "12) 🔑 ${YELLOW}Перевыпуск ключа${NC}"
|
|
||||||
echo -e "13) 🔄 ${CYAN}Перезапуск контейнера${NC}"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e " 8) 🤖 ${CYAN}Telegram Bot${NC}"
|
if [ "$MODE" = "amnezia" ]; then
|
||||||
echo -e " 9) ${YELLOW}PROMO${NC}"
|
echo -e "\n${CYAN}── AmneziaWG ──────────────────────────────────────────${NC}"
|
||||||
echo -e "10) ${MAGENTA}📚 Инструкция${NC}"
|
echo -e " 6) ${GREEN}➕ Добавить клиентов в WARP${NC}"
|
||||||
echo -e "11) ${RED}⚠ Полное удаление${NC}"
|
echo -e " 7) ${YELLOW}➖ Убрать клиентов из WARP${NC}"
|
||||||
|
echo -e " 8) 👥 ${WHITE}Показать клиентов в WARP${NC}"
|
||||||
|
echo -e " 9) 🔄 ${CYAN}Перезапуск контейнера${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\n${CYAN}── Telegram-бот ───────────────────────────────────────${NC}"
|
||||||
|
echo -e " 10) 🤖 ${CYAN}Настройка и управление ботом${NC}"
|
||||||
|
|
||||||
|
echo -e "\n${CYAN}── Прочее ─────────────────────────────────────────────${NC}"
|
||||||
|
echo -e " 11) ${YELLOW}PROMO${NC}"
|
||||||
|
echo -e " 12) ${MAGENTA}📚 Инструкция${NC}"
|
||||||
|
echo -e " 13) ${RED}⚠ Полное удаление${NC}"
|
||||||
echo -e " 0) Выход"
|
echo -e " 0) Выход"
|
||||||
echo -e "------------------------------------------------------"
|
echo -e "${CYAN}──────────────────────────────────────────────────────${NC}"
|
||||||
read -p "Выбор: " ch
|
read -p " Выбор: " ch
|
||||||
|
|
||||||
case $ch in
|
case $ch in
|
||||||
1) [ "$MODE" = "3xui" ] && install_warp_3xui || install_warp_awg ;;
|
1) [ "$MODE" = "3xui" ] && install_warp_3xui || install_warp_awg ;;
|
||||||
2) [ "$MODE" = "3xui" ] && start_warp_3xui || start_warp_awg ;;
|
2) [ "$MODE" = "3xui" ] && start_warp_3xui || start_warp_awg ;;
|
||||||
3) [ "$MODE" = "3xui" ] && stop_warp_3xui || stop_warp_awg ;;
|
3) [ "$MODE" = "3xui" ] && stop_warp_3xui || stop_warp_awg ;;
|
||||||
4) [ "$MODE" = "3xui" ] && show_status_3xui || show_status_awg ;;
|
4) [ "$MODE" = "3xui" ] && show_status_3xui || show_status_awg ;;
|
||||||
5) [ "$MODE" = "3xui" ] && show_xui_json || awg_add_clients_ssh ;;
|
5) [ "$MODE" = "3xui" ] && rekey_warp_3xui || rekey_warp_awg ;;
|
||||||
6) [ "$MODE" = "3xui" ] && rekey_warp_3xui || awg_remove_clients_ssh ;;
|
6) [ "$MODE" = "3xui" ] && show_xui_json || awg_add_clients_ssh ;;
|
||||||
7) [ "$MODE" = "3xui" ] && change_port_3xui || awg_show_clients_ssh ;;
|
7) [ "$MODE" = "3xui" ] && change_port_3xui || awg_remove_clients_ssh ;;
|
||||||
8) bot_menu ;;
|
8) [ "$MODE" = "amnezia" ] && awg_show_clients_ssh ;;
|
||||||
9) show_promo ;;
|
9) [ "$MODE" = "amnezia" ] && awg_restart_container ;;
|
||||||
10) show_info ;;
|
10) bot_menu ;;
|
||||||
11) full_uninstall ;;
|
11) show_promo ;;
|
||||||
12) [ "$MODE" = "amnezia" ] && rekey_warp_awg ;;
|
12) show_info ;;
|
||||||
13) [ "$MODE" = "amnezia" ] && awg_restart_container ;;
|
13) full_uninstall ;;
|
||||||
0) exit 0 ;;
|
0) exit 0 ;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user