Update ru

This commit is contained in:
2025-10-30 12:49:22 +08:00
committed by GitHub
parent 38e51627de
commit 2db2fef91d

159
ru
View File

@@ -1,22 +1,88 @@
#!/bin/bash #!/bin/bash
# RustDesk Server 一键部署脚本 # RustDesk Server 一键部署脚本包含Docker自动安装
set -e set -e
echo "========================================" echo "========================================"
echo " RustDesk Server 一键部署脚本" echo " RustDesk Server 一键部署脚本"
echo "========================================" echo "========================================"
# 检查并安装 Docker
install_docker() {
echo "1. 检查并安装 Docker..."
if command -v docker &> /dev/null; then
echo "✓ Docker 已安装"
else
echo "正在安装 Docker..."
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
rm get-docker.sh
# 启动 Docker 服务
systemctl start docker
systemctl enable docker
# 将当前用户加入 docker 组
usermod -aG docker $USER || true
echo "✓ Docker 安装完成"
fi
}
# 检查并安装 Docker Compose
install_docker_compose() {
echo "2. 检查并安装 Docker Compose..."
if command -v docker-compose &> /dev/null; then
echo "✓ Docker Compose 已安装"
else
echo "正在安装 Docker Compose..."
# 下载 Docker Compose
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 设置执行权限
chmod +x /usr/local/bin/docker-compose
# 创建软链接(兼容旧版本)
ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
echo "✓ Docker Compose 安装完成"
fi
}
# 安装必要的依赖
install_dependencies() {
echo "安装必要依赖..."
if command -v apt &> /dev/null; then
apt update
apt install -y curl wget openssl
elif command -v yum &> /dev/null; then
yum install -y curl wget openssl
elif command -v dnf &> /dev/null; then
dnf install -y curl wget openssl
else
echo "⚠ 无法自动安装依赖,请手动安装 curl, wget, openssl"
fi
}
# 主部署函数
deploy_rustdesk() {
# 创建项目目录 # 创建项目目录
mkdir -p rustdesk-server mkdir -p rustdesk-server
cd rustdesk-server cd rustdesk-server
# 生成固定密钥对 # 生成固定密钥对
echo "1. 生成密钥对..." echo "3. 生成密钥对..."
mkdir -p keys mkdir -p keys
openssl genpkey -algorithm ed25519 -out keys/id_ed25519 2>/dev/null || { if command -v openssl &> /dev/null; then
echo "生成密钥对失败,创建示例密钥..." openssl genpkey -algorithm ed25519 -out keys/id_ed25519 2>/dev/null
# 如果 openssl 不可用,创建示例密钥文件 openssl pkey -in keys/id_ed25519 -pubout -out keys/id_ed25519.pub 2>/dev/null
else
echo "⚠ openssl 不可用,使用预生成密钥..."
# 创建示例密钥文件
cat > keys/id_ed25519 << 'EOF' cat > keys/id_ed25519 << 'EOF'
-----BEGIN PRIVATE KEY----- -----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIAE8qD6H5JkG9T5s8s7XaYz1UvP6wQ3rN2tLbKj1mG MC4CAQAwBQYDK2VwBCIEIAE8qD6H5JkG9T5s8s7XaYz1UvP6wQ3rN2tLbKj1mG
@@ -27,15 +93,15 @@ EOF
MCowBQYDK2VwAyEA2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE= MCowBQYDK2VwAyEA2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE=
-----END PUBLIC KEY----- -----END PUBLIC KEY-----
EOF EOF
} fi
# 编码密钥为base64 # 编码密钥为base64
KEY_PRIV=$(cat keys/id_ed25519 | base64 -w 0) KEY_PRIV=$(cat keys/id_ed25519 | base64 -w 0 2>/dev/null || echo "MC4CAQAwBQYDK2VwBCIEIAE8qD6H5JkG9T5s8s7XaYz1UvP6wQ3rN2tLbKj1mG")
KEY_PUB=$(cat keys/id_ed25519.pub | base64 -w 0) KEY_PUB=$(cat keys/id_ed25519.pub | base64 -w 0 2>/dev/null || echo "MCowBQYDK2VwAyEA2Q1Dp4q8q5V7s9kLx2mBwT3zN8rR6vY1zUj5tKfE=")
# 自动检测服务器IP # 自动检测服务器IP
echo "2. 检测服务器IP地址..." echo "4. 检测服务器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}') RELAY_SERVER=$(curl -s --connect-timeout 5 http://ipinfo.io/ip || curl -s --connect-timeout 5 http://ifconfig.me || curl -s --connect-timeout 5 http://api.ipify.org || hostname -I | awk '{print $1}')
if [ -z "$RELAY_SERVER" ]; then if [ -z "$RELAY_SERVER" ]; then
echo "错误: 无法自动获取服务器IP请手动输入:" echo "错误: 无法自动获取服务器IP请手动输入:"
@@ -45,7 +111,7 @@ else
fi fi
# 创建docker-compose.yml # 创建docker-compose.yml
echo "3. 创建Docker Compose配置..." echo "5. 创建Docker Compose配置..."
cat > docker-compose.yml << EOF cat > docker-compose.yml << EOF
version: '3' version: '3'
@@ -88,12 +154,20 @@ KEY_PUB=$KEY_PUB
KEY_PRIV=$KEY_PRIV KEY_PRIV=$KEY_PRIV
EOF EOF
# 创建管理脚本
create_management_scripts
}
# 创建管理脚本
create_management_scripts() {
# 创建启动脚本 # 创建启动脚本
cat > start.sh << 'EOF' cat > start.sh << 'EOF'
#!/bin/bash #!/bin/bash
cd "$(dirname "$0")" cd "$(dirname "$0")"
docker-compose up -d docker-compose up -d
echo "RustDesk服务器启动完成" echo "RustDesk服务器启动完成"
echo "ID服务器: $(grep RELAY_SERVER .env | cut -d= -f2):21116"
echo "中继服务器: $(grep RELAY_SERVER .env | cut -d= -f2):21117"
EOF EOF
# 创建停止脚本 # 创建停止脚本
@@ -102,6 +176,14 @@ cat > stop.sh << 'EOF'
cd "$(dirname "$0")" cd "$(dirname "$0")"
docker-compose down docker-compose down
echo "RustDesk服务器已停止" echo "RustDesk服务器已停止"
EOF
# 创建重启脚本
cat > restart.sh << 'EOF'
#!/bin/bash
cd "$(dirname "$0")"
docker-compose restart
echo "RustDesk服务器已重启"
EOF EOF
# 创建客户端配置说明 # 创建客户端配置说明
@@ -111,7 +193,7 @@ cat > client-config.md << EOF
## 服务器信息 ## 服务器信息
- ID服务器: $RELAY_SERVER:21116 - ID服务器: $RELAY_SERVER:21116
- 中继服务器: $RELAY_SERVER:21117 - 中继服务器: $RELAY_SERVER:21117
- Key: - 公钥:
\`\`\` \`\`\`
$(cat keys/id_ed25519.pub) $(cat keys/id_ed25519.pub)
\`\`\` \`\`\`
@@ -135,39 +217,34 @@ $(cat keys/id_ed25519.pub)
EOF EOF
# 设置脚本权限 # 设置脚本权限
chmod +x start.sh stop.sh chmod +x start.sh stop.sh restart.sh
}
# 检查Docker环境
echo "4. 检查Docker环境..."
if ! command -v docker &> /dev/null; then
echo "错误: Docker未安装请先安装Docker"
exit 1
fi
if ! command -v docker-compose &> /dev/null; then
echo "错误: Docker Compose未安装请先安装Docker Compose"
exit 1
fi
# 拉取镜像
echo "5. 拉取Docker镜像..."
docker pull lejianwen/rustdesk-server:latest
# 启动服务 # 启动服务
echo "6. 启动RustDesk服务..." start_services() {
echo "6. 拉取Docker镜像..."
docker pull lejianwen/rustdesk-server:latest
echo "7. 启动RustDesk服务..."
docker-compose up -d docker-compose up -d
# 等待服务启动
sleep 5
}
# 显示部署结果 # 显示部署结果
show_result() {
echo "========================================" echo "========================================"
echo " 部署完成!" echo " 部署完成!"
echo "========================================" echo "========================================"
echo "服务状态:"
echo -e "\n服务状态:"
docker-compose ps docker-compose ps
echo -e "\n客户端配置信息已保存到: client-config.md"
echo -e "\n管理命令:" echo -e "\n管理命令:"
echo "启动服务: ./start.sh" echo "启动服务: ./start.sh"
echo "停止服务: ./stop.sh" echo "停止服务: ./stop.sh"
echo "重启服务: ./restart.sh"
echo "查看日志: docker-compose logs -f" echo "查看日志: docker-compose logs -f"
echo "查看状态: docker-compose ps" echo "查看状态: docker-compose ps"
@@ -175,3 +252,21 @@ echo -e "\n重要信息:"
echo "ID服务器: $RELAY_SERVER:21116" echo "ID服务器: $RELAY_SERVER:21116"
echo "中继服务器: $RELAY_SERVER:21117" echo "中继服务器: $RELAY_SERVER:21117"
echo "密钥文件位置: ./keys/" echo "密钥文件位置: ./keys/"
echo -e "\n客户端配置信息已保存到: client-config.md"
echo -e "\n⚠ 注意: 可能需要重新登录终端才能使用 docker 命令"
echo "或者运行: newgrp docker"
}
# 主执行流程
main() {
install_dependencies
install_docker
install_docker_compose
deploy_rustdesk
start_services
show_result
}
# 执行主函数
main