Files
dock/03
2026-01-25 10:56:57 +08:00

127 lines
3.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# ================= 配置区域 =================
# 回归官方默认安装路径
DATA_DIR="/var/lib/rustdesk-server"
# ===========================================
# --- 功能: 检测安装并询问 ---
echo "正在检查系统状态..."
if systemctl list-unit-files | grep -q "rustdesk-hbbs.service"; then
echo "------------------------------------------------"
echo "⚠️ 检测到系统已安装 RustDesk Server"
echo "------------------------------------------------"
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
# --- 开始安装流程 ---
# 1. 基础环境修复
echo "正在修复基础环境..."
apt-get update
apt-get install -y curl wget lsof psmisc
# 2. 准备目录 (使用官方标准路径)
if [ ! -d "$DATA_DIR" ]; then
echo "正在创建标准数据目录: $DATA_DIR"
mkdir -p "$DATA_DIR"
fi
# 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"
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"
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"
if [ ! -s hbbs.deb ]; then
echo "错误:未能下载有效的安装包。"
exit 1
fi
# 4. 安装
echo "正在安装软件包..."
dpkg -i hbbs.deb hbbr.deb
apt-get install -f -y
rm -f hbbs.deb hbbr.deb
# 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
After=network.target
[Service]
Type=simple
# -r 指定 IP, -k _ 强制生成 Key
ExecStart=/usr/bin/hbbs -r ${HOST_IP}:21117 -k _
WorkingDirectory=${DATA_DIR}
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
cat > /etc/systemd/system/rustdesk-hbbr.service <<EOF
[Unit]
Description=RustDesk Relay Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/hbbr -k _
WorkingDirectory=${DATA_DIR}
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
# 6. 启动并显示 Key
systemctl daemon-reload
systemctl enable --now rustdesk-hbbs rustdesk-hbbr
echo "------------------------------------------------"
echo "RustDesk 安装完成 (标准路径版)"
echo "数据存储路径: $DATA_DIR"
echo "正在等待 Key 生成..."
sleep 3
PUB_KEY="${DATA_DIR}/id_ed25519.pub"
if [ -f "$PUB_KEY" ]; then
echo "你的 Key 为:"
echo -e "\033[32m$(cat "$PUB_KEY")\033[0m"
else
echo "警告Key 文件尚未生成,请手动检查: cat $PUB_KEY"
fi
echo "------------------------------------------------"