更新 03

This commit is contained in:
2026-01-25 10:56:57 +08:00
parent f40c881050
commit 07d0219e91

79
03
View File

@@ -1,63 +1,54 @@
#!/bin/bash
# ================= 配置区域 =================
# 新安装时的默认路径
NEW_INSTALL_DIR="/data"
# 回归官方默认安装路径
DATA_DIR="/var/lib/rustdesk-server"
# ===========================================
# --- 功能 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 "⚠️ 检测到系统已安装 RustDesk Server"
echo "------------------------------------------------"
echo "脚本已退出,未进行任何修改。"
exit 0
read -p "是否卸载当前版本并重新安装?(输入 y 确认,输入 n 退出): " choice
case "$choice" in
y|Y )
echo ">>> 正在停止服务并卸载..."
systemctl stop rustdesk-hbbs rustdesk-hbbr
systemctl disable rustdesk-hbbs rustdesk-hbbr
# 使用 purge 彻底清除旧配置,确保干净重装
dpkg -P rustdesk-server-hbbs rustdesk-server-hbbr
apt-get purge -y rustdesk-server-hbbs rustdesk-server-hbbr
# 询问是否删除数据Key
read -p "是否连同旧的 Key 和数据文件一起删除?(y/n) [推荐 n 保留]: " del_data
if [[ "$del_data" == "y" || "$del_data" == "Y" ]]; then
rm -rf "$DATA_DIR"
echo ">>> 旧数据已清除。"
else
echo ">>> 旧数据已保留。"
fi
echo ">>> 卸载完成,准备开始重新安装..."
;;
* )
echo ">>> 已取消操作,脚本退出。"
exit 0
;;
esac
fi
# --- 下面是正常的安装流程 (仅在未安装时执行) ---
echo "未检测到现有服务,开始全新安装..."
# --- 开始安装流程 ---
# 1. 基础环境修复
echo "正在修复基础环境..."
apt-get update
apt-get install -y curl wget lsof psmisc
# 2. 准备目录
DATA_DIR="$NEW_INSTALL_DIR"
# 2. 准备目录 (使用官方标准路径)
if [ ! -d "$DATA_DIR" ]; then
echo "目录 $DATA_DIR 不存在,正在创建..."
echo "正在创建标准数据目录: $DATA_DIR"
mkdir -p "$DATA_DIR"
else
echo "目录已存在: $DATA_DIR"
fi
# 3. 下载安装包
@@ -73,15 +64,16 @@ if [ ! -s hbbs.deb ]; then
exit 1
fi
# 4. 安装并清理
# 4. 安装
echo "正在安装软件包..."
dpkg -i hbbs.deb hbbr.deb
apt-get install -f -y
rm -f hbbs.deb hbbr.deb
# 5. 配置 Systemd 服务
# 5. 配置 Systemd 服务 (写入 /var/lib/rustdesk-server 路径)
HOST_IP=$(curl -s4 ifconfig.me)
echo "正在写入服务配置..."
cat > /etc/systemd/system/rustdesk-hbbs.service <<EOF
[Unit]
Description=RustDesk ID Server
@@ -89,6 +81,7 @@ After=network.target
[Service]
Type=simple
# -r 指定 IP, -k _ 强制生成 Key
ExecStart=/usr/bin/hbbs -r ${HOST_IP}:21117 -k _
WorkingDirectory=${DATA_DIR}
Restart=always
@@ -119,7 +112,7 @@ systemctl daemon-reload
systemctl enable --now rustdesk-hbbs rustdesk-hbbr
echo "------------------------------------------------"
echo "RustDesk 安装完成!"
echo "RustDesk 安装完成 (标准路径版)"
echo "数据存储路径: $DATA_DIR"
echo "正在等待 Key 生成..."
sleep 3