mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-09-09 03:37:17 +00:00
2ec6c73613
Bump xtls/xray-core to 37ceb8b4b6 (v26.9.8) and the three binary pins (DockerInit.sh, release.yml Linux + Windows) in lockstep. No deleted symbols; the impact is entirely on the JSON config surface. Outbound "proxySettings" is now refused by the config loader (moved to streamSettings.sockopt.dialerProxy) and a freedom outbound rejects sockopt.addressPortStrategy. Either key in a stored template would keep the core from starting after the upgrade, so a new OutboundRemovedKeysFix seeder rewrites xrayTemplateConfig once: proxySettings.tag becomes sockopt.dialerProxy (an existing dialerProxy wins) and addressPortStrategy is dropped from freedom outbounds. Template saves and outbound subscriptions already run through the vendored loader, so the new refusals surface there with the core's own message. REALITY no longer applies a built-in minClientVer (26.3.27) when the field is empty. The form placeholder and the min/max hints in all 13 locales now say that empty means no minimum. New upstream keys the Zod schemas would otherwise strip, with form support where a sibling field already had it: - blackhole response type "custom" with base64 customResponseData - realm finalmask ipMode (dual/v4/v6) and portMapping (UPnP / NAT-PMP) - quicParams brutalDisableLossCompensation, disableChromeParrot, disableGSO, disableStatelessReset - hysteria masquerade proxy xForwarded - wireguard outbound remoteDNS - routing rule localOS freedom.domainStrategy is only deprecated upstream (auto-migrated to sockopt.domainStrategy with a warning) and is left untouched.
59 lines
2.1 KiB
Bash
Executable File
59 lines
2.1 KiB
Bash
Executable File
#!/bin/sh
|
|
case $1 in
|
|
amd64)
|
|
ARCH="64"
|
|
FNAME="amd64"
|
|
;;
|
|
i386)
|
|
ARCH="32"
|
|
FNAME="i386"
|
|
;;
|
|
armv8 | arm64 | aarch64)
|
|
ARCH="arm64-v8a"
|
|
FNAME="arm64"
|
|
;;
|
|
armv7 | arm | arm32)
|
|
ARCH="arm32-v7a"
|
|
FNAME="arm32"
|
|
;;
|
|
armv6)
|
|
ARCH="arm32-v6"
|
|
FNAME="armv6"
|
|
;;
|
|
*)
|
|
ARCH="64"
|
|
FNAME="amd64"
|
|
;;
|
|
esac
|
|
MTG_MULTI_VER=$(curl -sfL "https://api.github.com/repos/mhsanaei/mtg-multi/releases/latest" | sed -n 's/.*"tag_name": *"\([^"]*\)".*/\1/p' | head -n 1)
|
|
if [ -z "$MTG_MULTI_VER" ]; then
|
|
echo "DockerInit: could not resolve the latest mtg-multi release tag" >&2
|
|
exit 1
|
|
fi
|
|
mkdir -p build/bin
|
|
cd build/bin
|
|
curl -sfLRO "https://github.com/XTLS/Xray-core/releases/download/v26.9.8/Xray-linux-${ARCH}.zip"
|
|
unzip "Xray-linux-${ARCH}.zip"
|
|
rm -f "Xray-linux-${ARCH}.zip" geoip.dat geosite.dat
|
|
mv xray "xray-linux-${FNAME}"
|
|
# mtg-multi (MTProto sidecar) ships prebuilt release binaries for every target
|
|
# we package, so download and unpack the matching one instead of compiling.
|
|
case $FNAME in
|
|
i386) MTGARCH="386" ;;
|
|
arm32) MTGARCH="armv7" ;;
|
|
*) MTGARCH="$FNAME" ;;
|
|
esac
|
|
MTG_PKG="mtg-multi-${MTG_MULTI_VER#v}-linux-${MTGARCH}"
|
|
curl -sfLRO "https://github.com/mhsanaei/mtg-multi/releases/download/${MTG_MULTI_VER}/${MTG_PKG}.tar.gz"
|
|
tar -xzf "${MTG_PKG}.tar.gz"
|
|
mv "${MTG_PKG}/mtg-multi" "mtg-linux-${FNAME}"
|
|
rm -rf "${MTG_PKG}" "${MTG_PKG}.tar.gz"
|
|
chmod +x "mtg-linux-${FNAME}"
|
|
curl -sfLRO https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
|
|
curl -sfLRO https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
|
|
curl -sfLRo geoip_IR.dat https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geoip.dat
|
|
curl -sfLRo geosite_IR.dat https://github.com/chocolate4u/Iran-v2ray-rules/releases/latest/download/geosite.dat
|
|
curl -sfLRo geoip_RU.dat https://github.com/runetfreedom/russia-v2ray-rules-dat/releases/latest/download/geoip.dat
|
|
curl -sfLRo geosite_RU.dat https://github.com/runetfreedom/russia-v2ray-rules-dat/releases/latest/download/geosite.dat
|
|
cd ../../
|