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
#Качаем и ставим пакет
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 <<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
#Определяем переменные и накатываем конфиг для пользователя
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 <<EOF
listen: :443
acme:
domains:
- $HYSTERIADOMEN
email: $EMAILFORNOTIFICATIONS
obfs:
type: salamander
salamander:
password: $SALAMANDERPASS
auth:
type: password
password: $HYSTERIAPASS
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
sudo systemctl start hysteria-server.service
sudo systemctl enable hysteria-server.service
sudo tee hysteria-client.yaml <<EOF
server: $HYSTERIADOMEN:443
auth: $HYSTERIAPASS
obfs:
type: salamander
salamander:
password: $SALAMANDERPASS
bandwidth:
up: 50 mbps
down: 200 mbps
socks5:
listen: 127.0.0.1:1080
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"
echo "Ваша строка для подключения:"
hysteria share -c hysteria-client.yaml
echo "И она же в виде QR-кода:"
hysteria share -c hysteria-client.yaml --qr
else
echo "Тогда заканчиваем"
fi