添加Trae IDE服务器管理脚本

- diagnose_trae.sh: Trae IDE 诊断和问题排查脚本
- reset_trae.sh: Trae IDE 重置脚本
- start_trae_server.sh: Trae IDE 服务器启动脚本

这些脚本用于管理和维护Trae IDE远程开发环境。
This commit is contained in:
ben 2025-08-25 08:35:06 +00:00
parent 09de1f782a
commit 5fd8f0c818
3 changed files with 283 additions and 0 deletions

112
diagnose_trae.sh Executable file
View File

@ -0,0 +1,112 @@
#!/bin/bash
# Trae IDE 连接问题诊断和修复脚本
echo "=== Trae IDE 连接诊断工具 ==="
echo ""
# 当前服务器信息
TRAE_VERSION="8fe6088bdb0697eec2662377a7abd7f9791493c6"
SERVER_HOST="127.0.0.1"
SERVER_PORT="45697"
TOKEN="b255e0cf-4fab-489d-9175-412a965ea751"
WORKSPACE="/home/ben/github/liurenchaxin"
echo "📋 当前服务器信息:"
echo " 版本: $TRAE_VERSION"
echo " 地址: $SERVER_HOST:$SERVER_PORT"
echo " Token: $TOKEN"
echo " 工作区: $WORKSPACE"
echo ""
# 1. 检查服务器状态
echo "🔍 1. 检查服务器进程状态..."
if pgrep -f "stable-$TRAE_VERSION" > /dev/null; then
echo " ✅ Trae 服务器正在运行"
ps aux | grep "stable-$TRAE_VERSION" | grep -v grep
else
echo " ❌ Trae 服务器未运行"
fi
echo ""
# 2. 检查端口监听
echo "🔍 2. 检查端口监听状态..."
if ss -tln | grep ":$SERVER_PORT" > /dev/null; then
echo " ✅ 端口 $SERVER_PORT 正在监听"
else
echo " ❌ 端口 $SERVER_PORT 未监听"
fi
echo ""
# 3. 测试 HTTP 连接
echo "🔍 3. 测试 HTTP 连接..."
if curl -s -I "http://$SERVER_HOST:$SERVER_PORT" | grep -q "405\|200"; then
echo " ✅ HTTP 连接正常"
else
echo " ❌ HTTP 连接失败"
fi
echo ""
# 4. 检查 SSH 服务
echo "🔍 4. 检查 SSH 服务状态..."
if systemctl is-active ssh > /dev/null 2>&1; then
echo " ✅ SSH 服务运行正常"
echo " SSH 端口: $(ss -tln | grep ':22 ' | head -1)"
else
echo " ❌ SSH 服务未运行"
fi
echo ""
# 5. 检查网络可达性
echo "🔍 5. 检查网络配置..."
echo " 本机 IP 地址:"
ip addr show | grep "inet " | grep -v "127.0.0.1" | head -3
echo ""
# 6. 检查防火墙
echo "🔍 6. 检查防火墙状态..."
if command -v ufw > /dev/null; then
echo " UFW 状态: $(ufw status | head -1)"
elif command -v firewall-cmd > /dev/null; then
echo " Firewalld 状态: $(systemctl is-active firewalld)"
else
echo " 未检测到常见防火墙"
fi
echo ""
# 解决方案建议
echo "💡 解决方案建议:"
echo ""
echo "🔧 方案1 - 直接浏览器访问:"
echo " 打开浏览器访问: http://$SERVER_HOST:$SERVER_PORT/?folder=$WORKSPACE"
echo ""
echo "🔧 方案2 - Trae 客户端连接:"
echo " 1. 在 Trae 客户端中选择 'Connect to Server'"
echo " 2. 输入服务器地址: $SERVER_HOST:$SERVER_PORT"
echo " 3. 输入连接 Token: $TOKEN"
echo ""
echo "🔧 方案3 - SSH 连接方式:"
echo " 1. 主机: $(hostname -I | awk '{print $1}')"
echo " 2. 用户: ben"
echo " 3. 确保 SSH 密钥已配置"
echo ""
echo "🔧 方案4 - 重置和重启:"
if [ -f "/home/ben/github/liurenchaxin/reset_trae.sh" ]; then
echo " 运行: ./reset_trae.sh"
else
echo " 清理缓存: rm -rf /home/ben/.trae-server/data/User/workspaceStorage"
echo " 重启服务器: pkill -f trae && ./start_trae_server.sh"
fi
echo ""
# 常见问题排查
echo "❓ 如果仍然连接失败,请检查:"
echo " 1. Trae 客户端版本是否与服务器匹配"
echo " 2. 是否有其他安全软件阻止连接"
echo " 3. 网络是否允许访问该端口"
echo " 4. 是否需要重启 Trae 客户端应用"
echo " 5. 检查客户端错误日志"
echo ""
echo "📝 当前连接 URL:"
echo " http://$SERVER_HOST:$SERVER_PORT/?folder=$WORKSPACE"
echo " Token: $TOKEN"

