From fb157c8bccd331edd4960038800e982905180766 Mon Sep 17 00:00:00 2001 From: xzx3344521 Date: Thu, 30 Oct 2025 13:05:46 +0800 Subject: [PATCH] Update ru --- ru | 150 +++++++++++++++---------------------------------------------- 1 file changed, 36 insertions(+), 114 deletions(-) diff --git a/ru b/ru index 0e223ce..6481ea5 100644 --- a/ru +++ b/ru @@ -1,62 +1,43 @@ #!/bin/bash -set -e +echo "强制修复密钥问题..." -echo "========================================" -echo " RustDesk 统一密钥部署脚本" -echo "========================================" - -# 创建目录结构 -mkdir -p rustdesk-unified-keys cd rustdesk-unified-keys -mkdir -p server api keys -# 检测服务器IP -echo "检测服务器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}') +# 完全重置 +docker-compose down +rm -rf server/* -if [ -z "$RELAY_SERVER" ]; then - echo "请输入服务器IP地址:" - read RELAY_SERVER -else - echo "检测到服务器IP: $RELAY_SERVER" -fi +# 重新生成密钥到正确位置 +mkdir -p server keys -# 生成统一密钥(如果不存在) -echo "检查统一密钥..." -if [ ! -f "keys/id_ed25519" ] || [ ! -f "keys/id_ed25519.pub" ]; then - echo "生成统一密钥对..." - openssl genpkey -algorithm ed25519 -out keys/id_ed25519 2>/dev/null || { - echo "使用备用方法生成密钥..." - # 备用密钥生成方法 - cat > keys/id_ed25519 << 'EOF' +# 在server目录生成密钥(容器内的/root目录) +openssl genpkey -algorithm ed25519 -out server/id_ed25519 2>/dev/null || { + cat > server/id_ed25519 << 'EOF' -----BEGIN PRIVATE KEY----- MC4CAQAwBQYDK2VwBCIEIAE8qD6H5JkG9T5s8s7XaYz1UvP6wQ3rN2tLbKj1mG -----END PRIVATE KEY----- EOF - cat > keys/id_ed25519.pub << 'EOF' +} + +openssl pkey -in server/id_ed25519 -pubout -out server/id_ed25519.pub 2>/dev/null || { + cat > server/id_ed25519.pub << 'EOF' -----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEA2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE= -----END PUBLIC KEY----- EOF - } - echo "✓ 统一密钥生成完成" -else - echo "✓ 使用现有统一密钥" -fi +} -# 生成JWT密钥 -JWT_KEY=$(openssl rand -base64 32 2>/dev/null || echo "default_jwt_secret_key_change_in_production") +# 复制到keys目录备份 +cp server/id_ed25519 keys/ +cp server/id_ed25519.pub keys/ -# 创建环境变量文件 -cat > .env << EOF -RELAY_SERVER=$RELAY_SERVER -JWT_KEY=$JWT_KEY -KEY_PATH=./keys -EOF +# 设置正确的权限 +chmod 600 server/id_ed25519 +chmod 644 server/id_ed25519.pub -# 创建Docker Compose配置 -cat > docker-compose.yml << EOF +# 使用简化的docker-compose(只挂载server目录到/root) +cat > docker-compose.yml << 'EOF' services: rustdesk: container_name: rustdesk-server @@ -70,22 +51,10 @@ services: - "21119:21119" image: lejianwen/rustdesk-server-s6:latest environment: - - RELAY=\${RELAY_SERVER} + - RELAY=${RELAY_SERVER} - ENCRYPTED_ONLY=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_KEY_FILE=/data/id_ed25519.pub - - RUSTDESK_API_JWT_KEY=\${JWT_KEY} volumes: - - ./server:/data - - ./api:/app/data - - ./keys/id_ed25519:/data/id_ed25519:ro - - ./keys/id_ed25519.pub:/data/id_ed25519.pub:ro - networks: - - rustdesk-net + - ./server:/root restart: unless-stopped networks: @@ -93,66 +62,19 @@ networks: driver: bridge EOF -# 创建管理脚本 -cat > start.sh << 'EOF' -#!/bin/bash -cd "$(dirname "$0")" -docker-compose up -d -echo "RustDesk服务器已启动" -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 -cat > stop.sh << 'EOF' -#!/bin/bash -cd "$(dirname "$0")" -docker-compose down -echo "RustDesk服务器已停止" -EOF +echo "验证密钥文件:" +ls -la server/ -cat > restart.sh << 'EOF' -#!/bin/bash -cd "$(dirname "$0")" -docker-compose restart -echo "RustDesk服务器已重启" -EOF - -chmod +x start.sh stop.sh restart.sh - -# 创建密钥分发脚本 -cat > share-keys.sh << 'EOF' -#!/bin/bash -echo "========================================" -echo " 统一密钥分发信息" -echo "========================================" -echo "公钥内容:" -cat keys/id_ed25519.pub -echo -e "\n公钥文件: keys/id_ed25519.pub" -echo "私钥文件: keys/id_ed25519" -echo -e "\n在其他服务器部署时,请复制整个 keys 目录" -echo "或手动创建相同的密钥文件" -EOF - -chmod +x share-keys.sh - -# 启动服务 -echo "启动RustDesk服务..." +echo "启动服务..." docker-compose up -d -# 显示部署信息 -echo "========================================" -echo " 部署完成!" -echo "========================================" -echo "服务器地址: $RELAY_SERVER" -echo "ID服务器: $RELAY_SERVER:21116" -echo "中继服务器: $RELAY_SERVER:21117" -echo "API服务器: http://$RELAY_SERVER:21114" -echo "" -echo "统一公钥:" -cat keys/id_ed25519.pub -echo "" -echo "管理命令:" -echo "启动: ./start.sh" -echo "停止: ./stop.sh" -echo "重启: ./restart.sh" -echo "密钥信息: ./share-keys.sh" -echo "" -echo "要在其他服务器使用相同密钥,请复制 keys 目录" +sleep 5 +echo "服务状态:" +docker-compose ps + +echo "查看密钥相关日志:" +docker-compose logs | grep -i key