From a2c65efde6caac77d44b4a2f3eca2aff96a8eeb1 Mon Sep 17 00:00:00 2001 From: xVRVx <63975481+xVRVx@users.noreply.github.com> Date: Fri, 13 Feb 2026 00:49:45 +0300 Subject: [PATCH] Add files via upload --- autoXRAYselfRUbrEUxhttp.sh | 207 +++++++++++++++++++------------------ 1 file changed, 105 insertions(+), 102 deletions(-) diff --git a/autoXRAYselfRUbrEUxhttp.sh b/autoXRAYselfRUbrEUxhttp.sh index 157544a..4bd7c5a 100644 --- a/autoXRAYselfRUbrEUxhttp.sh +++ b/autoXRAYselfRUbrEUxhttp.sh @@ -1,22 +1,29 @@ #!/bin/bash -[[ $EUID -eq 0 ]] || { echo "❌ скрипту нужны root права"; exit 1; } + +# Цвета для вывода +GRN='\033[1;32m' +RED='\033[1;31m' +YEL='\033[1;33m' +NC='\033[0m' # No Color + +[[ $EUID -eq 0 ]] || { echo -e "${RED}❌ скрипту нужны root права ${NC}"; exit 1; } DOMAIN=$1 vless_url=$2 if [ -z "$DOMAIN" ]; then - echo "❌ Ошибка: домен не задан." + echo -e "${RED}❌ Ошибка: домен не задан.${NC}" exit 1 fi if [ -z "$vless_url" ]; then - echo "❌ Ошибка: конфиг vless не задан." + echo "${RED}❌ Ошибка: конфиг vless не задан.${NC}" exit 1 fi if [[ "$vless_url" != vless://* ]]; then - echo "❌ Ошибка: Неверный формат vless-ссылки." + echo "${RED}❌ Ошибка: Неверный формат vless-ссылки.${NC}" exit 1 fi @@ -52,14 +59,14 @@ done # Вывод: -echo "== Основное ==" +echo -e "${YEL}== Основное ==${NC}" echo "UUID: $uuidVL" echo "Address: $addressVL" echo "Port: $portVL" echo "Node Name: $node_nameVL" echo "" -echo "== Параметры ==" +echo -e "${YEL}== Параметры ==${NC}" SECURITY="${params[security]}"; echo "SECURITY=$SECURITY" TYPE="${params[type]}"; echo "TYPE=$TYPE" headerType="${params[headerType]}"; echo "headerType=$headerType" @@ -79,37 +86,36 @@ SPX="${params[spx]}"; echo "SPX=$SPX" - - -echo "Обновление и установка необходимых пакетов..." -apt update && apt install curl jq dnsutils openssl -y - +echo "${YEL}Обновление и установка необходимых пакетов...${NC}" +apt-get update && apt-get install curl jq dnsutils openssl nginx certbot -y +systemctl enable --now nginx LOCAL_IP=$(hostname -I | awk '{print $1}') DNS_IP=$(dig +short "$DOMAIN" | grep '^[0-9]') if [ "$LOCAL_IP" != "$DNS_IP" ]; then - echo "❌ Внимание: IP-адрес ($LOCAL_IP) не совпадает с A-записью $DOMAIN ($DNS_IP)." - echo "Правильно укажите одну A-запись для вашего домена в ДНС - $LOCAL_IP" + echo -e "${RED}❌ Внимание: IP-адрес ($LOCAL_IP) не совпадает с A-записью $DOMAIN ($DNS_IP).${NC}" + echo -e "${YEL}Правильно укажите одну A-запись для вашего домена в ДНС - $LOCAL_IP ${NC}" - read -p $'\033[1;31mПродолжить на ваш страх и риск? (y/N): \033[0m' choice + read -p "Продолжить на ваш страх и риск? (y/N):" choice + if [[ ! "$choice" =~ ^[Yy]$ ]]; then - echo -e "\033[31mВыполнение скрипта прервано.\033[0m" + echo -e "${RED}Выполнение скрипта прервано.${NC}" exit 1 fi - echo "Продолжение выполнения скрипта..." + echo -e "${YEL}Продолжение выполнения скрипта...${NC}" fi # Включаем BBR bbr=$(sysctl -a | grep net.ipv4.tcp_congestion_control) if [ "$bbr" = "net.ipv4.tcp_congestion_control = bbr" ]; then - echo "BBR уже запущен" + echo -e "${GRN}BBR уже запущен${NC}" else echo "net.core.default_qdisc=fq" > /etc/sysctl.d/999-autoXRAY.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.d/999-autoXRAY.conf sysctl --system - echo "BBR активирован" + echo -e "${GRN}BBR активирован${NC}" fi cat < /etc/security/limits.d/99-autoXRAY.conf @@ -119,15 +125,11 @@ root soft nofile 65535 root hard nofile 65535 EOF ulimit -n 65535 -echo -e "Лимиты применены. Текущий ulimit -n: $(ulimit -n)" +echo -e "${GRN}Лимиты применены. Текущий ulimit -n: $(ulimit -n) ${NC}" -apt install nginx -y -systemctl enable --now nginx # Блок CERTBOT - START -apt install certbot -y - certbot certonly --webroot -w /var/www/html \ -d $DOMAIN \ -m mail@$DOMAIN \ @@ -137,27 +139,26 @@ certbot certonly --webroot -w /var/www/html \ RET=$? if [ $RET -eq 0 ]; then - echo -e "\n\033[1;32m========================================" + echo -e "\n${GRN}========================================" echo "✅ Команда certbot успешно выполнена" echo "✅ Сертификат https от letsencrypt ПОЛУЧЕН" echo "========================================" - echo -e "\033[0m" + echo -e "${NC}" else - echo -e "\n\033[1;31m========================================" + echo -e "\n${RED}========================================" echo "❌ CERTBOT ЗАВЕРШИЛСЯ С ОШИБКОЙ" echo "❌ Сертификат https от letsencrypt НЕ ПОЛУЧЕН!" echo "❌ Смотрите выше логи процесса получения сертификата" echo "❌ Код возврата: $RET" echo "========================================" - echo -e "\033[0m" + echo -e "${NC}" exit 1 fi # Блок CERTBOT - END +# конфиг nginx CONFIG_PATH="/etc/nginx/sites-available/default" -echo "✅ Записываем конфигурацию в $CONFIG_PATH для домена $DOMAIN" - bash -c "cat > $CONFIG_PATH" < "$SCRIPT_DIR/config.json" @@ -324,6 +329,24 @@ cat << 'EOF' | envsubst > "$SCRIPT_DIR/config.json" } } } + }, + { + "tag": "RUsocks5", + "port": 10443, + "listen": "0.0.0.0", + "protocol": "mixed", + "settings": { + "ip": "0.0.0.0", + "udp": true, + "auth": "password", + "accounts": [ + { + "user": "${socksUser}", + "pass": "${socksPasw}" + + } + ] + } } ], "outbounds": [ @@ -351,23 +374,7 @@ cat << 'EOF' | envsubst > "$SCRIPT_DIR/config.json" "streamSettings": { "network": "$TYPE", "xhttpSettings": { - "extra": { - "headers": { - }, - "noGRPCHeader": false, - "scMaxEachPostBytes": 1500000, - "scMinPostsIntervalMs": 20, - "scStreamUpServerSecs": "60-240", - "xPaddingBytes": "400-800", - "xmux": { - "cMaxReuseTimes": "1000-3000", - "hKeepAlivePeriod": 0, - "hMaxRequestTimes": "400-700", - "hMaxReusableSecs": "1200-1800", - "maxConcurrency": "3-5", - "maxConnections": 0 - } - }, + "extra": ${extra}, "mode": "${mode}", "path": "${path_url}" }, @@ -448,6 +455,12 @@ cat << 'EOF' | envsubst > "$SCRIPT_DIR/config.json" "RUbrEU" ], "outboundTag": "proxy" + }, + { + "inboundTag": [ + "RUsocks5" + ], + "outboundTag": "proxy" } ], "domainStrategy": "IPIfNonMatch" @@ -596,23 +609,7 @@ cat << 'EOF' | envsubst > "$WEB_PATH/$path_subpage.json" "streamSettings": { "network": "$TYPE", "xhttpSettings": { - "extra": { - "headers": { - }, - "noGRPCHeader": false, - "scMaxEachPostBytes": 1500000, - "scMinPostsIntervalMs": 20, - "scStreamUpServerSecs": "60-240", - "xPaddingBytes": "400-800", - "xmux": { - "cMaxReuseTimes": "1000-3000", - "hKeepAlivePeriod": 0, - "hMaxRequestTimes": "400-700", - "hMaxReusableSecs": "1200-1800", - "maxConcurrency": "3-5", - "maxConnections": 0 - } - }, + "extra": ${extra}, "mode": "${mode}", "path": "/${path_xhttp}" }, @@ -768,23 +765,7 @@ cat << 'EOF' | envsubst > "$WEB_PATH/$path_subpage.json" "streamSettings": { "network": "$TYPE", "xhttpSettings": { - "extra": { - "headers": { - }, - "noGRPCHeader": false, - "scMaxEachPostBytes": 1500000, - "scMinPostsIntervalMs": 20, - "scStreamUpServerSecs": "60-240", - "xPaddingBytes": "400-800", - "xmux": { - "cMaxReuseTimes": "1000-3000", - "hKeepAlivePeriod": 0, - "hMaxRequestTimes": "400-700", - "hMaxReusableSecs": "1200-1800", - "maxConcurrency": "3-5", - "maxConnections": 0 - } - }, + "extra": ${extra}, "mode": "${mode}", "path": "${path_url}" }, @@ -814,10 +795,8 @@ cat << 'EOF' | envsubst > "$WEB_PATH/$path_subpage.json" ] EOF -# Перезапуск Xray -echo "Перезапуск Xray..." systemctl restart xray -echo -e "Готово!\n" +echo -e "Перезапуск XRAY" # Формирование ссылок subPageLink="https://$DOMAIN/$path_subpage.json" @@ -838,7 +817,7 @@ ALL_LINKS_TEXT="" cat > "$WEB_PATH/$path_subpage.html" <<'EOF' -autoXRAY configs +autoXRAY bridge configs