feat: optional built-in vless/xray with proxychains4 toggle

- ai-setup.sh now asks interactive Y/n prompt for vless mode
- On Y: installs xray + proxychains-ng, deploys configs, enables proxychains4 in all ai-* launchers
- On N: generates plain ai-* scripts without proxychains
- Templates moved to home-configs/xray/ and home-configs/proxychains/

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-05 08:38:03 +07:00
parent c68aff4725
commit 8979313467
3 changed files with 137 additions and 0 deletions

View File

@@ -30,6 +30,17 @@ if ! command -v python3 &>/dev/null; then
fi
success "Python 3 найден"
# ── 0. Выбор режима работы (vless / direct) ─────────────────
read -r -p "Установить встроенный vless? [Y/n] " _vless_ans
_vless_ans="${_vless_ans:-Y}"
if [[ "$_vless_ans" =~ ^[Yy]$ ]]; then
USE_VLESS=1
info "Режим: vless + proxychains4"
else
USE_VLESS=0
info "Режим: direct (без проксирования)"
fi
# ── 1. npm prefix в домашнюю папку ──────────────────────────
info "Настраиваю npm prefix..."
mkdir -p "$NPM_GLOBAL"
@@ -57,6 +68,61 @@ else
warn "Node.js не найден. Некоторые функции могут не работать."
fi
# ── 2.5. proxychains-ng + xray (только в режиме vless) ──────
if [ "$USE_VLESS" -eq 1 ]; then
info "Проверяю proxychains-ng..."
if ! command -v proxychains4 &>/dev/null; then
info "Устанавливаю proxychains-ng (нужен sudo)..."
if command -v apt-get &>/dev/null; then
sudo apt-get install -y proxychains-ng
elif command -v dnf &>/dev/null; then
sudo dnf install -y proxychains-ng
else
warn "Не удалось установить proxychains-ng автоматически. Установите вручную."
fi
fi
if command -v proxychains4 &>/dev/null; then
success "proxychains4 найден"
else
warn "proxychains4 не найден. Продолжаю без проксирования."
fi
info "Устанавливаю xray..."
XRAY_VERSION="26.3.27"
XRAY_ARCH="64"
XRAY_URL="https://github.com/XTLS/Xray-core/releases/download/v${XRAY_VERSION}/Xray-linux-${XRAY_ARCH}.zip"
TMPDIR=$(mktemp -d)
curl -fsSL "$XRAY_URL" -o "$TMPDIR/xray.zip"
unzip -q "$TMPDIR/xray.zip" -d "$TMPDIR"
sudo install -m 755 "$TMPDIR/xray" /usr/local/bin/xray
rm -rf "$TMPDIR"
sudo mkdir -p /etc/xray
sudo cp "$SCRIPT_DIR/home-configs/xray/config.json" /etc/xray/config.json
sudo chmod 644 /etc/xray/config.json
sudo tee /etc/systemd/system/xray.service > /dev/null << 'SVCEOF'
[Unit]
Description=Xray Service
After=network.target
[Service]
ExecStart=/usr/local/bin/xray run -c /etc/xray/config.json
Restart=on-failure
[Install]
WantedBy=multi-user.target
SVCEOF
sudo systemctl daemon-reload
sudo systemctl enable --now xray
success "xray установлен и запущен"
cp "$SCRIPT_DIR/home-configs/proxychains/proxychains-xray.conf" "$HOME/.proxychains-xray.conf"
success "Proxychains конфиг обновлён"
fi
# ── 3. Claude Code ───────────────────────────────────────────
info "Проверяю Claude Code..."
if ! command -v claude &>/dev/null; then
@@ -699,6 +765,17 @@ exec claude --dangerously-skip-permissions --system-prompt "$SYS_PROMPT" "$@"
CLAUDEEOF
chmod +x "$BIN_DIR/ai-claude"
# ── 8.5. Proxychains инъекция (только в режиме vless) ────────
if [ "$USE_VLESS" -eq 1 ]; then
info "Включаю proxychains4 в ai-лаунчеры..."
sed -i 's/^exec "\$codex_bin"/exec proxychains4 -f "\$HOME\/\.proxychains-xray\.conf" "\$codex_bin"/' "$BIN_DIR/ai-gpt"
sed -i 's/^claude --dangerously-skip-permissions/proxychains4 -f "\$HOME\/\.proxychains-xray\.conf" claude --dangerously-skip-permissions/' "$BIN_DIR/ai-deepseek"
sed -i 's/^claude --dangerously-skip-permissions/proxychains4 -f "\$HOME\/\.proxychains-xray\.conf" claude --dangerously-skip-permissions/' "$BIN_DIR/ai-kimi"
sed -i 's/^\([[:space:]]*\)exec "\$agy_bin"/\1exec proxychains4 -f "\$HOME\/\.proxychains-xray\.conf" "\$agy_bin"/' "$BIN_DIR/ai-gemini"
sed -i 's/^exec claude/exec proxychains4 -f "\$HOME\/\.proxychains-xray\.conf" claude/' "$BIN_DIR/ai-claude"
success "proxychains4 интегрирован"
fi
info "Удаляю старые версии скриптов (claude_*)..."
rm -f "$BIN_DIR/claude_gpt" "$BIN_DIR/claude_deepseek" "$BIN_DIR/claude_kimi" "$BIN_DIR/claude_gemini" "$BIN_DIR/claude_api_helpers.sh"