diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/yarx.sh b/yarx.sh index 1736ffd..0afb9ce 100755 --- a/yarx.sh +++ b/yarx.sh @@ -1,189 +1,248 @@ #!/bin/bash -#Качаем и ставим пакет -wget https://github.com/XTLS/Xray-core/releases/download/v1.8.4/Xray-linux-64.zip -sudo apt install unzip -y -sudo mkdir /opt/xray -sudo unzip ./Xray-linux-64.zip -d /opt/xray -sudo chmod +x /opt/xray/xray -#Накатываем конфиг для XRAY -read -p "Вы хотите, чтобы через VPN был доступ до сайтов на территории РФ? Есть вариант спалиться (Y/N):" GEOIP -if [ $GEOIP = "Y"] || [ $GEOIP = "y" ]; then - ROUTES=$(cat << EOF - "rules": [], - "domainStrategy": "AsIs" +read -p "Вы хотите установить VLESS (Y/N)?: " VLESSYN +if [ $VLESSYN = "Y" ] || [ $VLESSYN = "y" ]; then + #Качаем и ставим пакет + wget https://github.com/XTLS/Xray-core/releases/download/v1.8.4/Xray-linux-64.zip + sudo apt install unzip -y + sudo mkdir /opt/xray + sudo unzip ./Xray-linux-64.zip -d /opt/xray + sudo chmod +x /opt/xray/xray + #Накатываем конфиг для XRAY + read -p "Вы хотите, чтобы через VPN был доступ до сайтов на территории РФ? Есть вариант спалиться (Y/N):" GEOIP + if [ $GEOIP = "Y"] || [ $GEOIP = "y" ]; then + ROUTES=$(cat << EOF + "rules": [], + "domainStrategy": "AsIs" EOF -) -else - echo "Ну нет так нет" - ROUTES=$(cat << EOF - "domainStrategy": "IPIfNonMatch", - "rules": [ + ) + else + echo "Ну нет так нет" + ROUTES=$(cat << EOF + "domainStrategy": "IPIfNonMatch", + "rules": [ + { + "type": "field", + "ip": [ + "geoip:private" + ], + "outboundTag": "block" + }, + { + "type": "field", + "ip": ["geoip:ru"], + "outboundTag": "block" + }, + { + "type": "field", + "domain": [ + "geosite:category-ads-all" + ], + "outboundTag": "block" + } + ] +EOF + ) + #Накатываем конфиг для сервиса + sudo cat << EOF > /usr/lib/systemd/system/xray.service + [Unit] + Description=Xray Service + Documentation=https://github.com/xtls + After=network.target nss-lookup.target + + [Service] + User=nobody + CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE + AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE + NoNewPrivileges=true + ExecStart=/opt/xray/xray run -config /opt/xray/config.json + Restart=on-failure + RestartPreventExitStatus=23 + LimitNPROC=10000 + LimitNOFILE=1000000 + LogLevelMax=4 + + [Install] + WantedBy=multi-user.target +EOF + #Определяем переменные и накатываем конфиг для пользователя + sites=("vk" "yandex" "mail" "mts" "gosuslugi") + random_index=$((RANDOM % ${#sites[@]})) + RANDOM_SITE=${sites[$random_index]} + + UUID=$(/opt/xray/xray uuid) + KEYS=$(/opt/xray/xray x25519) + PRIVATE=$(echo $KEYS | awk '{print $3}') + PUBLIC=$(echo $KEYS | awk '{print $6}') + SHORT=$(openssl rand -hex 8) + MAIL=$(hostname) + IP=$(ip r get 8.8.8.8 | awk '{print $7}') + + sudo cat << EOF > /opt/xray/config.json + { + "log": { + "loglevel": "warning" + }, + "routing": { + $ROUTES + }, + "inbounds": [ { - "type": "field", - "ip": [ - "geoip:private" - ], - "outboundTag": "block" + "port": 443, + "protocol": "vless", + "tag": "vless_tls", + "settings": { + "clients": [ + { + "id": "$UUID", + "email": "$USER@$MAIL", + "flow": "xtls-rprx-vision" + } + ], + "decryption": "none" + }, + "streamSettings": { + "network": "tcp", + "security": "reality", + "realitySettings": { + "show": false, + "dest": "www.$RANDOM_SITE.ru:443", + "xver": 0, + "serverNames": [ + "www.$RANDOM_SITE.ru" + ], + "privateKey": "$PRIVATE", + "minClientVer": "", + "maxClientVer": "", + "maxTimeDiff": 0, + "shortIds": [ + "$SHORT" + ] + } + }, + "sniffing": { + "enabled": true, + "destOverride": [ + "http", + "tls" + ] + } + } + ], + "outbounds": [ + { + "protocol": "freedom", + "tag": "direct" }, { - "type": "field", - "ip": ["geoip:ru"], - "outboundTag": "block" - }, - { - "type": "field", - "domain": [ - "geosite:category-ads-all" - ], - "outboundTag": "block" + "protocol": "blackhole", + "tag": "block" } ] + } EOF -) -#Накатываем конфиг для сервиса -sudo cat << EOF > /usr/lib/systemd/system/xray.service -[Unit] -Description=Xray Service -Documentation=https://github.com/xtls -After=network.target nss-lookup.target - -[Service] -User=nobody -CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE -AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE -NoNewPrivileges=true -ExecStart=/opt/xray/xray run -config /opt/xray/config.json -Restart=on-failure -RestartPreventExitStatus=23 -LimitNPROC=10000 -LimitNOFILE=1000000 -LogLevelMax=4 - -[Install] -WantedBy=multi-user.target + + sudo systemctl start xray + sudo systemctl enable xray + #Делаем скрипт для мониторинга работоспособности службы и её подъёма, если упала + sudo cat < /usr/local/bin/xray_monitor.sh + #!/bin/bash + + SERVICE_NAME="xray" + + check_service() { + if systemctl is-active --quiet $SERVICE_NAME; then + echo "XRAY working" + else + systemctl restart $SERVICE_NAME + if systemctl is-active --quiet $SERVICE_NAME; then + echo "XRAY успешно перезапущен" + else + echo "XRAY не стартует" + fi + fi + } + + check_service EOF -#Определяем переменные и накатываем конфиг для пользователя -sites=("vk" "yandex" "mail" "mts" "gosuslugi") -random_index=$((RANDOM % ${#sites[@]})) -RANDOM_SITE=${sites[$random_index]} - -UUID=$(/opt/xray/xray uuid) -KEYS=$(/opt/xray/xray x25519) -PRIVATE=$(echo $KEYS | awk '{print $3}') -PUBLIC=$(echo $KEYS | awk '{print $6}') -SHORT=$(openssl rand -hex 8) -MAIL=$(hostname) -IP=$(ip r get 8.8.8.8 | awk '{print $7}') - -sudo cat << EOF > /opt/xray/config.json -{ - "log": { - "loglevel": "warning" - }, - "routing": { -$ROUTES - }, - "inbounds": [ - { - "port": 443, - "protocol": "vless", - "tag": "vless_tls", - "settings": { - "clients": [ - { - "id": "$UUID", - "email": "$USER@$MAIL", - "flow": "xtls-rprx-vision" - } - ], - "decryption": "none" - }, - "streamSettings": { - "network": "tcp", - "security": "reality", - "realitySettings": { - "show": false, - "dest": "www.$RANDOM_SITE.ru:443", - "xver": 0, - "serverNames": [ - "www.$RANDOM_SITE.ru" - ], - "privateKey": "$PRIVATE", - "minClientVer": "", - "maxClientVer": "", - "maxTimeDiff": 0, - "shortIds": [ - "$SHORT" - ] - } - }, - "sniffing": { - "enabled": true, - "destOverride": [ - "http", - "tls" - ] - } - } - ], - "outbounds": [ - { - "protocol": "freedom", - "tag": "direct" - }, - { - "protocol": "blackhole", - "tag": "block" - } - ] -} + + (crontab -l 2>/dev/null; echo "*/5 * * * * /usr/local/bin/xray_monitor.sh >> /var/log/xray_monitor.log 2>&1") | crontab - + + echo "Клиент https://github.com/MatsuriDayo/nekoray/releases" + echo "" + echo "ПАРАМЕТРЫ ДЛЯ НАСТРОЙКИ ПРИЛОЖЕНИЯ. СОХРАНИТЕ ИХ!!!" + echo "Название: Любое" + echo "Адрес: $IP" + echo "Порт: 443" + echo "ID: $UUID" + echo "Поток: xtls-rprx-vision" + echo "Шифрование: none" + echo "Сеть: tcp" + echo "Тип заголовка: none" + echo "Узел HTTP и Путь пустые" + echo "TLS: reality" + echo "SNI www.$RANDOM_SITE.ru" + echo "ОТПЕЧАТОК: Chrome" + echo "ОТКРЫТЫЙ КЛЮЧ: $PUBLIC" + echo "ShortID: $SHORT" + echo "SpiderX: Пусто" + echo "" + echo "ТАКЖЕ МОЖНО ПРОСТО ИМПОРТИРОВАТЬ НАСТРОЙКИ ИЗ ДАННОЙ СТРОКИ" + echo "vless://$UUID@$IP:443?security=reality&encryption=none&pbk=$PUBLIC&headerType=none&fp=chrome&type=tcp&flow=xtls-rprx-vision&sni=www.$RANDOM_SITE.com&sid=$SHORT#VLESS%20HEILTZEENTCH" +else + echo "Понял, идём дальше" +fi +echo "Для установки hysterya Вам нужно иметь свой домен" +read -p "Вы хотите установить HYSTERIA2 (Y/N)?: " HYSTERIAYN +if [ $HYSTERIAYN = "Y" ] || [ $HYSTERIAYN = "y" ]; then + curl -fsSL https://get.hy2.sh/ > hysterya.sh + chmod +x hysterya.sh + sudo ./hysterya.sh + read -p "Введите Ваш домен: " HYSTERIADOMEN + read -p "Введите Ваш пароль от пользователя Hysteria: " HYSTERIAPASS + read -p "Введите Ваш пароль от обфускатора Salamander: " SALAMANDERPASS + read -p "Введите почту для уведомлений: " EMAILFORNOTIFICATIONS + rm /etc/hysteria/config.yaml + sudo tee /etc/hysteria/config.yaml < /usr/local/bin/xray_monitor.sh -#!/bin/bash - -SERVICE_NAME="xray" - -check_service() { - if systemctl is-active --quiet $SERVICE_NAME; then - echo "XRAY working" - else - systemctl restart $SERVICE_NAME - if systemctl is-active --quiet $SERVICE_NAME; then - echo "XRAY успешно перезапущен" - else - echo "XRAY не стартует" - fi - fi -} - -check_service + sudo systemctl start hysteria-server.service + sudo systemctl enable hysteria-server.service + sudo tee hysteria-client.yaml </dev/null; echo "*/5 * * * * /usr/local/bin/xray_monitor.sh >> /var/log/xray_monitor.log 2>&1") | crontab - - -echo "Клиент https://github.com/MatsuriDayo/nekoray/releases" -echo "" -echo "ПАРАМЕТРЫ ДЛЯ НАСТРОЙКИ ПРИЛОЖЕНИЯ. СОХРАНИТЕ ИХ!!!" -echo "Название: Любое" -echo "Адрес: $IP" -echo "Порт: 443" -echo "ID: $UUID" -echo "Поток: xtls-rprx-vision" -echo "Шифрование: none" -echo "Сеть: tcp" -echo "Тип заголовка: none" -echo "Узел HTTP и Путь пустые" -echo "TLS: reality" -echo "SNI www.$RANDOM_SITE.ru" -echo "ОТПЕЧАТОК: Chrome" -echo "ОТКРЫТЫЙ КЛЮЧ: $PUBLIC" -echo "ShortID: $SHORT" -echo "SpiderX: Пусто" -echo "" -echo "ТАКЖЕ МОЖНО ПРОСТО ИМПОРТИРОВАТЬ НАСТРОЙКИ ИЗ ДАННОЙ СТРОКИ" -echo "vless://$UUID@$IP:443?security=reality&encryption=none&pbk=$PUBLIC&headerType=none&fp=chrome&type=tcp&flow=xtls-rprx-vision&sni=www.$RANDOM_SITE.com&sid=$SHORT#VLESS%20HEILTZEENTCH" + echo "Ваша строка для подключения:" + hysteria share -c hysteria-client.yaml + echo "И она же в виде QR-кода:" + hysteria share -c hysteria-client.yaml --qr +else + echo "Тогда заканчиваем" +fi \ No newline at end of file