Compare commits

..

7 Commits

Author SHA1 Message Date
Cuishibing
3f3e1c4878 init 2026-04-19 00:09:59 +08:00
Cuishibing
2d6a6ac22b feat: 图片上传优化及审核状态交互改进 2026-03-31 00:03:08 +08:00
Cuishibing
1b6e7fa886 feat: 添加房源审核功能及定时审核任务 2026-03-24 22:54:24 +08:00
Cuishibing
9998fb8649 fix: 优化图片上传URL和房东入口登录检查体验 2026-03-22 23:04:39 +08:00
Cuishibing
fbd5f94a43 feat: 切换为MariaDB数据库存储 2026-03-22 22:10:41 +08:00
Cuishibing
a105f4aecb docs: 添加项目文档 2026-03-22 22:01:21 +08:00
Cuishibing
3c6481811e fix: 修复SSH隧道端口转发和Cookie配置问题 2026-03-22 17:31:47 +08:00

73
port_forwarding.sh Executable file
View File

@@ -0,0 +1,73 @@
#!/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