From: vados-dev <192440777+vados-dev@users.noreply.github.com> Date: Sat, 18 Jul 2026 00:05:03 +0000 (+0300) Subject: Autocommit in repo: ros.vados.ru, generated by owner: root, in 03:05:03 18.07.2026. X-Git-Url: https://git.vados.ru/gitweb.cgi?a=commitdiff_plain;h=be0e2aa8a3425a738ea949075f73d78d8ef6bd0b;p=Mikrotiks%2Fros.vados.ru.git Autocommit in repo: ros.vados.ru, generated by owner: root, in 03:05:03 18.07.2026. --- diff --git a/html/AM-GlobalFunc.rsc b/html/AM-GlobalFunc.rsc index 2e9fa2760..6b964fa24 100644 --- a/html/AM-GlobalFunc.rsc +++ b/html/AM-GlobalFunc.rsc @@ -17,9 +17,9 @@ :global GlobalFuncReady false; # Git commit id & info, expected configuration version -:global CommitId "main/736/80e2ca4c"; +:global CommitId "main/737/0c95d49c"; :global CommitTAG "unknown"; -:global CommitInfo "Autocommit in repo: ros.vados.ru, generated by owner: root, in 02:35:04 15.07.2026."; +:global CommitInfo "Autocommit in repo: ros.vados.ru, generated by owner: root, in 03:05:03 18.07.2026."; # The variables are received right here. :global GlobalConfVersion 140; diff --git a/html/amneziawg/awg-manager-agent b/html/amneziawg/awg-manager-agent new file mode 160000 index 000000000..1f79a06d0 --- /dev/null +++ b/html/amneziawg/awg-manager-agent @@ -0,0 +1 @@ +Subproject commit 1f79a06d04b42de32a20d6d52e630b41f1abcb22 diff --git a/html/amneziawg/potap1978/awg-manager-agent b/html/amneziawg/potap1978/awg-manager-agent new file mode 160000 index 000000000..1f79a06d0 --- /dev/null +++ b/html/amneziawg/potap1978/awg-manager-agent @@ -0,0 +1 @@ +Subproject commit 1f79a06d04b42de32a20d6d52e630b41f1abcb22 diff --git a/html/amneziawg/potap1978/awg_client-go-ubuntu.sh b/html/amneziawg/potap1978/awg_client-go-ubuntu.sh new file mode 100755 index 000000000..83c2c7b38 --- /dev/null +++ b/html/amneziawg/potap1978/awg_client-go-ubuntu.sh @@ -0,0 +1,448 @@ +#!/bin/bash + +# ============================================ +# AmneziaWG Client Installer / Uninstaller +# Автоматическая установка и удаление AmneziaWG на Ubuntu/Debian +# ============================================ + +set -e + +# Цвета для вывода +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +CYAN='\033[0;36m' +MAGENTA='\033[0;35m' +BOLD='\033[1m' +NC='\033[0m' + +# Функции вывода +print_info() { echo -e "${BLUE}[INFO]${NC} $1"; } +print_success() { echo -e "${GREEN}[OK]${NC} $1"; } +print_warning() { echo -e "${YELLOW}[WARN]${NC} $1"; } +print_error() { echo -e "${RED}[ERROR]${NC} $1"; } + +# Функция проверки успешности +check_success() { + if [ $? -eq 0 ]; then + print_success "$1" + else + print_error "$1" + exit 1 + fi +} + +#echo -e "$YELLOW ⚠️ ВАЖНО: ║" +#echo -e $YELLOW ⚠⚠ + +# ============================================ +# ЗАГОЛОВОК +# ============================================ +show_header() { + clear + echo -e "${CYAN}${BOLD}" + echo "╔══════════════════════════════════════════════════════════════════════════════╗" + echo "║ ║" + echo "║ █████╗ ███╗ ███╗███╗ ██╗███████╗███████╗██╗ █████╗ ██╗ ██╗ ██████╗ ║" + echo "║ ██╔══██╗████╗ ████║████╗ ██║╚══███╔╝██╔════╝██║██╔══██╗██║ ██║██╔════╝ ║" + echo "║ ███████║██╔████╔██║██╔██╗ ██║ ███╔╝ █████╗ ██║███████║██║ █╗ ██║██║ ███╗ ║" + echo "║ ██╔══██║██║╚██╔╝██║██║╚██╗██║ ███╔╝ ██╔══╝ ██║██╔══██║██║███╗██║██║ ██║ ║" + echo "║ ██║ ██║██║ ╚═╝ ██║██║ ╚████║███████╗███████╗██║██║ ██║╚███╔███╔╝╚██████╔╝ ║" + echo "║ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝╚══════╝╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚═════╝ ║" + echo "║ ║" + echo "║ Установка / Удаление AmneziaWG Client ║" + echo "║ v1.0.0 ║" + echo "║ ║" + echo "║ ✨ Передай привеД ПОТАПу ! ✨ ║" + echo "║ ║" + echo "╚══════════════════════════════════════════════════════════════════════════════╝${NC}" + echo "" +} + +# ============================================ +# МЕНЮ +# ============================================ +show_menu() { + echo -e "${CYAN}${BOLD}┌──────────────────────────────────────────────────────────────────────────────────────┐${NC}" + echo -e "${CYAN}${BOLD}│ 📋 ГЛАВНОЕ МЕНЮ │${NC}" + echo -e "${CYAN}${BOLD}└──────────────────────────────────────────────────────────────────────────────────────┘${NC}" + echo "" + echo -e " ${GREEN}1${NC}) Установить AmneziaWG" + echo -e " ${RED}2${NC}) Удалить AmneziaWG" + echo -e " ${YELLOW}0${NC}) Выход" + echo "" + read -p "👉 Выберите пункт меню [0-2]: " choice + echo "" + + case $choice in + 1) + install_amneziawg + ;; + 2) + uninstall_amneziawg + ;; + 0) + echo -e "${GREEN}До свидания!${NC}" + exit 0 + ;; + *) + print_error "Неверный выбор. Попробуйте снова." + sleep 2 + show_menu + ;; + esac +} + +# ============================================ +# ФУНКЦИЯ УСТАНОВКИ +# ============================================ +install_amneziawg() { + clear + show_header + + # Проверка прав root + if [ "$EUID" -ne 0 ]; then + print_error "Запустите скрипт от root (sudo ./install_amneziawg.sh)" + exit 1 + fi + + # ============================================ + # УСТАНОВКА ЗАВИСИМОСТЕЙ + # ============================================ + echo "" + echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo -e "${CYAN}${BOLD} 📦 УСТАНОВКА ЗАВИСИМОСТЕЙ ${NC}" + echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo -e "${MAGENTA}✨ Передай привеД ПОТАПу ! ✨${NC}" + echo "" + + print_info "Обновление списка пакетов..." + apt update -qq + + print_info "Установка зависимостей..." + + # Установка с игнорированием openresolv + if ! apt install -y git build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison make mokutil dkms qrencode iptables 2>/dev/null; then + print_warning "Повторная попытка без openresolv..." + apt install -y git build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison make mokutil dkms qrencode iptables + fi + check_success "Установка зависимостей" + + # Установка MC если нет + if ! command -v mcedit &> /dev/null; then + print_info "Установка Midnight Commander..." + apt install -y mc > /dev/null 2>&1 + check_success "Установка Midnight Commander" + fi + + # ============================================ + # УСТАНОВКА AMNEZIAWG-TOOLS + # ============================================ + echo "" + echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo -e "${CYAN}${BOLD} 🔧 УСТАНОВКА AMNEZIANG-TOOLS ${NC}" + echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo -e "${MAGENTA}✨ Передай привеД ПОТАПу ! ✨${NC}" + echo "" + + cd /tmp + print_info "Загрузка amneziawg-tools..." + wget -q https://github.com/amnezia-vpn/amneziawg-tools/archive/refs/tags/v1.0.20260223.tar.gz + check_success "Загрузка amneziawg-tools" + + tar xvfz v1.0.20260223.tar.gz > /dev/null 2>&1 + cd amneziawg-tools-1.0.20260223/src + + print_info "Сборка amneziawg-tools..." + make > /dev/null 2>&1 + make install > /dev/null 2>&1 + check_success "Установка amneziawg-tools" + + # ============================================ + # УСТАНОВКА GO + # ============================================ + echo "" + echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo -e "${CYAN}${BOLD} 🐹 УСТАНОВКА GO ${NC}" + echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo -e "${MAGENTA}✨ Передай привеД ПОТАПу ! ✨${NC}" + echo "" + + cd /tmp + if [ ! -f "/usr/local/bin/go" ]; then + print_info "Загрузка Go..." + wget -q https://go.dev/dl/go1.22.3.linux-amd64.tar.gz + check_success "Загрузка Go" + + tar xvfz go1.22.3.linux-amd64.tar.gz > /dev/null 2>&1 + mv go /opt/go1.22.3 + ln -s /opt/go1.22.3/bin/go /usr/local/bin/go + check_success "Установка Go" + else + print_success "Go уже установлен" + fi + + # ============================================ + # УСТАНОВКА AMNEZIAWG-GO + # ============================================ + echo "" + echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo -e "${CYAN}${BOLD} 🚀 УСТАНОВКА AMNEZIANG-GO ${NC}" + echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo -e "${MAGENTA}✨ Передай привеД ПОТАПу ! ✨${NC}" + echo "" + + cd /tmp + print_info "Загрузка amneziawg-go..." + wget -q https://github.com/amnezia-vpn/amneziawg-go/archive/refs/tags/v0.2.16.tar.gz + check_success "Загрузка amneziawg-go" + + tar xvfz v0.2.16.tar.gz > /dev/null 2>&1 + cd amneziawg-go-0.2.16 + + print_info "Сборка amneziawg-go..." + make > /dev/null 2>&1 + cp amneziawg-go /usr/local/bin + check_success "Установка amneziawg-go" + + # ============================================ + # СОЗДАНИЕ ДИРЕКТОРИИ ДЛЯ КОНФИГОВ + # ============================================ + mkdir -p /etc/amnezia/amneziawg + + # ============================================ + # РЕДАКТИРОВАНИЕ КОНФИГУРАЦИИ + # ============================================ + echo "" + echo -e "${YELLOW}${BOLD}" + echo "╔══════════════════════════════════════════════════════════════════════════════╗" + echo "║ ║" + echo "║ 🔧 ОТКРЫТИЕ ФАЙЛА КОНФИГУРАЦИИ 🔧 ║" + echo "║ ║" + echo "║ 📁 Файл: /etc/amnezia/amneziawg/awg0.conf ║" + echo "║ ║" + echo "║ ⚠️ ВАЖНО: ║" + echo "║ ───────────────────────────────────────────────────────────────────── ║" + echo "║ 1️⃣ Вставьте конфигурацию клиента AmneziaWG (полностью) ║" + echo -e "║ 2️⃣ Сохраните файл: ${GREEN}F2${YELLOW} или ${GREEN}Ctrl + S${YELLOW} ║" + echo -e "║ 3️⃣ Закройте редактор: ${GREEN}F10${YELLOW} или ${GREEN}Ctrl + X${YELLOW} ║" + echo "║ ║" + echo "║ ✅ После сохранения и выхода установка продолжится автоматически ║" + echo "║ ║" + echo "║ ✨ Передай привеД ПОТАПу ! ✨ ║" + echo "║ ║" + echo "╚══════════════════════════════════════════════════════════════════════════════╝${NC}" + echo "" + echo -e "${YELLOW}👉 Нажмите Enter для открытия редактора...${NC}" + read -p "" + + mcedit /etc/amnezia/amneziawg/awg0.conf + + # ============================================ + # ПРОВЕРКА КОНФИГУРАЦИИ + # ============================================ + if [ ! -s /etc/amnezia/amneziawg/awg0.conf ]; then + echo "" + print_error "Файл конфигурации пуст! Установка прервана." + echo -e "${YELLOW}👉 Запустите скрипт заново и добавьте конфигурацию.${NC}" + exit 1 + fi + + print_success "Конфигурация сохранена" + + # ============================================ + # ЗАПУСК VPN + # ============================================ + echo "" + echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo -e "${CYAN}${BOLD} 🚀 ЗАПУСК VPN ${NC}" + echo -e "${CYAN}${BOLD}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo -e "${MAGENTA}✨ Передай привеД ПОТАПу ! ✨${NC}" + echo "" + + print_info "Запуск AmneziaWG..." + awg-quick up awg0 2>&1 + + # ============================================ + # ПРОВЕРКА СТАТУСА + # ============================================ + sleep 2 + + if ip link show awg0 > /dev/null 2>&1; then + # Получаем внешний IP + EXTERNAL_IP=$(curl -s --max-time 5 https://api.ipify.org 2>/dev/null || curl -s --max-time 5 https://ifconfig.me 2>/dev/null || echo "не удалось определить") + + echo "" + echo -e "${GREEN}${BOLD}" + echo "╔══════════════════════════════════════════════════════════════════════════════╗" + echo "║ ║" + echo "║ ✅ VPN УСПЕШНО ЗАПУЩЕН! ✅ ║" + echo "║ ║" + echo "║ 📡 Интерфейс: awg0 ║" + IP_ADDR=$(ip addr show awg0 2>/dev/null | grep -oP '(?<=inet\s)\d+(\.\d+){3}') + if [ ! -z "$IP_ADDR" ]; then + echo "║ 🌐 Локальный IP: $IP_ADDR ║" + fi + echo "║ 🌍 Внешний IP: $EXTERNAL_IP ║" + echo "║ ║" + echo "║ 🔧 Управление: ║" + echo "║ • Остановка: awg-quick down awg0 ║" + echo "║ • Статус: awg-quick status awg0 ║" + echo "║ • Логи: journalctl -u awg-quick@awg0 -f ║" + echo "║ ║" + echo "║ ✨ Передай привеД ПОТАПу ! ✨ ║" + echo "║ ║" + echo "╚══════════════════════════════════════════════════════════════════════════════╝" + echo -e "${NC}" + echo "" + else + echo "" + echo -e "${RED}${BOLD}" + echo "╔══════════════════════════════════════════════════════════════════════════════╗" + echo "║ ║" + echo "║ ❌ VPN НЕ ЗАПУЩЕН! ❌ ║" + echo "║ ║" + echo "║ 🔍 Возможные причины: ║" + echo "║ • Неверная конфигурация в файле ║" + echo "║ • Проблемы с сетью или портами ║" + echo "║ ║" + echo "║ 🔧 Для диагностики выполните: ║" + echo "║ awg-quick up awg0 ║" + echo "║ journalctl -xe ║" + echo "║ ║" + echo "║ ✨ Передай привеД ПОТАПу ! ✨ ║" + echo "║ ║" + echo "╚══════════════════════════════════════════════════════════════════════════════╝" + echo -e "${NC}" + echo "" + exit 1 + fi + + # ============================================ + # ЗАВЕРШЕНИЕ + # ============================================ + echo -e "${GREEN}✅ Установка AmneziaWG успешно завершена!${NC}" + echo -e "${MAGENTA}✨ Передай привеД ПОТАПу ! ✨${NC}" + echo "" + + read -p "👉 Нажмите Enter для возврата в главное меню..." + show_menu +} + +# ============================================ +# ФУНКЦИЯ УДАЛЕНИЯ +# ============================================ +uninstall_amneziawg() { + clear + show_header + + echo -e "${RED}${BOLD}" + echo "╔══════════════════════════════════════════════════════════════════════════════╗" + echo "║ ║" + echo "║ 🗑️ УДАЛЕНИЕ AMNEZIAWG 🗑️ ║" + echo "║ ║" + echo "║ ⚠️ ВНИМАНИЕ! ║" + echo "║ ───────────────────────────────────────────────────────────────────── ║" + echo "║ Будет удалено: ║" + echo "║ • amneziawg-tools (скомпилированный) ║" + echo "║ • amneziawg-go (скомпилированный) ║" + echo "║ • Go (установленный в /opt/go1.22.3) ║" + echo "║ • Конфигурационные файлы (/etc/amnezia/) ║" + echo "║ • Временные файлы сборки ║" + echo "║ ║" + echo "║ ✅ Зависимости (apt install) останутся нетронутыми ║" + echo "║ ║" + echo "║ ✨ Передай привеД ПОТАПу ! ✨ ║" + echo "║ ║" + echo "╚══════════════════════════════════════════════════════════════════════════════╝${NC}" + echo "" + + read -p "👉 Вы уверены, что хотите удалить AmneziaWG? (y/N): " confirm + + if [[ ! "$confirm" =~ ^[Yy]$ ]]; then + print_info "Удаление отменено" + read -p "👉 Нажмите Enter для возврата в главное меню..." + show_menu + return + fi + + echo "" + print_info "Начинаю удаление AmneziaWG..." + + # Остановка VPN если запущен + if ip link show awg0 > /dev/null 2>&1; then + print_info "Остановка VPN интерфейса awg0..." + awg-quick down awg0 2>/dev/null || true + print_success "VPN остановлен" + fi + + # Удаление amneziawg-go + if [ -f "/usr/local/bin/amneziawg-go" ]; then + print_info "Удаление amneziawg-go..." + rm -f /usr/local/bin/amneziawg-go + print_success "amneziawg-go удалён" + fi + + # Удаление amneziawg-tools (awg, awg-quick и др.) + print_info "Удаление amneziawg-tools..." + rm -f /usr/local/bin/awg + rm -f /usr/local/bin/awg-quick + rm -f /usr/local/bin/awg-genkey + rm -f /usr/local/bin/awg-pubkey + rm -f /usr/local/bin/awg-show + rm -f /usr/local/bin/awg-syncconf + print_success "amneziawg-tools удалены" + + # Удаление Go + if [ -d "/opt/go1.22.3" ]; then + print_info "Удаление Go..." + rm -rf /opt/go1.22.3 + rm -f /usr/local/bin/go + print_success "Go удалён" + fi + + # Удаление конфигурационных файлов + if [ -d "/etc/amnezia" ]; then + print_info "Удаление конфигурационных файлов..." + rm -rf /etc/amnezia + print_success "Конфигурационные файлы удалены" + fi + + # Удаление временных файлов сборки + print_info "Очистка временных файлов..." + rm -rf /tmp/amneziawg-tools-* + rm -rf /tmp/amneziawg-go-* + rm -f /tmp/v1.0.20260223.tar.gz + rm -f /tmp/v0.2.16.tar.gz + rm -f /tmp/go1.22.3.linux-amd64.tar.gz + print_success "Временные файлы удалены" + + echo "" + echo -e "${GREEN}${BOLD}" + echo "╔══════════════════════════════════════════════════════════════════════════════╗" + echo "║ ║" + echo "║ ✅ AMNEZIAWG УСПЕШНО УДАЛЁН! ✅ ║" + echo "║ ║" + echo "║ 🧹 Удалено: ║" + echo "║ • amneziawg-tools и amneziawg-go ║" + echo "║ • Go (из /opt/go1.22.3) ║" + echo "║ • Конфигурация (/etc/amnezia/) ║" + echo "║ ║" + echo "║ 📦 Системные зависимости (apt) остались установленными ║" + echo "║ ║" + echo "║ ✨ Передай привеД ПОТАПу ! ✨ ║" + echo "║ ║" + echo "╚══════════════════════════════════════════════════════════════════════════════╝" + echo -e "${NC}" + echo "" + + read -p "👉 Нажмите Enter для возврата в главное меню..." + show_menu +} + +# ============================================ +# ЗАПУСК +# ============================================ +show_header +show_menu