diff --git a/diagnose_trae.sh b/diagnose_trae.sh new file mode 100755 index 0000000..8b8a99f --- /dev/null +++ b/diagnose_trae.sh @@ -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" \ No newline at end of file diff --git a/reset_trae.sh b/reset_trae.sh new file mode 100755 index 0000000..811f13b --- /dev/null +++ b/reset_trae.sh @@ -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 \ No newline at end of file diff --git a/start_trae_server.sh b/start_trae_server.sh new file mode 100755 index 0000000..db753a5 --- /dev/null +++ b/start_trae_server.sh @@ -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" \ No newline at end of file