Update ru

This commit is contained in:
2025-10-30 13:05:46 +08:00
committed by GitHub
parent 90a901c1e4
commit fb157c8bcc

150
ru
View File

@@ -1,62 +1,43 @@
#!/bin/bash #!/bin/bash
set -e echo "强制修复密钥问题..."
echo "========================================"
echo " RustDesk 统一密钥部署脚本"
echo "========================================"
# 创建目录结构
mkdir -p rustdesk-unified-keys
cd rustdesk-unified-keys cd rustdesk-unified-keys
mkdir -p server api keys
# 检测服务器IP # 完全重置
echo "检测服务器IP..." docker-compose down
RELAY_SERVER=$(curl -s --connect-timeout 5 http://ipinfo.io/ip || curl -s --connect-timeout 5 http://ifconfig.me || hostname -I | awk '{print $1}') rm -rf server/*
if [ -z "$RELAY_SERVER" ]; then # 重新生成密钥到正确位置
echo "请输入服务器IP地址:" mkdir -p server keys
read RELAY_SERVER
else
echo "检测到服务器IP: $RELAY_SERVER"
fi
# 生成统一密钥(如果不存在 # 在server目录生成密钥容器内的/root目录
echo "检查统一密钥..." openssl genpkey -algorithm ed25519 -out server/id_ed25519 2>/dev/null || {
if [ ! -f "keys/id_ed25519" ] || [ ! -f "keys/id_ed25519.pub" ]; then cat > server/id_ed25519 << 'EOF'
echo "生成统一密钥对..."
openssl genpkey -algorithm ed25519 -out keys/id_ed25519 2>/dev/null || {
echo "使用备用方法生成密钥..."
# 备用密钥生成方法
cat > keys/id_ed25519 << 'EOF'
-----BEGIN PRIVATE KEY----- -----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIAE8qD6H5JkG9T5s8s7XaYz1UvP6wQ3rN2tLbKj1mG MC4CAQAwBQYDK2VwBCIEIAE8qD6H5JkG9T5s8s7XaYz1UvP6wQ3rN2tLbKj1mG
-----END PRIVATE KEY----- -----END PRIVATE KEY-----
EOF 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----- -----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE= MCowBQYDK2VwAyEA2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE=
-----END PUBLIC KEY----- -----END PUBLIC KEY-----
EOF EOF
} }
echo "✓ 统一密钥生成完成"
else
echo "✓ 使用现有统一密钥"
fi
# 生成JWT密钥 # 复制到keys目录备份
JWT_KEY=$(openssl rand -base64 32 2>/dev/null || echo "default_jwt_secret_key_change_in_production") cp server/id_ed25519 keys/
cp server/id_ed25519.pub keys/
# 创建环境变量文件 # 设置正确的权限
cat > .env << EOF chmod 600 server/id_ed25519
RELAY_SERVER=$RELAY_SERVER chmod 644 server/id_ed25519.pub
JWT_KEY=$JWT_KEY
KEY_PATH=./keys
EOF
# 创建Docker Compose配置 # 使用简化的docker-compose只挂载server目录到/root
cat > docker-compose.yml << EOF cat > docker-compose.yml << 'EOF'
services: services:
rustdesk: rustdesk:
container_name: rustdesk-server container_name: rustdesk-server
@@ -70,22 +51,10 @@ services:
- "21119:21119" - "21119:21119"
image: lejianwen/rustdesk-server-s6:latest image: lejianwen/rustdesk-server-s6:latest
environment: environment:
- RELAY=\${RELAY_SERVER} - RELAY=${RELAY_SERVER}
- ENCRYPTED_ONLY=1 - 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: volumes:
- ./server:/data - ./server:/root
- ./api:/app/data
- ./keys/id_ed25519:/data/id_ed25519:ro
- ./keys/id_ed25519.pub:/data/id_ed25519.pub:ro
networks:
- rustdesk-net
restart: unless-stopped restart: unless-stopped
networks: networks:
@@ -93,66 +62,19 @@ networks:
driver: bridge driver: bridge
EOF EOF
# 创建管理脚本 # 检测IP
cat > start.sh << 'EOF' RELAY_SERVER=$(curl -s --connect-timeout 5 http://ipinfo.io/ip || curl -s --connect-timeout 5 http://ifconfig.me || hostname -I | awk '{print $1}')
#!/bin/bash echo "RELAY_SERVER=$RELAY_SERVER" > .env
cd "$(dirname "$0")"
docker-compose up -d
echo "RustDesk服务器已启动"
EOF
cat > stop.sh << 'EOF' echo "验证密钥文件:"
#!/bin/bash ls -la server/
cd "$(dirname "$0")"
docker-compose down
echo "RustDesk服务器已停止"
EOF
cat > restart.sh << 'EOF' echo "启动服务..."
#!/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服务..."
docker-compose up -d docker-compose up -d
# 显示部署信息 sleep 5
echo "========================================" echo "服务状态:"
echo " 部署完成!" docker-compose ps
echo "========================================"
echo "服务器地址: $RELAY_SERVER" echo "查看密钥相关日志:"
echo "ID服务器: $RELAY_SERVER:21116" docker-compose logs | grep -i key
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 目录"