#!/bin/bash
# SSH 隧道启动脚本
# 通过香港 ECS 建立本地 SOCKS5 代理，供 Clash 使用

KEY_PATH="/Users/aszer/code/etf/hk_ecs.pem"
HOST="root@8.218.167.69"
LOCAL_PORT=1080
REMOTE_PORT=1080

# 检查是否已有隧道在运行
if pgrep -f "ssh.*-D.*${LOCAL_PORT}" > /dev/null 2>&1; then
    echo "✓ SSH 隧道已在运行 (本地端口: ${LOCAL_PORT})"
    pgrep -f "ssh.*-D.*${LOCAL_PORT}" | head -1
    exit 0
fi

# 确保密钥权限正确
chmod 600 "$KEY_PATH" 2>/dev/null

# 修复可能的 Windows 换行符问题
sed -i '' 's/\r$//' "$KEY_PATH" 2>/dev/null

echo "正在建立 SSH 隧道..."
echo "  服务器: ${HOST}"
echo "  本地 SOCKS5 端口: ${LOCAL_PORT}"
echo "  密钥: ${KEY_PATH}"

ssh -N -D 127.0.0.1:${LOCAL_PORT} \
    -o StrictHostKeyChecking=no \
    -o UserKnownHostsFile=/dev/null \
    -o ServerAliveInterval=60 \
    -o ServerAliveCountMax=3 \
    -i "$KEY_PATH" \
    -p 22 \
    "$HOST" &

SSH_PID=$!
sleep 2

if kill -0 $SSH_PID 2>/dev/null; then
    echo "✓ SSH 隧道已建立 (PID: ${SSH_PID})"
    echo "  本地代理: socks5://127.0.0.1:${LOCAL_PORT}"
    echo ""
    echo "现在可以启动 Clash 使用 'SSH香港' 节点了"
else
    echo "✗ SSH 隧道建立失败"
    exit 1
fi
