From f40c881050cded54e5ad2a9a0e883436390d69e2 Mon Sep 17 00:00:00 2001 From: 3344 Date: Sun, 25 Jan 2026 10:40:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=2003?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 03 | 80 ++++++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 57 insertions(+), 23 deletions(-) diff --git a/03 b/03 index 67127b7..1c8223a 100644 --- a/03 +++ b/03 @@ -1,35 +1,75 @@ #!/bin/bash +# ================= 配置区域 ================= +# 新安装时的默认路径 +NEW_INSTALL_DIR="/data" +# =========================================== + +# --- 功能 1: 智能检测是否已安装 --- +echo "正在检查系统状态..." + +# 检查 systemd 中是否有 hbbs 服务 +if systemctl list-unit-files | grep -q "rustdesk-hbbs.service"; then + echo "------------------------------------------------" + echo "⚠️ 检测到 RustDesk Server (hbbs) 已经安装!" + echo "无需重新安装,正在为你读取现有的密钥配置..." + + # 尝试从 systemd 配置中动态获取它当前的工作目录 + # 这样无论你以前装在 /data 还是 /root 都能找到 + CURRENT_WORK_DIR=$(systemctl show -p WorkingDirectory --value rustdesk-hbbs) + + # 如果系统未能返回路径(罕见情况),尝试默认路径 + if [ -z "$CURRENT_WORK_DIR" ]; then + CURRENT_WORK_DIR="$NEW_INSTALL_DIR" + fi + + echo "📂 发现数据目录: $CURRENT_WORK_DIR" + + KEY_FILE="${CURRENT_WORK_DIR}/id_ed25519.pub" + + echo "" + if [ -f "$KEY_FILE" ]; then + echo "🔑 你的现有 Key (Public Key) 为:" + echo -e "\033[32m$(cat "$KEY_FILE")\033[0m" + else + echo "❌ 未找到密钥文件。" + echo "尝试在目录中查找: $CURRENT_WORK_DIR" + echo "建议检查服务是否启动成功: systemctl status rustdesk-hbbs" + fi + + echo "------------------------------------------------" + echo "脚本已退出,未进行任何修改。" + exit 0 +fi + +# --- 下面是正常的安装流程 (仅在未安装时执行) --- + +echo "未检测到现有服务,开始全新安装..." + # 1. 基础环境修复 echo "正在修复基础环境..." apt-get update -# 安装常用工具,lsof 用于端口检查,psmisc 用于进程管理 apt-get install -y curl wget lsof psmisc -# 2. 准备目录 (修改为 /data) -DATA_DIR="/data" - -# 检查目录是否存在,不存在则创建 +# 2. 准备目录 +DATA_DIR="$NEW_INSTALL_DIR" if [ ! -d "$DATA_DIR" ]; then - echo "目录 $DATA_DIR 不存在,正在为你创建..." + echo "目录 $DATA_DIR 不存在,正在创建..." mkdir -p "$DATA_DIR" else - echo "检测到目录已存在: $DATA_DIR" + echo "目录已存在: $DATA_DIR" fi -# 3. 下载安装包 (优先使用你的源,失败则使用官方源) +# 3. 下载安装包 echo "正在获取安装包..." URL_HBBS="https://cloudreve.vps3344521.xyz/f/W9tx/rustdesk-server-hbbs_1.1.15_amd64.deb" URL_HBBR="https://cloudreve.vps3344521.xyz/f/j3fJ/rustdesk-server-hbbr_1.1.15_amd64.deb" -# 下载 hbbs wget -O hbbs.deb "$URL_HBBS" || wget -O hbbs.deb "https://github.com/rustdesk/rustdesk-server/releases/download/1.1.11-1/rustdesk-server-hbbs_1.1.11_amd64.deb" -# 下载 hbbr wget -O hbbr.deb "$URL_HBBR" || wget -O hbbr.deb "https://github.com/rustdesk/rustdesk-server/releases/download/1.1.11-1/rustdesk-server-hbbr_1.1.11_amd64.deb" -# 检查文件大小,防止 502 错误 if [ ! -s hbbs.deb ]; then - echo "错误:未能下载有效的安装包,请检查网络连接。" + echo "错误:未能下载有效的安装包。" exit 1 fi @@ -40,10 +80,8 @@ apt-get install -f -y rm -f hbbs.deb hbbr.deb # 5. 配置 Systemd 服务 -# 自动获取本机公网 IP HOST_IP=$(curl -s4 ifconfig.me) -# 写入 hbbs 服务 (指定工作目录为 /data) cat > /etc/systemd/system/rustdesk-hbbs.service < /etc/systemd/system/rustdesk-hbbr.service <