76
reset_trae.sh Executable file
View File

@ -0,0 +1,76 @@
#!/bin/bash
# Trae IDE 重置脚本 - 清理缓存和重启服务
echo "🔄 Trae IDE 重置工具"
echo ""
# 停止所有 Trae 进程
echo "🛑 停止 Trae 进程..."
pkill -f trae || true
pkill -f "stable-8fe6088bdb0697eec2662377a7abd7f9791493c6" || true
sleep 3
# 清理缓存
echo "🧹 清理缓存和临时文件..."
rm -rf /home/ben/.trae-server/data/User/workspaceStorage/ || true
rm -rf /home/ben/.trae-server/data/logs/ || true
rm -rf /home/ben/.trae-server/extensions/ms-vscode.* || true
# 清理损坏的扩展
echo "🔧 清理损坏的扩展..."
find /home/ben/.trae-server/extensions/ -name "*claude-dev*" -type d -exec rm -rf {} + 2>/dev/null || true
# 重新生成 token
echo "🔑 生成新的连接 token..."
NEW_TOKEN=$(uuidgen)
echo "$NEW_TOKEN" > /home/ben/.trae-server/.stable-8fe6088bdb0697eec2662377a7abd7f9791493c6.token
chmod 600 /home/ben/.trae-server/.stable-8fe6088bdb0697eec2662377a7abd7f9791493c6.token
# 重启服务器
echo "🚀 重启 Trae 服务器..."
cd /home/ben/.trae-server/bin/stable-8fe6088bdb0697eec2662377a7abd7f9791493c6
nohup ./node ./index_trae.js \
--start-server \
--host=127.0.0.1 \
--port=0 \
--connection-token-file /home/ben/.trae-server/.stable-8fe6088bdb0697eec2662377a7abd7f9791493c6.token \
--default-folder /home/ben/github/liurenchaxin \
--server-data-dir /home/ben/.trae-server \
--telemetry-level off \
--enable-remote-auto-shutdown \
--accept-server-license-terms \
> /tmp/trae-reset.log 2>&1 &
# 等待启动
echo "⏳ 等待服务器启动..."
sleep 5
# 查找端口
SERVER_PID=$(pgrep -f "out/server-main.js.*--port")
if [ -n "$SERVER_PID" ]; then
PORT=$(ss -tlnp | grep "node.*pid=$SERVER_PID" | grep -o ':4[0-9]*' | head -1 | cut -d':' -f2)
if [ -n "$PORT" ]; then
echo "✅ Trae 服务器重启成功!"
echo ""
echo "📝 新的连接信息:"
echo " 地址: 127.0.0.1:$PORT"
echo " Token: $NEW_TOKEN"
echo " 浏览器: http://127.0.0.1:$PORT/?folder=/home/ben/github/liurenchaxin"
echo ""
# 测试连接
if curl -s -I "http://127.0.0.1:$PORT" | grep -q "405\|200"; then
echo "✅ 服务器连接测试通过"
else
echo "⚠️ 服务器连接测试失败"
fi
else
echo "❌ 无法确定服务器端口"
tail -10 /tmp/trae-reset.log
fi
else
echo "❌ 服务器启动失败"
tail -10 /tmp/trae-reset.log
fi

