3x-ui.sh: ядро Xray 26.6.27 для совместимости с Hiddify и Mihomo, безопасные сайты маскировки

Xray 26.7.11 и новее не пропускает REALITY-клиентов на Mihomo и sing-box
(Hiddify, FlClash, Clash Verge, Mihomo в XKeen). 3X-UI 3.8.5 ставит 26.9.9,
поэтому скрипт переключает ядро на 26.6.27 — последнюю версию, с которой
работают все клиенты и которую принимает панель.

Сайты маскировки: убраны Microsoft и Apple — их не советует сам Xray.
This commit is contained in:
PinkmanXXX
2026-09-25 22:44:03 +03:00
parent 9dc917dfea
commit 791e4117fa
+20 -1
View File
@@ -11,11 +11,16 @@
set -Eeuo pipefail set -Eeuo pipefail
XUI_VERSION="v3.8.5" XUI_VERSION="v3.8.5"
# Ядро Xray для панели. С 26.7.x клиенты на Mihomo и sing-box (Hiddify, FlClash,
# Clash Verge, Mihomo в XKeen) не проходят REALITY — проверено 2026-09-25.
# 26.6.27 — последняя версия, с которой работают все клиенты и которую принимает 3X-UI.
XRAY_CORE="v26.6.27"
XUI_REPO="MHSanaei/3x-ui" XUI_REPO="MHSanaei/3x-ui"
RESULT=/root/3x-ui.txt RESULT=/root/3x-ui.txt
XUI_ENV=/etc/x-ui/install-result.env XUI_ENV=/etc/x-ui/install-result.env
# Сайты для маскировки REALITY: нужны TLS 1.3 и HTTP/2. Берём первый доступный. # Сайты для маскировки REALITY: нужны TLS 1.3 и HTTP/2. Берём первый доступный.
SNI_CANDIDATES=(www.microsoft.com www.apple.com dl.google.com www.amazon.com) # Apple, iCloud, Microsoft и домены .ru сам Xray не советует — их тут нет.
SNI_CANDIDATES=(dl.google.com www.amazon.com www.samsung.com www.yahoo.com)
if [[ -t 1 ]]; then if [[ -t 1 ]]; then
G=$'\e[32m'; Y=$'\e[33m'; R=$'\e[31m'; B=$'\e[1m'; D=$'\e[2m'; N=$'\e[0m' G=$'\e[32m'; Y=$'\e[33m'; R=$'\e[31m'; B=$'\e[1m'; D=$'\e[2m'; N=$'\e[0m'
@@ -178,6 +183,20 @@ main() {
wait_panel wait_panel
fi fi
# --- ядро Xray, совместимое со всеми клиентами ---
local cur_core
cur_core=$(/usr/local/x-ui/bin/xray-linux-* version 2>/dev/null | awk 'NR==1 {print "v" $2}')
if [[ $cur_core != "$XRAY_CORE" ]]; then
say "Ставлю ядро Xray $XRAY_CORE (совместимо с Hiddify, Mihomo и другими клиентами)"
api POST "server/installXray/$XRAY_CORE" '{}' >/dev/null
for _ in $(seq 1 30); do
cur_core=$(/usr/local/x-ui/bin/xray-linux-* version 2>/dev/null | awk 'NR==1 {print "v" $2}')
[[ $cur_core == "$XRAY_CORE" ]] && break
sleep 2
done
[[ $cur_core == "$XRAY_CORE" ]] || warn "Не удалось сменить ядро Xray (сейчас $cur_core). Клиенты на Mihomo и sing-box могут не подключиться."
fi
# --- подключение VLESS REALITY --- # --- подключение VLESS REALITY ---
local keys priv pub uuid sid sub settings stream sniffing body existing local keys priv pub uuid sid sub settings stream sniffing body existing
existing=$(api GET inbounds/list | jq -c --argjson p "$PORT" '[.[] | select(.port == $p)][0] // empty') existing=$(api GET inbounds/list | jq -c --argjson p "$PORT" '[.[] | select(.port == $p)][0] // empty')