更新 03
This commit is contained in:
80
03
80
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 <<EOF
|
||||
[Unit]
|
||||
Description=RustDesk ID Server
|
||||
@@ -51,7 +89,6 @@ After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
# -k _ 强制生成并读取当前目录下的密钥对
|
||||
ExecStart=/usr/bin/hbbs -r ${HOST_IP}:21117 -k _
|
||||
WorkingDirectory=${DATA_DIR}
|
||||
Restart=always
|
||||
@@ -61,7 +98,6 @@ User=root
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# 写入 hbbr 服务 (指定工作目录为 /data)
|
||||
cat > /etc/systemd/system/rustdesk-hbbr.service <<EOF
|
||||
[Unit]
|
||||
Description=RustDesk Relay Server
|
||||
@@ -83,18 +119,16 @@ systemctl daemon-reload
|
||||
systemctl enable --now rustdesk-hbbs rustdesk-hbbr
|
||||
|
||||
echo "------------------------------------------------"
|
||||
echo "RustDesk 服务已在常规模式下启动!"
|
||||
echo "数据存储路径已设置为: $DATA_DIR"
|
||||
echo "正在等待 Key 文件生成..."
|
||||
echo "RustDesk 安装完成!"
|
||||
echo "数据存储路径: $DATA_DIR"
|
||||
echo "正在等待 Key 生成..."
|
||||
sleep 3
|
||||
|
||||
PUB_KEY="${DATA_DIR}/id_ed25519.pub"
|
||||
|
||||
if [ -f "$PUB_KEY" ]; then
|
||||
echo "你的 Key 为:"
|
||||
cat "$PUB_KEY"
|
||||
echo -e "\033[32m$(cat "$PUB_KEY")\033[0m"
|
||||
else
|
||||
echo "警告:Key 文件尚未生成。"
|
||||
echo "请尝试运行: systemctl status rustdesk-hbbs 检查服务状态"
|
||||
echo "警告:Key 文件尚未生成,请手动检查: cat $PUB_KEY"
|
||||
fi
|
||||
echo "------------------------------------------------"
|
||||
Reference in New Issue
Block a user