diff --git a/autoXRAYselfstealConfRU.sh b/autoXRAYselfstealConfRU.sh new file mode 100644 index 0000000..ba2edd5 --- /dev/null +++ b/autoXRAYselfstealConfRU.sh @@ -0,0 +1,451 @@ +#!/bin/bash + +DOMAIN=$1 + +if [ -z "$DOMAIN" ]; then + echo "❌ Ошибка: домен не задан." + exit 1 +fi + +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). + Правильно укажите одну A-запись для вашего домена в ДНС - $LOCAL_IP" + exit 1 +fi + +echo "Обновление и установка необходимых пакетов..." +apt update && apt install sudo -y +#sudo apt update && sudo apt upgrade -y +sudo apt update && sudo apt install -y jq + + + +echo "Меняем пароль для root" +pasw_root=$(openssl rand -base64 20 | tr -dc 'A-Za-z0-9' | head -c 25) +echo "root:$pasw_root" | sudo chpasswd + +echo "Меняем порт ssh" +grep -q '^Port ' /etc/ssh/sshd_config && \ + sudo sed -i 's/^Port .*/Port 468/' /etc/ssh/sshd_config || \ + echo 'Port 468' | sudo tee -a /etc/ssh/sshd_config + +sudo systemctl restart ssh + + + +echo "Настройка DNS..." +echo -e "nameserver 8.8.4.4\nnameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null + +sudo apt install nginx -y + +sudo systemctl enable --now nginx + +sudo apt install certbot python3-certbot-nginx -y + +sudo certbot --nginx -d $DOMAIN --non-interactive --agree-tos --email mail@$DOMAIN + +CONFIG_PATH="/etc/nginx/sites-available/default" + +echo "✅ Записываем конфигурацию в $CONFIG_PATH для домена $DOMAIN" + +sudo bash -c "cat > $CONFIG_PATH" < "$WEB_PATH/index.html" < + + + + + $TITLE + + + +
+

$HEADER

