189 lines
4.8 KiB
Bash
Executable file
189 lines
4.8 KiB
Bash
Executable file
#!/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"
|
||
EOF
|
||
)
|
||
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": [
|
||
{
|
||
"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"
|
||
}
|
||
]
|
||
}
|
||
EOF
|
||
|
||
sudo systemctl start xray
|
||
sudo systemctl enable xray
|
||
#Делаем скрипт для мониторинга работоспособности службы и её подъёма, если упала
|
||
sudo cat <<EOF > /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
|
||
|
||
(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"
|