Restructure menu: WARP key / 3X-UI / AmneziaWG / Bot / Other sections; auto-confirm wgcf

Made-with: Cursor
This commit is contained in:
anten-ka
2026-03-20 15:48:42 +03:00
parent 29a4f168a7
commit 0a4b0c4620
2 changed files with 97 additions and 87 deletions

View File

@@ -255,7 +255,7 @@ curl -s --proxy socks5h://127.0.0.1:40000 ifconfig.me
**Через SSH-меню:**
1. Выберите пункт **5** Добавить клиентов в WARP
1. Выберите пункт **6** Добавить клиентов в WARP
2. Вы увидите список всех клиентов AmneziaWG с их IP и именами
3. Введите номер клиента, которого хотите добавить, или `all` для всех
4. Скрипт:
@@ -286,11 +286,11 @@ docker exec <имя_контейнера> curl -s --interface warp ifconfig.me
| Действие | SSH-меню | Telegram-бот |
|----------|----------|--------------|
| Добавить в WARP | пункт **5** | Клиенты → Добавить |
| Убрать из WARP | пункт **6** | Клиенты → Убрать |
| Список клиентов в WARP | пункт **7** | Клиенты |
| Перевыпуск ключа | пункт **12** | 🔑 Перевыпуск ключа |
| Перезапуск контейнера | пункт **13** | 🔄 Контейнер |
| Добавить в WARP | пункт **6** | Клиенты → Добавить |
| Убрать из WARP | пункт **7** | Клиенты → Убрать |
| Список клиентов в WARP | пункт **8** | Клиенты |
| Перевыпуск ключа | пункт **5** | 🔑 Перевыпуск ключа |
| Перезапуск контейнера | пункт **9** | 🔄 Контейнер |
### Что происходит при добавлении клиента
@@ -320,24 +320,9 @@ docker exec <имя_контейнера> curl -s --interface warp ifconfig.me
## Меню WARP Manager
### Режим 3X-UI
Меню организовано по секциям. Нумерация пунктов 15 и 1013 одинакова в обоих режимах, а секция 69 адаптируется.
| Пункт | Действие |
|-------|----------|
| 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
### Общая секция — WARP-ключ (оба режима)
| Пункт | Действие |
|-------|----------|
@@ -345,15 +330,32 @@ docker exec <имя_контейнера> curl -s --interface warp ifconfig.me
| 2 | Запустить WARP |
| 3 | Остановить WARP |
| 4 | Статус |
| 5 | Добавить клиентов в WARP |
| 6 | Убрать клиентов из WARP |
| 7 | Показать клиентов |
| 8 | Telegram Bot |
| 9 | PROMO |
| 10 | Инструкция |
| 11 | Полное удаление |
| 12 | Перевыпуск ключа |
| 13 | Перезапуск контейнера |
| 5 | Перевыпуск ключа (новый WARP IP) |
### Секция 3X-UI (только в режиме 3X-UI)
| Пункт | Действие |
|-------|----------|
| 6 | JSON конфиг для 3X-UI |
| 7 | Изменить порт SOCKS5 |
### Секция AmneziaWG (только в режиме AmneziaWG)
| Пункт | Действие |
|-------|----------|
| 6 | Добавить клиентов в WARP |
| 7 | Убрать клиентов из WARP |
| 8 | Показать клиентов в WARP |
| 9 | Перезапуск контейнера |
### Общая секция — бот и прочее (оба режима)
| Пункт | Действие |
|-------|----------|
| 10 | Telegram Bot (настройка и управление) |
| 11 | PROMO |
| 12 | Инструкция |
| 13 | Полное удаление |
| 0 | Выход |
---
@@ -368,7 +370,7 @@ WARP Manager включает встроенный Telegram-бот для уда
2. Отправьте `/newbot`
3. Задайте имя и username бота
4. Скопируйте полученный **токен**
5. На сервере выполните `gowarp` → пункт **8** (Telegram Bot)
5. На сервере выполните `gowarp` → пункт **10** (Telegram Bot)
6. Выберите **1) Токен бота** — вставьте токен
7. Выберите **2) Chat ID (авто)**:
- Откройте вашего бота в Telegram
@@ -436,7 +438,7 @@ warp-cli --accept-tos status
journalctl -u warp-svc --no-pager -n 20
```
Попробуйте перевыпустить ключ (пункт 6 в меню).
Попробуйте перевыпустить ключ (пункт 5 в меню).
### WARP не подключается (AmneziaWG)
@@ -451,7 +453,7 @@ docker exec <контейнер> cat /opt/warp/warp.conf
docker exec <контейнер> ip link show warp
```
Попробуйте перевыпустить ключ (пункт 12) или перезапустить контейнер (пункт 13).
Попробуйте перевыпустить ключ (пункт 5) или перезапустить контейнер (пункт 9).
### Сайт всё ещё заблокирован после настройки (3X-UI)
@@ -462,15 +464,15 @@ docker exec <контейнер> ip link show warp
### Клиент не видит WARP IP (AmneziaWG)
1. Убедитесь, что клиент **добавлен** в WARP (`gowarp` → пункт 7)
1. Убедитесь, что клиент **добавлен** в WARP (`gowarp` → пункт 8)
2. Проверьте, что интерфейс `warp` поднят (`gowarp` → пункт 4)
3. Перезапустите контейнер (`gowarp` → пункт 13)
3. Перезапустите контейнер (`gowarp` → пункт 9)
4. Переподключитесь к VPN на клиентском устройстве
### Как сменить WARP IP
- **3X-UI:** `gowarp` → пункт **6** или кнопка бота **🔑 Перевыпуск ключа**
- **AmneziaWG:** `gowarp` → пункт **12** или кнопка бота **🔑 Перевыпуск ключа**
- **3X-UI:** `gowarp` → пункт **5** или кнопка бота **🔑 Перевыпуск ключа**
- **AmneziaWG:** `gowarp` → пункт **5** или кнопка бота **🔑 Перевыпуск ключа**
### Как изменить порт SOCKS5 (только 3X-UI)
@@ -490,7 +492,7 @@ docker exec <контейнер> ip link show warp
gowarp
```
Выберите пункт **11** — Полное удаление.
Выберите пункт **13** — Полное удаление.
### Что удаляется (3X-UI)

102
warp.sh
View File

@@ -492,14 +492,13 @@ awg_install_wgcf() {
awg_ensure_account() {
if [ ! -f "$WGCF_ACCOUNT" ]; then
echo -e "${YELLOW}Регистрация WARP через wgcf...${NC}"
echo -e "${WHITE}Если попросит подтверждение — введите ${GREEN}y${NC}"
(cd /root && ./wgcf register)
(cd /root && yes | ./wgcf register 2>/dev/null)
fi
[ -f "$WGCF_ACCOUNT" ] || { echo -e "${RED}Не создан $WGCF_ACCOUNT${NC}"; return 1; }
}
awg_generate_profile() {
(cd /root && ./wgcf generate)
(cd /root && yes | ./wgcf generate 2>/dev/null)
[ -f "$WGCF_PROFILE" ] || { echo -e "${RED}Не создан профиль.${NC}"; return 1; }
}
@@ -1135,7 +1134,7 @@ bot_handle_callback() {
else
docker exec "$CONTAINER" sh -c "wg-quick down '$AWG_WARP_CONF' 2>/dev/null || true"
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
local ep; ep=$(awg_resolve_endpoint 2>/dev/null)
if [ -n "$ep" ]; then
@@ -1467,57 +1466,66 @@ show_menu() {
sc="$RED"; [[ "$st" == "Подключён" ]] && sc="$GREEN"; [[ "$st" == "Отключён" ]] && sc="$YELLOW"
local mode_label="3X-UI"; [ "$MODE" = "amnezia" ] && mode_label="AmneziaWG"
echo -e "${MAGENTA}******************************************************"
echo " anten-ka · WARP Manager v${WARP_VERSION} (${mode_label})"
echo " YouTube: https://www.youtube.com/@antenkaru"
echo -e "******************************************************${NC}"
echo -e "${WHITE}IP сервера: ${GREEN}${MY_IP}${NC} ${WHITE}WARP: ${sc}${st}${NC}"
echo -e "${MAGENTA}╔══════════════════════════════════════════════════════╗"
echo -e " anten-ka · WARP Manager v${WARP_VERSION} "
echo -e " YouTube: https://www.youtube.com/@antenkaru"
echo -e "╚══════════════════════════════════════════════════════╝${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
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
if [ "$MODE" = "amnezia" ]; then
echo -e "${WHITE}Контейнер: ${CYAN}${CONTAINER:-N/A}${NC}"
if [ "$MODE" = "amnezia" ] && [ -n "${CONTAINER:-}" ]; then
echo -e " ${WHITE}Контейнер:${NC} ${CYAN}${CONTAINER}${NC}"
fi
echo -e "------------------------------------------------------"
echo -e " 1) ${GREEN}Установить WARP${NC}"
echo -e " 2) ${CYAN}Запустить WARP${NC}"
echo -e " 3) ${YELLOW}Остановить WARP${NC}"
echo -e " 4) 📊 ${WHITE}Статус${NC}"
echo -e "\n${CYAN}── WARP-ключ ──────────────────────────────────────────${NC}"
echo -e " 1) ${GREEN}Установить WARP${NC}"
echo -e " 2) ${CYAN}Запустить WARP${NC}"
echo -e " 3) ${YELLOW}Остановить WARP${NC}"
echo -e " 4) 📊 Статус"
echo -e " 5) 🔑 ${YELLOW}Перевыпуск ключа${NC}"
if [ "$MODE" = "3xui" ]; then
echo -e " 5) 📋 ${CYAN}JSON для 3X-UI${NC}"
echo -e " 6) 🔑 ${YELLOW}Перевыпуск ключа${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}"
echo -e "\n${CYAN}── 3X-UI ──────────────────────────────────────────────${NC}"
echo -e " 6) 📋 ${CYAN}JSON конфиг для 3X-UI${NC}"
echo -e " 7) 🔧 ${WHITE}Изменить порт SOCKS5${NC}"
fi
echo -e " 8) 🤖 ${CYAN}Telegram Bot${NC}"
echo -e " 9) ${YELLOW}PROMO${NC}"
echo -e "10) ${MAGENTA}📚 Инструкция${NC}"
echo -e "11) ${RED}⚠ Полное удаление${NC}"
echo -e " 0) Выход"
echo -e "------------------------------------------------------"
read -p "Выбор: " ch
if [ "$MODE" = "amnezia" ]; then
echo -e "\n${CYAN}── AmneziaWG ──────────────────────────────────────────${NC}"
echo -e " 6) ${GREEN} Добавить клиентов в WARP${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 "${CYAN}──────────────────────────────────────────────────────${NC}"
read -p " Выбор: " ch
case $ch in
1) [ "$MODE" = "3xui" ] && install_warp_3xui || install_warp_awg ;;
2) [ "$MODE" = "3xui" ] && start_warp_3xui || start_warp_awg ;;
3) [ "$MODE" = "3xui" ] && stop_warp_3xui || stop_warp_awg ;;
4) [ "$MODE" = "3xui" ] && show_status_3xui || show_status_awg ;;
5) [ "$MODE" = "3xui" ] && show_xui_json || awg_add_clients_ssh ;;
6) [ "$MODE" = "3xui" ] && rekey_warp_3xui || awg_remove_clients_ssh ;;
7) [ "$MODE" = "3xui" ] && change_port_3xui || awg_show_clients_ssh ;;
8) bot_menu ;;
9) show_promo ;;
10) show_info ;;
11) full_uninstall ;;
12) [ "$MODE" = "amnezia" ] && rekey_warp_awg ;;
13) [ "$MODE" = "amnezia" ] && awg_restart_container ;;
0) exit 0 ;;
1) [ "$MODE" = "3xui" ] && install_warp_3xui || install_warp_awg ;;
2) [ "$MODE" = "3xui" ] && start_warp_3xui || start_warp_awg ;;
3) [ "$MODE" = "3xui" ] && stop_warp_3xui || stop_warp_awg ;;
4) [ "$MODE" = "3xui" ] && show_status_3xui || show_status_awg ;;
5) [ "$MODE" = "3xui" ] && rekey_warp_3xui || rekey_warp_awg ;;
6) [ "$MODE" = "3xui" ] && show_xui_json || awg_add_clients_ssh ;;
7) [ "$MODE" = "3xui" ] && change_port_3xui || awg_remove_clients_ssh ;;
8) [ "$MODE" = "amnezia" ] && awg_show_clients_ssh ;;
9) [ "$MODE" = "amnezia" ] && awg_restart_container ;;
10) bot_menu ;;
11) show_promo ;;
12) show_info ;;
13) full_uninstall ;;
0) exit 0 ;;
esac
done
}