mirror of
https://github.com/andrey271192/PCA_Phobos.git
synced 2026-09-20 11:55:32 +00:00
fix: fetch x64 obfuscator fallback
This commit is contained in:
@@ -21,6 +21,9 @@ phobos-update beta # или: phobos-update dev
|
|||||||
|
|
||||||
## stable
|
## 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
|
### v1.2.7
|
||||||
- **fix:** импорт `phobos://` в PhobosWG. Конфиги дополняются `= none` для недостающих полей (`PresharedKey` и др.) перед base64 — иначе приложение писало «невозможно импортировать туннель».
|
- **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.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 | 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 |
|
| 1.2.6 / 1.3.x | Роутер aarch64: «бинарник не найден в архиве» | авто-загрузка aarch64/mipsel/armv7 из ClusterM releases |
|
||||||
| (внутр.) | Клиент не подключается, «НЕТ СОЕДИНЕНИЯ», handshake не встаёт | клиентский обфускатор целился в порт 51821 (никто не слушал); теперь берёт первый из `OBFUSCATOR_PORTS` (2083) |
|
| (внутр.) | Клиент не подключается, «НЕТ СОЕДИНЕНИЯ», handshake не встаёт | клиентский обфускатор целился в порт 51821 (никто не слушал); теперь берёт первый из `OBFUSCATOR_PORTS` (2083) |
|
||||||
| (внутр.) | агент secondary не обновлялся через `phobos-update` | `server/api.py` добавлен в managed_files |
|
| (внутр.) | агент secondary не обновлялся через `phobos-update` | `server/api.py` добавлен в managed_files |
|
||||||
|
|||||||
@@ -80,6 +80,9 @@ systemctl enable cron -q 2>/dev/null || true; systemctl start cron 2>/dev/null |
|
|||||||
# ── 2. wg-obfuscator binary (Ground-Zerro) ──
|
# ── 2. wg-obfuscator binary (Ground-Zerro) ──
|
||||||
echo "[2/9] wg-obfuscator..."
|
echo "[2/9] wg-obfuscator..."
|
||||||
mkdir -p "$PHOBOS_DIR"/{server,clients,bin,tokens,www/init,www/packages,packages}
|
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
|
if [ ! -x /usr/local/bin/wg-obfuscator ]; then
|
||||||
R=/tmp/phobos-obf; rm -rf "$R"; mkdir -p "$R"; cd "$R"
|
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
|
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
|
git pull origin main -q
|
||||||
cp -f "wg-obfuscator/bin/"wg-obfuscator-* "$PHOBOS_DIR/bin/" 2>/dev/null || true
|
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
|
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"
|
cd /; rm -rf "$R"
|
||||||
fi
|
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/')
|
_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}"
|
_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##*:}"
|
_da="${_am%%:*}"; _ss="${_am##*:}"
|
||||||
if [ ! -f "$PHOBOS_DIR/bin/wg-obfuscator-${_da}" ] && [ -n "$_OBF_TAG" ]; then
|
if [ ! -f "$PHOBOS_DIR/bin/wg-obfuscator-${_da}" ] && [ -n "$_OBF_TAG" ]; then
|
||||||
_t=$(mktemp -d)
|
_t=$(mktemp -d)
|
||||||
@@ -103,7 +106,7 @@ for _am in "aarch64:linux-arm64" "mipsel:linux-mipsel-mips32" "mips:linux-mips-m
|
|||||||
rm -rf "$_t"
|
rm -rf "$_t"
|
||||||
fi
|
fi
|
||||||
done
|
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; }
|
[ -x /usr/local/bin/wg-obfuscator ] || { echo "ERROR: obfuscator binary for $ARCH missing"; exit 1; }
|
||||||
echo " bins: $(ls $PHOBOS_DIR/bin/ | tr '\n' ' ')"
|
echo " bins: $(ls $PHOBOS_DIR/bin/ | tr '\n' ' ')"
|
||||||
|
|
||||||
|
|||||||
@@ -135,6 +135,10 @@ echo "[2/7] Getting Phobos binaries..."
|
|||||||
mkdir -p "$PHOBOS_DIR"/{server,clients,bin}
|
mkdir -p "$PHOBOS_DIR"/{server,clients,bin}
|
||||||
|
|
||||||
if [ ! -f /usr/local/bin/wg-obfuscator ]; then
|
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"
|
REPO_DIR="/tmp/phobos-repo"
|
||||||
rm -rf "$REPO_DIR"
|
rm -rf "$REPO_DIR"
|
||||||
mkdir -p "$REPO_DIR"
|
mkdir -p "$REPO_DIR"
|
||||||
@@ -144,10 +148,34 @@ if [ ! -f /usr/local/bin/wg-obfuscator ]; then
|
|||||||
git config core.sparseCheckout true
|
git config core.sparseCheckout true
|
||||||
echo "wg-obfuscator" > .git/info/sparse-checkout
|
echo "wg-obfuscator" > .git/info/sparse-checkout
|
||||||
git pull origin main -q 2>/dev/null
|
git pull origin main -q 2>/dev/null
|
||||||
cp -f wg-obfuscator/bin/wg-obfuscator-$(uname -m) "$PHOBOS_DIR/bin/" 2>/dev/null || true
|
cp -f wg-obfuscator/bin/wg-obfuscator-* "$PHOBOS_DIR/bin/" 2>/dev/null || true
|
||||||
chmod +x "$PHOBOS_DIR/bin/"wg-obfuscator-*
|
chmod +x "$PHOBOS_DIR/bin/"wg-obfuscator-* 2>/dev/null || true
|
||||||
ln -sf "$PHOBOS_DIR/bin/wg-obfuscator-$(uname -m)" /usr/local/bin/wg-obfuscator
|
ln -sf "$PHOBOS_DIR/bin/wg-obfuscator-${OBF_ARCH}" /usr/local/bin/wg-obfuscator 2>/dev/null || true
|
||||||
rm -rf "$REPO_DIR"
|
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."
|
echo " Obfuscator installed."
|
||||||
else
|
else
|
||||||
echo " Obfuscator already installed, skipping."
|
echo " Obfuscator already installed, skipping."
|
||||||
|
|||||||
Reference in New Issue
Block a user