From 13e25fcc74d82c4786027b291f36b3e776051194 Mon Sep 17 00:00:00 2001 From: adminalt Date: Mon, 14 Sep 2026 10:33:52 +0000 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20install/install.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/install.sh | 226 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 226 insertions(+) create mode 100644 install/install.sh diff --git a/install/install.sh b/install/install.sh new file mode 100644 index 0000000..86dcee5 --- /dev/null +++ b/install/install.sh @@ -0,0 +1,226 @@ +#!/usr/bin/env bash +# +# Автоустановка: VLESS+XHTTP+Reality (443) + VLESS+TCP+Vision+Reality (8443) + Hysteria2 (443/udp) +# Ubuntu 22.04/24.04, запускать от root: sudo bash install.sh +# +set -euo pipefail + +# ========================= НАСТРОЙКИ (отредактируйте перед запуском) ========================= +DOMAIN="" # ваш домен, нужен для сертификата (letsencrypt), напр. example.com +DEST_XHTTP="addons.mozilla.org" # dest-домен для XHTTP-Reality инбаунда +DEST_TCP="www.lovelive-anime.jp" # dest-домен для TCP-Vision-Reality инбаунда (должен ОТЛИЧАТЬСЯ от первого) +HYSTERIA_MASQ_URL="https://www.bing.com" # сайт-прикрытие для Hysteria2 masquerade +TELEGRAM_BOT_TOKEN="" # опционально: для алертов мониторинга +TELEGRAM_CHAT_ID="" # опционально +# ============================================================================================== + +if [[ $EUID -ne 0 ]]; then + echo "Запускать от root: sudo bash install.sh" + exit 1 +fi + +if [[ -z "$DOMAIN" ]]; then + echo "Укажите DOMAIN в начале скрипта (нужен для TLS-сертификата Hysteria2/Trojan)." + exit 1 +fi + +WORKDIR="/opt/vpn-setup" +mkdir -p "$WORKDIR" +cd "$WORKDIR" + +echo "== 1/9: Обновление системы и зависимости ==" +apt-get update -y +apt-get install -y curl wget unzip jq openssl uuid-runtime certbot socat cron + +echo "== 2/9: Установка Xray-core ==" +bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install +XRAY_BIN="/usr/local/bin/xray" + +echo "== 3/9: Установка Hysteria2 ==" +bash <(curl -fsSL https://get.hy2.sh/) + +echo "== 4/9: Получение TLS-сертификата (для Hysteria2) ==" +systemctl stop nginx 2>/dev/null || true +if [[ ! -f "/etc/letsencrypt/live/${DOMAIN}/fullchain.pem" ]]; then + certbot certonly --standalone --non-interactive --agree-tos -m "admin@${DOMAIN}" -d "${DOMAIN}" +fi +CERT_PATH="/etc/letsencrypt/live/${DOMAIN}/fullchain.pem" +KEY_PATH="/etc/letsencrypt/live/${DOMAIN}/privkey.pem" + +echo "== 5/9: Генерация ключей, UUID, паролей ==" +UUID1=$(uuidgen) +UUID2=$(uuidgen) +REALITY_KEYS=$($XRAY_BIN x25519) +PRIVATE_KEY=$(echo "$REALITY_KEYS" | grep -i "Private" | awk '{print $NF}') +PUBLIC_KEY=$(echo "$REALITY_KEYS" | grep -i "Public" | awk '{print $NF}') +SHORT_ID1=$(openssl rand -hex 8) +SHORT_ID2=$(openssl rand -hex 8) +XHTTP_PATH="/$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 16)/" +HYSTERIA_PASSWORD=$(openssl rand -hex 16) +HYSTERIA_OBFS_PASSWORD=$(openssl rand -hex 16) + +echo "== 6/9: Конфигурация Xray (2 инбаунда) ==" +mkdir -p /usr/local/etc/xray +cat > /usr/local/etc/xray/config.json < /etc/hysteria/config.yaml < /dev/null; then + ufw allow 443/tcp + ufw allow 443/udp + ufw allow 8443/tcp + ufw allow 22/tcp +fi + +# Сохраняем все параметры для монитора и вывода клиенту +cat > "$WORKDIR/params.env" <