#!/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