Compare commits
7 Commits
3f3e1c4878
...
73c6a779e0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
73c6a779e0 | ||
|
|
99e33b3b40 | ||
|
|
b5e04ee3e4 | ||
|
|
d5ab66d84e | ||
|
|
6262bbb04b | ||
|
|
9bd202fc90 | ||
|
|
762f928e5e |
@@ -1,73 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
REMOTE_HOST="smalltown.dubaoda.com"
|
|
||||||
REMOTE_PORT="30000"
|
|
||||||
LOCAL_PORT="3000"
|
|
||||||
SSH_PORT="9527"
|
|
||||||
SSH_USER="cui"
|
|
||||||
SSH_PASSWORD="mima643237029"
|
|
||||||
PID_FILE="/tmp/ssh_tunnel.pid"
|
|
||||||
LOG_FILE="/tmp/ssh_tunnel.log"
|
|
||||||
|
|
||||||
start_tunnel() {
|
|
||||||
if [ -f "$PID_FILE" ]; then
|
|
||||||
OLD_PID=$(cat "$PID_FILE")
|
|
||||||
if kill -0 "$OLD_PID" 2>/dev/null; then
|
|
||||||
echo "SSH隧道已在运行 (PID: $OLD_PID)"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
rm -f "$PID_FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "正在启动SSH反向隧道..."
|
|
||||||
sshpass -p "$SSH_PASSWORD" ssh -N -g -R "0.0.0.0:$REMOTE_PORT":localhost:"$LOCAL_PORT" -p "$SSH_PORT" -o "ServerAliveInterval=60" -o "ServerAliveCountMax=3" "$SSH_USER"@"$REMOTE_HOST" > "$LOG_FILE" 2>&1 &
|
|
||||||
SSH_PID=$!
|
|
||||||
echo "$SSH_PID" > "$PID_FILE"
|
|
||||||
sleep 2
|
|
||||||
|
|
||||||
if kill -0 "$SSH_PID" 2>/dev/null; then
|
|
||||||
echo "SSH隧道已启动 (本地3000 -> 远程$REMOTE_PORT)"
|
|
||||||
else
|
|
||||||
echo "启动失败,查看日志: cat $LOG_FILE"
|
|
||||||
rm -f "$PID_FILE"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
stop_tunnel() {
|
|
||||||
if [ -f "$PID_FILE" ]; then
|
|
||||||
PID=$(cat "$PID_FILE")
|
|
||||||
if kill -0 "$PID" 2>/dev/null; then
|
|
||||||
kill "$PID"
|
|
||||||
rm -f "$PID_FILE"
|
|
||||||
echo "SSH隧道已停止"
|
|
||||||
else
|
|
||||||
rm -f "$PID_FILE"
|
|
||||||
echo "隧道未运行"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "未找到PID文件,尝试直接终止"
|
|
||||||
pkill -f "ssh -N -R $REMOTE_PORT:localhost:$LOCAL_PORT"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
status_tunnel() {
|
|
||||||
if [ -f "$PID_FILE" ]; then
|
|
||||||
PID=$(cat "$PID_FILE")
|
|
||||||
if kill -0 "$PID" 2>/dev/null; then
|
|
||||||
echo "SSH隧道正在运行 (PID: $PID)"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
echo "SSH隧道未运行"
|
|
||||||
echo "尝试检测进程..."
|
|
||||||
if pgrep -f "ssh -N -R $REMOTE_PORT" > /dev/null; then
|
|
||||||
echo "发现隧道进程,但无PID文件"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start) start_tunnel ;;
|
|
||||||
stop) stop_tunnel ;;
|
|
||||||
status) status_tunnel ;;
|
|
||||||
*) echo "Usage: $0 {start|stop|status}" ;;
|
|
||||||
esac
|
|
||||||
Reference in New Issue
Block a user