+
+
+ + +
+
+ + +
+ +
+
+ + +EOF + + + +# Установка Xray +bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install + + +# Определяем директорию скрипта +#SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd) +SCRIPT_DIR=/usr/local/etc/xray + +# Генерируем переменные +xray_uuid_vrv=$(xray uuid) +domains=(www.theregister.com www.20minutes.fr www.dealabs.com www.manomano.fr www.caradisiac.com www.techadvisor.com www.computerworld.com teamdocs.su wikiportal.su docscenter.su www.bing.com github.com tradingview.com) +xray_dest_vrv=${domains[$RANDOM % ${#domains[@]}]} +xray_dest_vrv222=${domains[$RANDOM % ${#domains[@]}]} + +key_output=$(xray x25519) +xray_privateKey_vrv=$(echo "$key_output" | awk -F': ' '/Private key/ {print $2}') +xray_publicKey_vrv=$(echo "$key_output" | awk -F': ' '/Public key/ {print $2}') + +xray_shortIds_vrv=$(openssl rand -hex 8) + +xray_sspasw_vrv=$(openssl rand -base64 15 | tr -dc 'A-Za-z0-9' | head -c 20) + +path_subpage=$(openssl rand -base64 15 | tr -dc 'A-Za-z0-9' | head -c 20) + +ipserv=$(hostname -I | awk '{print $1}') + + + +# Экспортируем переменные для envsubst +export xray_uuid_vrv xray_dest_vrv xray_dest_vrv222 xray_privateKey_vrv xray_publicKey_vrv xray_shortIds_vrv xray_sspasw_vrv DOMAIN path_subpage WEB_PATH + +# Создаем JSON конфигурацию сервера +cat << 'EOF' | envsubst > "$SCRIPT_DIR/config.json" +{ + "dns": { + "servers": [ + "8.8.4.4", + "8.8.8.8" + ] + }, + "log": { + "loglevel": "none", + "dnsLog": false + }, + "routing": { + "domainStrategy": "IPIfNonMatch", + "rules": [ + { + "ip": [ + "geoip:private", + "geoip:ru" + + ], + "outboundTag": "BLOCK", + "type": "field" + }, + { + "protocol": [ + "bittorrent" + ], + "outboundTag": "BLOCK" + }, + { + "domain": [ + "geosite:category-ads" + ], + "outboundTag": "BLOCK" + }, + { + "domain": [ + "geosite:private", + "geosite:apple", + "geosite:apple-pki", + "geosite:huawei", + "geosite:xiaomi", + "geosite:category-android-app-download", + "geosite:f-droid", + "geosite:twitch", + "geosite:yandex", + "geosite:vk", + "geosite:mailru", + "geosite:category-gov-ru" + ], + "outboundTag": "BLOCK" + } + ] + }, + "inbounds": [ + { + "tag": "VtcpRself", + "listen": "0.0.0.0", + "port": 443, + "protocol": "vless", + "settings": { + "clients": [ + { + "flow": "xtls-rprx-vision", + "id": "${xray_uuid_vrv}" + } + ], + "decryption": "none" + }, + "streamSettings": { + "network": "tcp", + "security": "reality", + "realitySettings": { + "show": false, + "dest": "3333", + "xver": 0, + "serverNames": [ + "$DOMAIN" + ], + "privateKey": "${xray_privateKey_vrv}", + "publicKey": "${xray_publicKey_vrv}", + "shortIds": [ + "${xray_shortIds_vrv}" + ] + } + }, + "sniffing": { + "enabled": true, + "destOverride": [ + "http", + "tls", + "quic" + ] + } + } + ], + "outbounds": [ + { + "protocol": "freedom", + "tag": "DIRECT" + }, + { + "protocol": "blackhole", + "tag": "BLOCK" + } + ] +} + +EOF + +# Создаем JSON конфигурацию клиента +cat << 'EOF' | envsubst > "$WEB_PATH/$path_subpage.html" +{ + "log": { + "loglevel": "warning" + }, + "dns": { + "servers": [ + "8.8.4.4", + "8.8.8.8" + ] + }, + "routing": { + "domainStrategy": "IPIfNonMatch", + "rules": [ + { + "domain": [ + "geosite:category-ads-all" + ], + "outboundTag": "block" + }, + { + "protocol": [ + "bittorrent" + ], + "outboundTag": "direct" + }, + { + "domain": [ + "geosite:private", + "geosite:apple", + "geosite:apple-pki", + "geosite:huawei", + "geosite:xiaomi", + "geosite:category-android-app-download", + "geosite:f-droid", + "geosite:twitch", + "geosite:yandex", + "geosite:vk", + "geosite:category-gov-ru" + ], + "outboundTag": "direct" + }, + { + "ip": [ + "geoip:ru", + "geoip:private" + ], + "outboundTag": "direct" + }, + { + "type": "field", + "ip": [ + "geoip:!ru" + ], + "outboundTag": "proxy" + } + ] + }, + "inbounds": [ + { + "tag": "socks-in", + "protocol": "socks", + "listen": "127.0.0.1", + "port": 10808, + "settings": { + "udp": true + } + }, + { + "tag": "http-in", + "protocol": "http", + "listen": "127.0.0.1", + "port": 10809 + } + ], + "outbounds": [ + { + "tag": "proxy", + "protocol": "vless", + "settings": { + "vnext": [ + { + "address": "$DOMAIN", + "port": 443, + "users": [ + { + "id": "${xray_uuid_vrv}", + "flow": "xtls-rprx-vision", + "encryption": "none", + "level": 0 + } + ] + } + ] + }, + "streamSettings": { + "network": "tcp", + "tcpSettings": { + "acceptProxyProtocol": false + }, + "security": "reality", + "realitySettings": { + "serverName": "$DOMAIN", + "publicKey": "${xray_publicKey_vrv}", + "shortId": "${xray_shortIds_vrv}" + } + } + }, + + { + "tag": "direct", + "protocol": "freedom" + }, + { + "tag": "block", + "protocol": "blackhole" + } + ] +} + +EOF + +# Перезапуск Xray +echo "Перезапуск Xray..." +sudo systemctl restart xray + +echo "Готово! +" +# Формирование ссылок +subPageLink="https://$DOMAIN/$path_subpage.html" + +# Формирование ссылок +link1="vless://${xray_uuid_vrv}@$DOMAIN:443?security=reality&sni=$DOMAIN&fp=chrome&pbk=${xray_publicKey_vrv}&sid=${xray_shortIds_vrv}&type=tcp&flow=xtls-rprx-vision&encryption=none#VPN-tcp-443-self" + +echo " +Новый пароль root: $pasw_root +Новый порт для ssh: 468" + +echo -e " +Скопируйте ссылку в специализированное приложение: +- iOS: Happ или v2rayTun или v2rayN +- Android: Happ или v2rayTun или v2rayNG +- Windows: v2rayN или Happ(alpha) + +Сайт с инструкциями: blog.skybridge.run" + +echo -e " +Для проверки работоспобоности: +$link1 + +Ваша страничка подписки: +\033[32m$subPageLink\033[0m + +Открыт socks5 на порту 10808 и http на 10809, настройте ваш клиент! + +Поддержать автора: https://github.com/xVRVx/autoXRAY +"