更新 03
This commit is contained in:
130
03
130
03
@@ -1,51 +1,97 @@
|
||||
#!/bin/bash
|
||||
# 【方案一】标准修复版
|
||||
|
||||
# 1. 强力修复 Docker 环境 (这是最核心的一步)
|
||||
echo "正在配置 Docker 为 VFS 驱动..."
|
||||
systemctl stop docker 2>/dev/null
|
||||
mkdir -p /etc/docker
|
||||
cat > /etc/docker/daemon.json <<EOF
|
||||
{
|
||||
"storage-driver": "vfs",
|
||||
"iptables": true
|
||||
}
|
||||
EOF
|
||||
systemctl start docker
|
||||
# ==========================================
|
||||
# 脚本功能:安装 RustDesk Server (hbbs/hbbr) .deb 包
|
||||
# 适用系统:Debian 12 / 飞牛 NAS
|
||||
# 数据目录:/vol1/1000/dock/rustdesk/data
|
||||
# ==========================================
|
||||
|
||||
# 2. 准备目录
|
||||
INSTALL_DIR="/vol1/1000/dock/rustdesk"
|
||||
mkdir -p "$INSTALL_DIR/data"
|
||||
cd "$INSTALL_DIR"
|
||||
# 1. 基础配置
|
||||
DATA_DIR="/vol1/1000/dock/rustdesk/data"
|
||||
mkdir -p "$DATA_DIR"
|
||||
|
||||
# 3. 获取公网IP
|
||||
# 获取外网 IP
|
||||
HOST_IP=$(curl -s4 ifconfig.me)
|
||||
if [[ -z "$HOST_IP" ]]; then read -p "请输入公网IP: " HOST_IP; fi
|
||||
if [ -z "$HOST_IP" ]; then
|
||||
read -p "无法自动获取公网IP,请输入服务器IP: " HOST_IP
|
||||
fi
|
||||
|
||||
# 4. 生成配置 (使用 host 网络模式,这比 bridge 模式更稳)
|
||||
cat > rustdesk.yml <<EOF
|
||||
services:
|
||||
hbbs:
|
||||
container_name: rustdesk-hbbs
|
||||
image: rustdesk/rustdesk-server:latest
|
||||
command: hbbs -r ${HOST_IP}:21117 -k _
|
||||
volumes:
|
||||
- ./data:/root
|
||||
network_mode: "host" # 直接使用宿主机网络,无需映射端口
|
||||
privileged: true # 特权模式
|
||||
restart: always
|
||||
# 2. 检查并安装基础软件
|
||||
echo "正在检查基础软件..."
|
||||
apt-get update && apt-get install -p -y curl wget lsof
|
||||
|
||||
hbbr:
|
||||
container_name: rustdesk-hbbr
|
||||
image: rustdesk/rustdesk-server:latest
|
||||
command: hbbr -k _
|
||||
volumes:
|
||||
- ./data:/root
|
||||
network_mode: "host"
|
||||
privileged: true
|
||||
restart: always
|
||||
# 3. 检查端口是否被占用 (21115-21119)
|
||||
echo "正在检查端口占用情况..."
|
||||
for port in 21115 21116 21117 21118 21119; do
|
||||
if lsof -i :$port >/dev/null; then
|
||||
echo "错误:端口 $port 已被占用,请先关闭相关程序后再试。"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# 4. 下载并安装 .deb 包
|
||||
# 注意:这里直接使用你提供的 Cloudreve 链接
|
||||
echo "正在下载安装包..."
|
||||
wget -O hbbs.deb "https://cloudreve.vps3344521.xyz/f/W9tx/rustdesk-server-hbbs_1.1.15_amd64.deb"
|
||||
wget -O hbbr.deb "https://cloudreve.vps3344521.xyz/f/j3fJ/rustdesk-server-hbbr_1.1.15_amd64.deb"
|
||||
|
||||
echo "正在安装软件包..."
|
||||
dpkg -i hbbs.deb hbbr.deb
|
||||
apt-get install -f -y # 修复可能存在的依赖问题
|
||||
|
||||
# 5. 配置并启动服务 (使用 Systemd)
|
||||
# 配置 hbbs
|
||||
cat > /etc/systemd/system/rustdesk-hbbs.service <<EOF
|
||||
[Unit]
|
||||
Description=RustDesk ID Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
LimitNOFILE=1000000
|
||||
ExecStart=/usr/bin/hbbs -r ${HOST_IP}:21117 -k _
|
||||
WorkingDirectory=${DATA_DIR}
|
||||
Restart=always
|
||||
StandardOutput=append:${DATA_DIR}/hbbs.log
|
||||
StandardError=append:${DATA_DIR}/hbbs.err
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# 5. 启动
|
||||
docker compose -f rustdesk.yml up -d
|
||||
echo "部署完成。Key 文件位于: $INSTALL_DIR/data/id_ed25519.pub"
|
||||
# 配置 hbbr
|
||||
cat > /etc/systemd/system/rustdesk-hbbr.service <<EOF
|
||||
[Unit]
|
||||
Description=RustDesk Relay Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
LimitNOFILE=1000000
|
||||
ExecStart=/usr/bin/hbbr -k _
|
||||
WorkingDirectory=${DATA_DIR}
|
||||
Restart=always
|
||||
StandardOutput=append:${DATA_DIR}/hbbr.log
|
||||
StandardError=append:${DATA_DIR}/hbbr.err
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# 6. 刷新并启动服务
|
||||
echo "正在启动 RustDesk 服务..."
|
||||
systemctl daemon-reload
|
||||
systemctl enable rustdesk-hbbs rustdesk-hbbr
|
||||
systemctl restart rustdesk-hbbs rustdesk-hbbr
|
||||
|
||||
# 7. 善后处理
|
||||
rm hbbs.deb hbbr.deb
|
||||
|
||||
echo "------------------------------------------------"
|
||||
echo "安装完成!"
|
||||
echo "服务器 IP: ${HOST_IP}"
|
||||
echo "数据目录: ${DATA_DIR}"
|
||||
echo "Key 内容如下 (请填入客户端):"
|
||||
sleep 2
|
||||
cat ${DATA_DIR}/id_ed25519.pub
|
||||
echo -e "\n------------------------------------------------"
|
||||
Reference in New Issue
Block a user