更新 ru
This commit is contained in:
65
ru
65
ru
@@ -23,28 +23,43 @@ if ! command -v docker &> /dev/null; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 3. 设置安装目录
|
# 3. 设置安装目录(恢复为原始默认路径)
|
||||||
INSTALL_DIR="/data/rustdesk"
|
INSTALL_DIR="/data/rustdesk"
|
||||||
echo -e "${YELLOW}默认安装目录: ${INSTALL_DIR}${PLAIN}"
|
echo -e "${YELLOW}当前安装目录: ${INSTALL_DIR}${PLAIN}"
|
||||||
|
|
||||||
# 创建目录
|
# 创建目录
|
||||||
mkdir -p "${INSTALL_DIR}/data"
|
mkdir -p "${INSTALL_DIR}/data"
|
||||||
mkdir -p "${INSTALL_DIR}/api"
|
mkdir -p "${INSTALL_DIR}/api"
|
||||||
|
|
||||||
# 4. 获取用户输入 (公网IP/域名)
|
# 4. 获取用户输入
|
||||||
read -p "请输入服务器的公网 IP 或解析好的域名 (必填): " HOST_IP
|
read -p "请输入服务器的公网 IP 或解析好的域名 (必填): " HOST_IP
|
||||||
if [[ -z "$HOST_IP" ]]; then
|
if [[ -z "$HOST_IP" ]]; then
|
||||||
echo -e "${RED}错误:必须输入 IP 或域名!${PLAIN}"
|
echo -e "${RED}错误:必须输入 IP 或域名!${PLAIN}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# --- 交互选择:是否需要账号密码登录 ---
|
||||||
|
echo -e "${YELLOW}是否开启强制登录模式 (MUST_LOGIN)?${PLAIN}"
|
||||||
|
echo -e "1) 需要 (必须注册并登录账号才能连接)"
|
||||||
|
echo -e "2) 不需要 (直接使用 ID 和 Key 即可连接 - 默认)"
|
||||||
|
read -p "请选择 [1/2]: " LOGIN_CHOICE
|
||||||
|
|
||||||
|
if [[ "$LOGIN_CHOICE" == "1" ]]; then
|
||||||
|
MUST_LOGIN_VAL="Y"
|
||||||
|
echo -e "${GREEN}配置已设为:必须登录${PLAIN}"
|
||||||
|
else
|
||||||
|
MUST_LOGIN_VAL="N"
|
||||||
|
echo -e "${GREEN}配置已设为:无需登录(公共模式)${PLAIN}"
|
||||||
|
fi
|
||||||
|
# --------------------------------------
|
||||||
|
|
||||||
# 进入目录
|
# 进入目录
|
||||||
cd "$INSTALL_DIR" || exit
|
cd "$INSTALL_DIR" || exit
|
||||||
|
|
||||||
# 5. 生成 docker-compose.yml
|
# 5. 生成配置文件 (以容器名命名)
|
||||||
echo -e "${YELLOW}正在生成配置文件...${PLAIN}"
|
echo -e "${YELLOW}正在生成配置文件 rustdesk.yml...${PLAIN}"
|
||||||
|
|
||||||
cat > docker-compose.yml <<EOF
|
cat > rustdesk.yml <<EOF
|
||||||
version: '3'
|
version: '3'
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
@@ -64,22 +79,15 @@ services:
|
|||||||
- 21119:21119
|
- 21119:21119
|
||||||
image: lejianwen/rustdesk-server-s6:latest
|
image: lejianwen/rustdesk-server-s6:latest
|
||||||
environment:
|
environment:
|
||||||
# 公网IP或域名
|
|
||||||
- RELAY=${HOST_IP}
|
- RELAY=${HOST_IP}
|
||||||
# 强制必须登录才能连接
|
# 动态配置登录限制
|
||||||
- MUST_LOGIN=Y
|
- MUST_LOGIN=${MUST_LOGIN_VAL}
|
||||||
# 单个连接限速 2MB/s = 16Mb/s
|
|
||||||
- SINGLE_BANDWIDTH=16
|
- SINGLE_BANDWIDTH=16
|
||||||
# 总带宽限制
|
|
||||||
- TOTAL_BANDWIDTH=100
|
- TOTAL_BANDWIDTH=100
|
||||||
# 只允许加密连接
|
|
||||||
- ENCRYPTED_ONLY=1
|
- ENCRYPTED_ONLY=1
|
||||||
# 时区设置
|
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
volumes:
|
volumes:
|
||||||
# 密钥和数据持久化目录
|
|
||||||
- ${INSTALL_DIR}/data:/data
|
- ${INSTALL_DIR}/data:/data
|
||||||
# API数据库目录
|
|
||||||
- ${INSTALL_DIR}/api:/app/data
|
- ${INSTALL_DIR}/api:/app/data
|
||||||
networks:
|
networks:
|
||||||
- rustdesk-net
|
- rustdesk-net
|
||||||
@@ -87,35 +95,34 @@ services:
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
# 6. 启动容器
|
# 6. 启动容器
|
||||||
echo -e "${YELLOW}正在拉取镜像并启动容器...${PLAIN}"
|
echo -e "${YELLOW}正在拉取镜像并启动服务...${PLAIN}"
|
||||||
docker compose pull
|
docker compose -f rustdesk.yml pull
|
||||||
docker compose up -d
|
docker compose -f rustdesk.yml up -d
|
||||||
|
|
||||||
# 7. 检查状态并获取 Key
|
# 7. 检查状态并获取 Key
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo -e "${GREEN}服务启动成功!${PLAIN}"
|
echo -e "${GREEN}服务启动成功!${PLAIN}"
|
||||||
echo -e "${YELLOW}正在等待密钥生成 (约5秒)...${PLAIN}"
|
echo -e "${YELLOW}正在等待密钥生成...${PLAIN}"
|
||||||
sleep 5
|
sleep 5
|
||||||
|
|
||||||
# 尝试读取公钥
|
|
||||||
PUB_KEY_FILE="${INSTALL_DIR}/data/id_ed25519.pub"
|
PUB_KEY_FILE="${INSTALL_DIR}/data/id_ed25519.pub"
|
||||||
|
|
||||||
if [ -f "$PUB_KEY_FILE" ]; then
|
if [ -f "$PUB_KEY_FILE" ]; then
|
||||||
PUB_KEY=$(cat "$PUB_KEY_FILE")
|
PUB_KEY=$(cat "$PUB_KEY_FILE")
|
||||||
echo -e "${GREEN}=============================================${PLAIN}"
|
echo -e "${GREEN}=============================================${PLAIN}"
|
||||||
echo -e " RustDesk Server 部署完成信息"
|
echo -e " RustDesk Server 部署完成"
|
||||||
echo -e "${GREEN}=============================================${PLAIN}"
|
echo -e "${GREEN}=============================================${PLAIN}"
|
||||||
echo -e "ID 服务器 (ID Server): ${GREEN}${HOST_IP}${PLAIN}"
|
echo -e "ID/中继服务器: ${GREEN}${HOST_IP}${PLAIN}"
|
||||||
echo -e "中继服务器 (Relay Server): ${GREEN}${HOST_IP}${PLAIN}"
|
echo -e "API 服务器: ${GREEN}http://${HOST_IP}:21114${PLAIN}"
|
||||||
echo -e "API 服务器 (API Server): ${GREEN}http://${HOST_IP}:21114${PLAIN}"
|
|
||||||
echo -e "Key (公钥):"
|
echo -e "Key (公钥):"
|
||||||
echo -e "${YELLOW}${PUB_KEY}${PLAIN}"
|
echo -e "${YELLOW}${PUB_KEY}${PLAIN}"
|
||||||
echo -e "${GREEN}=============================================${PLAIN}"
|
echo -e "${GREEN}=============================================${PLAIN}"
|
||||||
echo -e "请将以上信息填入 RustDesk 客户端的网络设置中。"
|
if [[ "$MUST_LOGIN_VAL" == "Y" ]]; then
|
||||||
|
echo -e "注意:当前为【登录模式】,请先在 API 页面注册账号。"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo -e "${RED}无法自动读取公钥,请手动检查目录:${INSTALL_DIR}/data${PLAIN}"
|
echo -e "${RED}未找到公钥,请手动查看目录 ${INSTALL_DIR}/data${PLAIN}"
|
||||||
echo -e "或者查看日志:docker logs rustdesk-server"
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e "${RED}服务启动失败,请检查 Docker 日志。${PLAIN}"
|
echo -e "${RED}服务启动失败!${PLAIN}"
|
||||||
fi
|
fi
|
||||||
Reference in New Issue
Block a user