95
start_trae_server.sh Executable file
View File

@ -0,0 +1,95 @@
#!/bin/bash
# Trae Server 启动脚本
# 解决版本匹配和连接问题
set -e
TRAE_VERSION="8fe6088bdb0697eec2662377a7abd7f9791493c6"
TRAE_DIR="/home/ben/.trae-server"
TRAE_BIN_DIR="$TRAE_DIR/bin/stable-$TRAE_VERSION"
WORKSPACE_DIR="/home/ben/github/liurenchaxin"
TOKEN_FILE="$TRAE_DIR/.stable-$TRAE_VERSION.token"
LOG_FILE="/tmp/trae-server.log"
echo "🚀 启动 Trae 服务器..."
# 清理旧进程
echo "🧹 清理旧进程..."
pkill -f "trae" || true
pkill -f "stable-$TRAE_VERSION" || true
sleep 2
# 确保目录存在
if [ ! -d "$TRAE_BIN_DIR" ]; then
echo "❌ 错误: Trae 二进制目录不存在: $TRAE_BIN_DIR"
exit 1
fi
# 生成新的 token
NEW_TOKEN=$(uuidgen)
echo "$NEW_TOKEN" > "$TOKEN_FILE"
chmod 600 "$TOKEN_FILE"
echo "🔑 生成新的连接 token: $NEW_TOKEN"
# 启动服务器
echo "🌟 启动 Trae 服务器..."
cd "$TRAE_BIN_DIR"
nohup ./node ./index_trae.js \
--start-server \
--host=127.0.0.1 \
--port=0 \
--connection-token-file "$TOKEN_FILE" \
--default-folder "$WORKSPACE_DIR" \
--server-data-dir "$TRAE_DIR" \
--telemetry-level off \
--enable-remote-auto-shutdown \
--accept-server-license-terms \
> "$LOG_FILE" 2>&1 &
SERVER_PID=$!
echo "📋 服务器进程 PID: $SERVER_PID"
# 等待服务器启动
echo "⏳ 等待服务器启动..."
sleep 5
# 查找实际端口
PORT=$(ss -tlnp | grep "node.*pid=$SERVER_PID" | grep -o ':33[0-9]*' | head -1 | cut -d':' -f2)
if [ -z "$PORT" ]; then
# 从日志中查找端口
PORT=$(grep -o "port [0-9]*" "$LOG_FILE" | tail -1 | cut -d' ' -f2)
fi
if [ -z "$PORT" ]; then
echo "❌ 无法确定服务器端口"
tail -20 "$LOG_FILE"
exit 1
fi
echo "✅ Trae 服务器启动成功!"
echo ""
echo "📝 连接信息:"
echo " 服务器地址: 127.0.0.1:$PORT"
echo " 连接 Token: $NEW_TOKEN"
echo " 工作目录: $WORKSPACE_DIR"
echo " 日志文件: $LOG_FILE"
echo ""
echo "🌐 浏览器访问: http://127.0.0.1:$PORT/?folder=$WORKSPACE_DIR"
echo ""
# 测试连接
echo "🔍 测试服务器连接..."
if curl -s -I "http://127.0.0.1:$PORT" | grep -q "405\|200"; then
echo "✅ 服务器响应正常"
else
echo "⚠️ 服务器连接测试失败"
tail -10 "$LOG_FILE"
fi
echo ""
echo "💡 如果 Trae 客户端仍然连接失败,请尝试:"
echo " 1. 重启 Trae 客户端应用"
echo " 2. 清除客户端缓存"
echo " 3. 使用浏览器直接访问上面的URL"