diff --git a/CHANGELOG.md b/CHANGELOG.md index 90d0cd6..4738da4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,9 @@ phobos-update beta # или: phobos-update dev ## stable +### v1.2.8 +- **fix:** установка `wg-obfuscator` на x86_64 больше не падает с `ERROR: obfuscator binary for x86_64 missing`. Если бинарника нет в Ground-Zerro, installer и secondary installer берут `linux-x64` из ClusterM releases. + ### v1.2.7 - **fix:** импорт `phobos://` в PhobosWG. Конфиги дополняются `= none` для недостающих полей (`PresharedKey` и др.) перед base64 — иначе приложение писало «невозможно импортировать туннель». @@ -49,6 +52,7 @@ phobos-update beta # или: phobos-update dev |--------|----------|---------| | 1.2.7 / 1.3.x | PhobosWG: «невозможно импортировать туннель» | `phobos://` дополняется `= none` для всех обязательных полей (`PresharedKey`) по спеке формата | | 1.2.8 / 1.3.x | Stable не показывал кнопку скачивания APK без локального файла | кнопка **PhobosWG (APK)** всегда доступна на Android-странице; `/download/apk` ведет на public stable release | +| 1.2.8 / 1.3.x | VPS x86_64: `ERROR: obfuscator binary for x86_64 missing` | авто-загрузка `linux-x64` из ClusterM releases + нормализация `amd64 -> x86_64` | | 1.2.6 / 1.3.x | Роутер aarch64: «бинарник не найден в архиве» | авто-загрузка aarch64/mipsel/armv7 из ClusterM releases | | (внутр.) | Клиент не подключается, «НЕТ СОЕДИНЕНИЯ», handshake не встаёт | клиентский обфускатор целился в порт 51821 (никто не слушал); теперь берёт первый из `OBFUSCATOR_PORTS` (2083) | | (внутр.) | агент secondary не обновлялся через `phobos-update` | `server/api.py` добавлен в managed_files | diff --git a/install.sh b/install.sh index c19f1f3..df67e8f 100755 --- a/install.sh +++ b/install.sh @@ -80,6 +80,9 @@ systemctl enable cron -q 2>/dev/null || true; systemctl start cron 2>/dev/null | # ── 2. wg-obfuscator binary (Ground-Zerro) ── echo "[2/9] wg-obfuscator..." mkdir -p "$PHOBOS_DIR"/{server,clients,bin,tokens,www/init,www/packages,packages} +OBF_ARCH="$ARCH" +[ "$OBF_ARCH" = "amd64" ] && OBF_ARCH="x86_64" +[ "$OBF_ARCH" = "arm64" ] && OBF_ARCH="aarch64" if [ ! -x /usr/local/bin/wg-obfuscator ]; then R=/tmp/phobos-obf; rm -rf "$R"; mkdir -p "$R"; cd "$R" git init -q; git remote add origin https://github.com/Ground-Zerro/Phobos.git @@ -87,12 +90,12 @@ if [ ! -x /usr/local/bin/wg-obfuscator ]; then git pull origin main -q cp -f "wg-obfuscator/bin/"wg-obfuscator-* "$PHOBOS_DIR/bin/" 2>/dev/null || true chmod +x "$PHOBOS_DIR/bin/"wg-obfuscator-* 2>/dev/null || true - ln -sf "$PHOBOS_DIR/bin/wg-obfuscator-${ARCH}" /usr/local/bin/wg-obfuscator 2>/dev/null || true + ln -sf "$PHOBOS_DIR/bin/wg-obfuscator-${OBF_ARCH}" /usr/local/bin/wg-obfuscator 2>/dev/null || true cd /; rm -rf "$R" fi _OBF_TAG=$(curl -fsSL -m10 https://api.github.com/repos/ClusterM/wg-obfuscator/releases/latest 2>/dev/null | grep '"tag_name"' | head -1 | sed 's/.*"tag_name": *"\(.*\)".*/\1/') _CB="https://github.com/ClusterM/wg-obfuscator/releases/download/${_OBF_TAG}" -for _am in "aarch64:linux-arm64" "mipsel:linux-mipsel-mips32" "mips:linux-mips-mips32" "armv7:linux-armv7-hf"; do +for _am in "x86_64:linux-x64" "aarch64:linux-arm64" "mipsel:linux-mipsel-mips32" "mips:linux-mips-mips32" "armv7:linux-armv7-hf"; do _da="${_am%%:*}"; _ss="${_am##*:}" if [ ! -f "$PHOBOS_DIR/bin/wg-obfuscator-${_da}" ] && [ -n "$_OBF_TAG" ]; then _t=$(mktemp -d) @@ -103,7 +106,7 @@ for _am in "aarch64:linux-arm64" "mipsel:linux-mipsel-mips32" "mips:linux-mips-m rm -rf "$_t" fi done -[ -x /usr/local/bin/wg-obfuscator ] || ln -sf "$PHOBOS_DIR/bin/wg-obfuscator-${ARCH}" /usr/local/bin/wg-obfuscator 2>/dev/null || true +[ -x /usr/local/bin/wg-obfuscator ] || ln -sf "$PHOBOS_DIR/bin/wg-obfuscator-${OBF_ARCH}" /usr/local/bin/wg-obfuscator 2>/dev/null || true [ -x /usr/local/bin/wg-obfuscator ] || { echo "ERROR: obfuscator binary for $ARCH missing"; exit 1; } echo " bins: $(ls $PHOBOS_DIR/bin/ | tr '\n' ' ')" diff --git a/server/secondary-setup.sh b/server/secondary-setup.sh index 20d8397..298ee54 100755 --- a/server/secondary-setup.sh +++ b/server/secondary-setup.sh @@ -135,6 +135,10 @@ echo "[2/7] Getting Phobos binaries..." mkdir -p "$PHOBOS_DIR"/{server,clients,bin} if [ ! -f /usr/local/bin/wg-obfuscator ]; then + ARCH="$(uname -m)" + OBF_ARCH="$ARCH" + [ "$OBF_ARCH" = "amd64" ] && OBF_ARCH="x86_64" + [ "$OBF_ARCH" = "arm64" ] && OBF_ARCH="aarch64" REPO_DIR="/tmp/phobos-repo" rm -rf "$REPO_DIR" mkdir -p "$REPO_DIR" @@ -144,10 +148,34 @@ if [ ! -f /usr/local/bin/wg-obfuscator ]; then git config core.sparseCheckout true echo "wg-obfuscator" > .git/info/sparse-checkout git pull origin main -q 2>/dev/null - cp -f wg-obfuscator/bin/wg-obfuscator-$(uname -m) "$PHOBOS_DIR/bin/" 2>/dev/null || true - chmod +x "$PHOBOS_DIR/bin/"wg-obfuscator-* - ln -sf "$PHOBOS_DIR/bin/wg-obfuscator-$(uname -m)" /usr/local/bin/wg-obfuscator + cp -f wg-obfuscator/bin/wg-obfuscator-* "$PHOBOS_DIR/bin/" 2>/dev/null || true + chmod +x "$PHOBOS_DIR/bin/"wg-obfuscator-* 2>/dev/null || true + ln -sf "$PHOBOS_DIR/bin/wg-obfuscator-${OBF_ARCH}" /usr/local/bin/wg-obfuscator 2>/dev/null || true rm -rf "$REPO_DIR" + + if [ ! -x /usr/local/bin/wg-obfuscator ]; then + OBF_TAG=$(curl -fsSL -m10 https://api.github.com/repos/ClusterM/wg-obfuscator/releases/latest 2>/dev/null | grep '"tag_name"' | head -1 | sed 's/.*"tag_name": *"\(.*\)".*/\1/') + CB="https://github.com/ClusterM/wg-obfuscator/releases/download/${OBF_TAG}" + for MAP in "x86_64:linux-x64" "aarch64:linux-arm64" "mipsel:linux-mipsel-mips32" "mips:linux-mips-mips32" "armv7:linux-armv7-hf"; do + DA="${MAP%%:*}" + SS="${MAP##*:}" + [ "$DA" = "$OBF_ARCH" ] || continue + [ -n "$OBF_TAG" ] || continue + TMP_DIR=$(mktemp -d) + if curl -fsSL -m30 "${CB}/wg-obfuscator-${OBF_TAG}-${SS}.tar.gz" -o "$TMP_DIR/o.tgz" 2>/dev/null && + tar -xzf "$TMP_DIR/o.tgz" -C "$TMP_DIR" 2>/dev/null; then + BIN_PATH=$(find "$TMP_DIR" -name "wg-obfuscator" -type f | head -1) + if [ -n "$BIN_PATH" ]; then + cp "$BIN_PATH" "$PHOBOS_DIR/bin/wg-obfuscator-${DA}" + chmod +x "$PHOBOS_DIR/bin/wg-obfuscator-${DA}" + ln -sf "$PHOBOS_DIR/bin/wg-obfuscator-${DA}" /usr/local/bin/wg-obfuscator + fi + fi + rm -rf "$TMP_DIR" + done + fi + + [ -x /usr/local/bin/wg-obfuscator ] || { echo "ERROR: obfuscator binary for $ARCH missing"; exit 1; } echo " Obfuscator installed." else echo " Obfuscator already installed, skipping."