#!/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" <