#!/usr/bin/env bash # 在 **moicen 本机**:临时建立到 alchemy 的 SSH 本地转发,经 socks5h://127.0.0.1:1080 出网,完成 # AuthCore/htyuc 与 huike-back 中 htyws、htykc 的 `cargo build --release`;结束后关闭隧道,不污染当前 shell 的代理变量。 # 与 `plan_skills/moicen/moicen-tunnel-alchemy-v2ray-1080-proxy.md` §4 同思路。 # 用法:在 huike-back 根 # MOICEN_REPO_ROOT=~/works/huiwing-migration ./scripts/moicen_cargo_build_release_via_alchemy_socks.sh # 可改 ALCH_SSH=alchemy-studio.cn set -euo pipefail ALCH_SSH="${ALCH_SSH:-alchemy-studio.cn}" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" HUIKE_DEFAULT="$(cd "$SCRIPT_DIR/.." && pwd)" REPO_ROOT_DEFAULT="$(cd "$SCRIPT_DIR/../.." && pwd)" MOICEN_REPO_ROOT="${MOICEN_REPO_ROOT:-$REPO_ROOT_DEFAULT}" AUTH="${MOICEN_AUTH_ROOT:-$MOICEN_REPO_ROOT/AuthCore}" HUIKE="${MOICEN_HUIKE_ROOT:-$HUIKE_DEFAULT}" [ -f "$AUTH/Cargo.toml" ] && [ -f "$HUIKE/Cargo.toml" ] || { echo "检查 MOICEN_REPO_ROOT / 路径: AUTH=$AUTH HUIKE=$HUIKE" >&2; exit 1; } command -v ssh >/dev/null cleanup() { kill "$TUNPID" 2>/dev/null || true; } # shellcheck disable=SC2016 if ss -lntp 2>/dev/null | grep -q ':1080'; then echo "本机 1080 已被占用;请先关闭已有 SSH 转发或改用他口(并同步 ALL_PROXY 文档)" >&2 exit 1 fi ssh -N -o ExitOnForwardFailure=yes -o ServerAliveInterval=30 -o ConnectTimeout=15 \ -L 127.0.0.1:1080:127.0.0.1:1080 "weli@$ALCH_SSH" & TUNPID=$! sleep 3 trap cleanup EXIT INT TERM export ALL_PROXY=socks5h://127.0.0.1:1080 export https_proxy=$ALL_PROXY export http_proxy=$ALL_PROXY # shellcheck disable=SC1090 . "$HOME/.cargo/env" export CARGO_HTTP_MULTIPLEXING=true ( cd "$AUTH" && cargo build --release -p htyuc ) ( cd "$HUIKE" && cargo build --release -p htyws -p htykc ) echo "OK. release 构建完成。隧道本脚本退出时关闭。启动 HTTP 服务时请使用 scripts/moicen_start_huiwings_stack.sh(已去代理)。"