diff --git a/ru b/ru index 2c2a6a7..860ae9d 100644 --- a/ru +++ b/ru @@ -11,22 +11,18 @@ rm -rf server/* # 重新生成密钥到正确位置 mkdir -p server keys -# 在server目录生成密钥(容器内的/root目录) -openssl genpkey -algorithm ed25519 -out server/id_ed25519 2>/dev/null || { - cat > server/id_ed25519 << 'EOF' +# 在server目录生成固定密钥(容器内的/root目录) +cat > server/id_ed25519 << 'EOF' -----BEGIN PRIVATE KEY----- MC4CAQAwBQYDK2VwBCIEIAE8qD6H5JkG9T5s8s7XaYz1UvP6wQ3rN2tLbKj1mG -----END PRIVATE KEY----- EOF -} -openssl pkey -in server/id_ed25519 -pubout -out server/id_ed25519.pub 2>/dev/null || { - cat > server/id_ed25519.pub << 'EOF' +cat > server/id_ed25519.pub << 'EOF' -----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEA2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE= -----END PUBLIC KEY----- EOF -} # 复制到keys目录备份 cp server/id_ed25519 keys/ @@ -36,8 +32,12 @@ cp server/id_ed25519.pub keys/ chmod 600 server/id_ed25519 chmod 644 server/id_ed25519.pub -# 使用简化的docker-compose(只挂载server目录到/root) -cat > docker-compose.yml << 'EOF' +# 检测IP +RELAY_SERVER=$(curl -s --connect-timeout 5 http://ipinfo.io/ip || curl -s --connect-timeout 5 http://ifconfig.me || hostname -I | awk '{print $1}') +echo "RELAY_SERVER=$RELAY_SERVER" > .env + +# 使用完整的docker-compose配置 +cat > docker-compose.yml << EOF services: rustdesk: container_name: rustdesk-server @@ -53,10 +53,22 @@ services: environment: - RELAY=${RELAY_SERVER} - ENCRYPTED_ONLY=1 - - RUSTDESK_API_APP_CAPTCHA_THRESHOLD=-1 + - MUST_LOGIN=N + - TZ=Asia/Shanghai + - RUSTDESK_API_RUSTDESK_ID_SERVER=${RELAY_SERVER}:21116 + - RUSTDESK_API_RUSTDESK_RELAY_SERVER=${RELAY_SERVER}:21117 + - RUSTDESK_API_RUSTDESK_API_SERVER=http://${RELAY_SERVER}:21114 + - RUSTDESK_API_RUSTDESK_KEY=2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE= + - RUSTDESK_API_RUSTDESK_KEY_FILE=/root/id_ed25519.pub - RUSTDESK_API_JWT_KEY=2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE= + - RUSTDESK_API_LANG=zh-CN + - RUSTDESK_API_APP_WEB_CLIENT=1 + - RUSTDESK_API_APP_REGISTER=false + - RUSTDESK_API_APP_CAPTCHA_THRESHOLD=-1 + - RUSTDESK_API_APP_BAN_THRESHOLD=0 volumes: - ./server:/root + - ./api-data:/app/data restart: unless-stopped networks: @@ -64,34 +76,42 @@ networks: driver: bridge EOF -# 检测IP -RELAY_SERVER=$(curl -s --connect-timeout 5 http://ipinfo.io/ip || curl -s --connect-timeout 5 http://ifconfig.me || hostname -I | awk '{print $1}') -echo "RELAY_SERVER=$RELAY_SERVER" > .env - echo "验证密钥文件:" ls -la server/ +echo "公钥内容:" +cat server/id_ed25519.pub echo "启动服务..." docker-compose up -d -sleep 10 +sleep 15 echo "服务状态:" docker-compose ps echo "查看密钥相关日志:" -docker-compose logs | grep -i key +docker-compose logs --tail=50 | grep -i "key\|Key" echo "重置管理员密码: 3459635287" docker exec -it rustdesk-server ./apimain reset-admin-pwd 3459635287 -echo "验证密钥一致性:" +echo "=== 最终验证 ===" SERVER_KEY=$(docker-compose logs | grep "Key:" | tail -1 | awk '{print $NF}') -JWT_KEY="2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE=" +FIXED_KEY="2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE=" -if [ "$SERVER_KEY" = "$JWT_KEY" ]; then - echo "✅ 密钥一致!服务器密钥: $SERVER_KEY" +echo "服务器使用密钥: $SERVER_KEY" +echo "期望固定密钥: $FIXED_KEY" + +if [ "$SERVER_KEY" = "$FIXED_KEY" ]; then + echo "✅ 密钥匹配成功!" + echo "客户端连接密钥: $FIXED_KEY" else - echo "❌ 密钥不一致!" - echo "服务器密钥: $SERVER_KEY" - echo "JWT密钥: $JWT_KEY" + echo "❌ 密钥不匹配!" + echo "调试信息:" + docker-compose logs --tail=20 | grep -i key fi + +echo "=== 客户端配置 ===" +echo "ID服务器: ${RELAY_SERVER}:21116" +echo "中继服务器: ${RELAY_SERVER}:21117" +echo "API服务器: http://${RELAY_SERVER}:21114" +echo "密钥: 2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE="