Added hysteria

This commit is contained in:
Magnus Root 2026-06-02 10:57:33 +03:00
parent f4a246eb14
commit 0d12288a51
2 changed files with 236 additions and 177 deletions

0
LICENSE Normal file → Executable file
View file

413
yarx.sh
View file

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