Update ru
This commit is contained in:
203
ru
203
ru
@@ -11,10 +11,9 @@ BLUE='\033[0;34m'
|
|||||||
NC='\033[0m'
|
NC='\033[0m'
|
||||||
|
|
||||||
# 全局变量
|
# 全局变量
|
||||||
declare -g SCRIPT_DIR="/data/rustdesk"
|
SCRIPT_DIR="/data/rustdesk"
|
||||||
declare -g FIXED_KEY_PUB="Doo0qYGYNSEzxoZRPrnV9AtkeX5FFLjcweiH4K1nIJM="
|
FIXED_KEY_PUB="Doo0qYGYNSEzxoZRPrnV9AtkeX5FFLjcweiH4K1nIJM="
|
||||||
declare -g FIXED_KEY_PRIV="" # 私钥可以为空,RustDesk公钥模式
|
FIXED_KEY_PRIV=""
|
||||||
declare -g project_name api_port hbbs_port hbbr_port admin_password
|
|
||||||
|
|
||||||
# 日志函数
|
# 日志函数
|
||||||
log_info() { echo -e "${BLUE}[信息]${NC} $1"; }
|
log_info() { echo -e "${BLUE}[信息]${NC} $1"; }
|
||||||
@@ -22,9 +21,15 @@ log_success() { echo -e "${GREEN}[成功]${NC} $1"; }
|
|||||||
log_warning() { echo -e "${YELLOW}[警告]${NC} $1"; }
|
log_warning() { echo -e "${YELLOW}[警告]${NC} $1"; }
|
||||||
log_error() { echo -e "${RED}[错误]${NC} $1"; }
|
log_error() { echo -e "${RED}[错误]${NC} $1"; }
|
||||||
|
|
||||||
|
# 简单输出函数(不带颜色,用于复杂输出)
|
||||||
|
echo_info() { echo "[信息] $1"; }
|
||||||
|
echo_success() { echo "[成功] $1"; }
|
||||||
|
echo_warning() { echo "[警告] $1"; }
|
||||||
|
echo_error() { echo "[错误] $1"; }
|
||||||
|
|
||||||
# 安全清理函数
|
# 安全清理函数
|
||||||
cleanup() {
|
cleanup() {
|
||||||
log_info "执行清理操作..."
|
echo_info "执行清理操作..."
|
||||||
rm -f /tmp/rustdesk_keys
|
rm -f /tmp/rustdesk_keys
|
||||||
unset admin_password
|
unset admin_password
|
||||||
}
|
}
|
||||||
@@ -35,63 +40,59 @@ trap cleanup EXIT INT TERM
|
|||||||
# 检查命令是否存在
|
# 检查命令是否存在
|
||||||
check_command() {
|
check_command() {
|
||||||
if ! command -v "$1" &>/dev/null; then
|
if ! command -v "$1" &>/dev/null; then
|
||||||
log_error "必需命令 '$1' 未找到"
|
echo_error "必需命令 '$1' 未找到"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# 检查端口是否被占用(优化版)
|
# 检查端口是否被占用
|
||||||
check_port() {
|
check_port() {
|
||||||
local port=$1
|
local port=$1
|
||||||
local protocol=${2:-tcp}
|
|
||||||
|
|
||||||
# 验证端口范围
|
# 验证端口范围
|
||||||
if [[ ! "$port" =~ ^[0-9]+$ ]] || [[ "$port" -lt 1024 || "$port" -gt 65535 ]]; then
|
if [[ ! "$port" =~ ^[0-9]+$ ]] || [[ "$port" -lt 1024 || "$port" -gt 65535 ]]; then
|
||||||
log_error "端口号 $port 无效 (必须是1024-65535)"
|
echo_error "端口号 $port 无效 (必须是1024-65535)"
|
||||||
return 2
|
return 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 允许的已占用端口(系统服务)
|
|
||||||
local -a excluded_ports=(21115 21118 21119)
|
|
||||||
for excluded in "${excluded_ports[@]}"; do
|
|
||||||
if [[ "$port" -eq "$excluded" ]]; then
|
|
||||||
log_info "端口 $port 是RustDesk系统端口,允许占用"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# 检查端口占用
|
# 检查端口占用
|
||||||
if check_command netstat; then
|
local port_in_use=false
|
||||||
|
|
||||||
|
if command -v netstat &>/dev/null; then
|
||||||
if netstat -tuln 2>/dev/null | grep -q ":${port}[[:space:]]"; then
|
if netstat -tuln 2>/dev/null | grep -q ":${port}[[:space:]]"; then
|
||||||
log_warning "端口 $port 被占用 (netstat)"
|
echo_warning "端口 $port 被占用 (netstat)"
|
||||||
return 1
|
port_in_use=true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if check_command ss; then
|
if command -v ss &>/dev/null; then
|
||||||
if ss -tuln 2>/dev/null | grep -q ":${port}[[:space:]]"; then
|
if ss -tuln 2>/dev/null | grep -q ":${port}[[:space:]]"; then
|
||||||
log_warning "端口 $port 被占用 (ss)"
|
echo_warning "端口 $port 被占用 (ss)"
|
||||||
return 1
|
port_in_use=true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 检查 Docker 容器占用
|
# 检查 Docker 容器占用
|
||||||
if check_command docker; then
|
if command -v docker &>/dev/null; then
|
||||||
if docker ps --format "table {{.Ports}}" 2>/dev/null | grep -q ":${port}->"; then
|
if docker ps --format "table {{.Ports}}" 2>/dev/null | grep -q ":${port}->"; then
|
||||||
log_warning "端口 $port 被 Docker 容器占用"
|
echo_warning "端口 $port 被 Docker 容器占用"
|
||||||
return 1
|
port_in_use=true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$port_in_use" == "true" ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# 检查 Docker 环境(优化版)
|
# 检查 Docker 环境
|
||||||
check_docker() {
|
check_docker() {
|
||||||
log_info "检查 Docker 环境..."
|
log_info "检查 Docker 环境..."
|
||||||
|
|
||||||
if ! check_command docker; then
|
if ! command -v docker &>/dev/null; then
|
||||||
log_error "Docker 未安装,请先安装 Docker"
|
log_error "Docker 未安装,请先安装 Docker"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -103,7 +104,7 @@ check_docker() {
|
|||||||
|
|
||||||
# 检查 Docker Compose
|
# 检查 Docker Compose
|
||||||
local compose_cmd=""
|
local compose_cmd=""
|
||||||
if check_command docker-compose; then
|
if command -v docker-compose &>/dev/null; then
|
||||||
compose_cmd="docker-compose"
|
compose_cmd="docker-compose"
|
||||||
log_info "使用 docker-compose"
|
log_info "使用 docker-compose"
|
||||||
elif docker compose version &>/dev/null; then
|
elif docker compose version &>/dev/null; then
|
||||||
@@ -118,39 +119,30 @@ check_docker() {
|
|||||||
echo "$compose_cmd"
|
echo "$compose_cmd"
|
||||||
}
|
}
|
||||||
|
|
||||||
# 创建目录结构(权限优化)
|
# 创建目录结构
|
||||||
create_directories() {
|
create_directories() {
|
||||||
log_info "创建目录结构..."
|
log_info "创建目录结构..."
|
||||||
|
|
||||||
local dirs=("$SCRIPT_DIR/server" "$SCRIPT_DIR/api" "$SCRIPT_DIR/db")
|
local dirs=("$SCRIPT_DIR/server" "$SCRIPT_DIR/api" "$SCRIPT_DIR/db")
|
||||||
local current_user=$(id -u)
|
|
||||||
local current_group=$(id -g)
|
|
||||||
|
|
||||||
for dir in "${dirs[@]}"; do
|
for dir in "${dirs[@]}"; do
|
||||||
if [[ ! -d "$dir" ]]; then
|
if [[ ! -d "$dir" ]]; then
|
||||||
if mkdir -p "$dir"; then
|
sudo mkdir -p "$dir"
|
||||||
log_info "创建目录: $dir"
|
log_info "创建目录: $dir"
|
||||||
else
|
|
||||||
# 如果普通用户创建失败,尝试sudo
|
|
||||||
sudo mkdir -p "$dir"
|
|
||||||
log_warning "使用sudo创建目录: $dir"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
log_info "目录已存在: $dir"
|
log_info "目录已存在: $dir"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 设置权限
|
|
||||||
if [[ -w "$dir" ]]; then
|
|
||||||
chmod 755 "$dir"
|
|
||||||
else
|
|
||||||
sudo chmod 755 "$dir"
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
# 设置所有权(仅在需要时使用sudo)
|
# 设置权限
|
||||||
if [[ ! -w "$SCRIPT_DIR" ]]; then
|
sudo chmod 755 "$SCRIPT_DIR"
|
||||||
sudo chown -R "${current_user}:${current_group}" "$SCRIPT_DIR"
|
sudo chmod 755 "$SCRIPT_DIR/server"
|
||||||
log_info "设置目录所有权"
|
sudo chmod 755 "$SCRIPT_DIR/api"
|
||||||
|
sudo chmod 755 "$SCRIPT_DIR/db"
|
||||||
|
|
||||||
|
# 设置所有权
|
||||||
|
if [[ "$(id -u)" -ne 0 ]]; then
|
||||||
|
sudo chown -R "$(id -u):$(id -g)" "$SCRIPT_DIR"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,7 +167,7 @@ setup_fixed_key() {
|
|||||||
# 写入固定公钥
|
# 写入固定公钥
|
||||||
echo "$FIXED_KEY_PUB" > "$server_dir/id_ed25519.pub"
|
echo "$FIXED_KEY_PUB" > "$server_dir/id_ed25519.pub"
|
||||||
|
|
||||||
# 创建空的私钥文件(RustDesk服务器只需要公钥)
|
# 创建空的私钥文件
|
||||||
touch "$server_dir/id_ed25519"
|
touch "$server_dir/id_ed25519"
|
||||||
|
|
||||||
# 设置文件权限
|
# 设置文件权限
|
||||||
@@ -187,7 +179,6 @@ setup_fixed_key() {
|
|||||||
local saved_key=$(cat "$server_dir/id_ed25519.pub")
|
local saved_key=$(cat "$server_dir/id_ed25519.pub")
|
||||||
if [[ "$saved_key" == "$FIXED_KEY_PUB" ]]; then
|
if [[ "$saved_key" == "$FIXED_KEY_PUB" ]]; then
|
||||||
log_success "固定密钥设置成功"
|
log_success "固定密钥设置成功"
|
||||||
log_info "客户端密钥: $FIXED_KEY_PUB"
|
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
log_error "密钥写入验证失败"
|
log_error "密钥写入验证失败"
|
||||||
@@ -202,7 +193,6 @@ setup_fixed_key() {
|
|||||||
# 安全密码生成
|
# 安全密码生成
|
||||||
generate_password() {
|
generate_password() {
|
||||||
local length=12
|
local length=12
|
||||||
# 使用更安全的密码字符集
|
|
||||||
tr -dc 'A-Za-z0-9@#$%^&*+' < /dev/urandom 2>/dev/null | head -c $length
|
tr -dc 'A-Za-z0-9@#$%^&*+' < /dev/urandom 2>/dev/null | head -c $length
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,21 +220,21 @@ validate_input() {
|
|||||||
case $type in
|
case $type in
|
||||||
"project_name")
|
"project_name")
|
||||||
[[ "$value" =~ ^[a-zA-Z0-9_-]+$ ]] && return 0
|
[[ "$value" =~ ^[a-zA-Z0-9_-]+$ ]] && return 0
|
||||||
log_error "项目名称只能包含字母、数字、连字符和下划线"
|
echo_error "项目名称只能包含字母、数字、连字符和下划线"
|
||||||
;;
|
;;
|
||||||
"port")
|
"port")
|
||||||
[[ "$value" =~ ^[0-9]+$ ]] && [[ "$value" -ge 1024 && "$value" -le 65535 ]] && return 0
|
[[ "$value" =~ ^[0-9]+$ ]] && [[ "$value" -ge 1024 && "$value" -le 65535 ]] && return 0
|
||||||
log_error "端口号必须是 1024-65535 之间的数字"
|
echo_error "端口号必须是 1024-65535 之间的数字"
|
||||||
;;
|
;;
|
||||||
"password")
|
"password")
|
||||||
[[ -n "$value" && ${#value} -ge 8 ]] && return 0
|
[[ -n "$value" && ${#value} -ge 8 ]] && return 0
|
||||||
log_error "密码不能为空且至少 8 位"
|
echo_error "密码不能为空且至少 8 位"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# 获取用户输入(优化版)
|
# 获取用户输入
|
||||||
get_user_input() {
|
get_user_input() {
|
||||||
local default_project="rustdesk-server"
|
local default_project="rustdesk-server"
|
||||||
local default_api_port="21114"
|
local default_api_port="21114"
|
||||||
@@ -278,7 +268,7 @@ get_user_input() {
|
|||||||
declare -g "${ports[i]}=$port_val"
|
declare -g "${ports[i]}=$port_val"
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
log_warning "端口 $port_val 已被占用"
|
echo_warning "端口 $port_val 已被占用"
|
||||||
read -p "是否强制使用此端口?(y/N): " use_occupied_port
|
read -p "是否强制使用此端口?(y/N): " use_occupied_port
|
||||||
if [[ "$use_occupied_port" =~ ^[Yy]$ ]]; then
|
if [[ "$use_occupied_port" =~ ^[Yy]$ ]]; then
|
||||||
declare -g "${ports[i]}=$port_val"
|
declare -g "${ports[i]}=$port_val"
|
||||||
@@ -305,7 +295,7 @@ get_user_input() {
|
|||||||
admin_password="$password1"
|
admin_password="$password1"
|
||||||
break
|
break
|
||||||
elif [[ "$password1" != "$password2" ]]; then
|
elif [[ "$password1" != "$password2" ]]; then
|
||||||
log_error "两次输入的密码不一致"
|
echo_error "两次输入的密码不一致"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
@@ -321,7 +311,7 @@ get_user_input() {
|
|||||||
log_info "API服务端口: $api_port"
|
log_info "API服务端口: $api_port"
|
||||||
log_info "ID服务器端口: $hbbs_port"
|
log_info "ID服务器端口: $hbbs_port"
|
||||||
log_info "中继服务器端口: $hbbr_port"
|
log_info "中继服务器端口: $hbbr_port"
|
||||||
log_info "管理员密码: ${admin_password:0:2}******" # 更安全的显示
|
log_info "管理员密码: ${admin_password:0:2}******"
|
||||||
log_info "本地 IP: $local_ip"
|
log_info "本地 IP: $local_ip"
|
||||||
log_info "公网 IP: $public_ip"
|
log_info "公网 IP: $public_ip"
|
||||||
echo
|
echo
|
||||||
@@ -333,7 +323,7 @@ get_user_input() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# 生成 Docker Compose 配置(使用固定密钥)
|
# 生成 Docker Compose 配置
|
||||||
generate_compose_file() {
|
generate_compose_file() {
|
||||||
local project_name="$1" api_port="$2" hbbs_port="$3" hbbr_port="$4"
|
local project_name="$1" api_port="$2" hbbs_port="$3" hbbr_port="$4"
|
||||||
local admin_password="$5"
|
local admin_password="$5"
|
||||||
@@ -342,9 +332,9 @@ generate_compose_file() {
|
|||||||
local ip_info=($(get_ip_address))
|
local ip_info=($(get_ip_address))
|
||||||
local local_ip="${ip_info[0]}"
|
local local_ip="${ip_info[0]}"
|
||||||
|
|
||||||
# 生成安全的 JWT 密钥
|
# 生成 JWT 密钥
|
||||||
local jwt_key=$(openssl rand -base64 32 2>/dev/null ||
|
local jwt_key=$(openssl rand -base64 32 2>/dev/null ||
|
||||||
echo "fallback_jwt_key_$(date +%s)$(generate_password)")
|
echo "fallback_jwt_key_$(date +%s)")
|
||||||
|
|
||||||
cat > "$file_path" << EOF
|
cat > "$file_path" << EOF
|
||||||
# RustDesk Server 配置
|
# RustDesk Server 配置
|
||||||
@@ -385,7 +375,7 @@ services:
|
|||||||
- BIND_PORT=${hbbr_port}
|
- BIND_PORT=${hbbr_port}
|
||||||
# 网络配置
|
# 网络配置
|
||||||
- ALWAYS_USE_RELAY=Y
|
- ALWAYS_USE_RELAY=Y
|
||||||
# 固定密钥配置 - 使用预生成的密钥文件
|
# 固定密钥配置
|
||||||
- KEY_PUB=${FIXED_KEY_PUB}
|
- KEY_PUB=${FIXED_KEY_PUB}
|
||||||
# API 配置
|
# API 配置
|
||||||
- RUSTDESK_API_RUSTDESK_ID_SERVER=${local_ip}:${hbbs_port}
|
- RUSTDESK_API_RUSTDESK_ID_SERVER=${local_ip}:${hbbs_port}
|
||||||
@@ -408,17 +398,12 @@ services:
|
|||||||
timeout: 10s
|
timeout: 10s
|
||||||
retries: 3
|
retries: 3
|
||||||
start_period: 60s
|
start_period: 60s
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "10m"
|
|
||||||
max-file: "3"
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
log_success "Docker Compose 配置文件已生成: $file_path"
|
log_success "Docker Compose 配置文件已生成: $file_path"
|
||||||
}
|
}
|
||||||
|
|
||||||
# 部署服务(优化版)
|
# 部署服务
|
||||||
deploy_service() {
|
deploy_service() {
|
||||||
local project_name="$1" admin_password="$2"
|
local project_name="$1" admin_password="$2"
|
||||||
local compose_cmd="$3"
|
local compose_cmd="$3"
|
||||||
@@ -442,6 +427,8 @@ deploy_service() {
|
|||||||
log_info "启动服务..."
|
log_info "启动服务..."
|
||||||
if ! $compose_cmd -f "$file_path" up -d; then
|
if ! $compose_cmd -f "$file_path" up -d; then
|
||||||
log_error "服务启动失败"
|
log_error "服务启动失败"
|
||||||
|
log_info "尝试查看 Docker 日志..."
|
||||||
|
docker logs "${project_name}-rustdesk" 2>/dev/null | tail -20 || true
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -464,7 +451,7 @@ deploy_service() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# 显示部署信息(包含固定密钥)
|
# 显示部署信息(简化版,避免颜色问题)
|
||||||
show_deployment_info() {
|
show_deployment_info() {
|
||||||
local project_name="$1" api_port="$2" hbbs_port="$3" hbbr_port="$4"
|
local project_name="$1" api_port="$2" hbbs_port="$3" hbbr_port="$4"
|
||||||
local admin_password="$5"
|
local admin_password="$5"
|
||||||
@@ -474,28 +461,30 @@ show_deployment_info() {
|
|||||||
local public_ip="${ip_info[1]}"
|
local public_ip="${ip_info[1]}"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
log_success "🎉 RustDesk 部署完成!"
|
echo "========================================"
|
||||||
|
echo "🎉 RustDesk 部署完成!"
|
||||||
|
echo "========================================"
|
||||||
echo
|
echo
|
||||||
echo "=================== 访问信息 ==================="
|
echo "=== 访问信息 ==="
|
||||||
echo -e "Web管理界面: ${GREEN}http://${local_ip}:${api_port}${NC}"
|
echo "Web管理界面: http://${local_ip}:${api_port}"
|
||||||
if [[ "$public_ip" != "无法获取" ]]; then
|
if [[ "$public_ip" != "无法获取" ]]; then
|
||||||
echo -e "公网访问: ${GREEN}http://${public_ip}:${api_port}${NC}"
|
echo "公网访问: http://${public_ip}:${api_port}"
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
echo "=================== 账号信息 ==================="
|
echo "=== 账号信息 ==="
|
||||||
echo -e "管理员账号: ${GREEN}admin${NC}"
|
echo "管理员账号: admin"
|
||||||
echo -e "管理员密码: ${GREEN}${admin_password}${NC}"
|
echo "管理员密码: ${admin_password}"
|
||||||
echo
|
echo
|
||||||
echo "=================== 密钥信息 ==================="
|
echo "=== 密钥信息 ==="
|
||||||
echo -e "固定客户端密钥: ${GREEN}${FIXED_KEY_PUB}${NC}"
|
echo "固定客户端密钥: ${FIXED_KEY_PUB}"
|
||||||
echo -e "密钥状态: ${GREEN}已预配置${NC}"
|
echo "密钥状态: 已预配置"
|
||||||
echo
|
echo
|
||||||
echo "=================== 服务器配置 ==================="
|
echo "=== 服务器配置 ==="
|
||||||
echo -e "ID 服务器: ${GREEN}${local_ip}:${hbbs_port}${NC}"
|
echo "ID 服务器: ${local_ip}:${hbbs_port}"
|
||||||
echo -e "中继服务器: ${GREEN}${local_ip}:${hbbr_port}${NC}"
|
echo "中继服务器: ${local_ip}:${hbbr_port}"
|
||||||
echo -e "API 服务器: ${GREEN}http://${local_ip}:${api_port}${NC}"
|
echo "API 服务器: http://${local_ip}:${api_port}"
|
||||||
echo
|
echo
|
||||||
echo "=================== 客户端配置步骤 ==================="
|
echo "=== 客户端配置步骤 ==="
|
||||||
echo "1. 打开 RustDesk 客户端"
|
echo "1. 打开 RustDesk 客户端"
|
||||||
echo "2. 点击 ID/中继服务器 设置"
|
echo "2. 点击 ID/中继服务器 设置"
|
||||||
echo "3. 填写以下信息:"
|
echo "3. 填写以下信息:"
|
||||||
@@ -504,30 +493,26 @@ show_deployment_info() {
|
|||||||
echo " - Key: ${FIXED_KEY_PUB}"
|
echo " - Key: ${FIXED_KEY_PUB}"
|
||||||
echo "4. 点击 '应用' 保存"
|
echo "4. 点击 '应用' 保存"
|
||||||
echo "5. 重启 RustDesk 客户端生效"
|
echo "5. 重启 RustDesk 客户端生效"
|
||||||
echo "==================================================="
|
|
||||||
echo
|
echo
|
||||||
echo "=================== 管理命令 ==================="
|
echo "=== 管理命令 ==="
|
||||||
echo -e "查看服务状态: ${YELLOW}docker ps -f name=${project_name}${NC}"
|
echo "查看服务状态: docker ps -f name=${project_name}"
|
||||||
echo -e "查看服务日志: ${YELLOW}docker logs ${project_name}-rustdesk${NC}"
|
echo "查看服务日志: docker logs ${project_name}-rustdesk"
|
||||||
echo -e "停止服务: ${YELLOW}cd $SCRIPT_DIR && docker compose down${NC}"
|
echo "停止服务: cd $SCRIPT_DIR && docker compose down"
|
||||||
echo -e "重启服务: ${YELLOW}cd $SCRIPT_DIR && docker compose restart${NC}"
|
echo "重启服务: cd $SCRIPT_DIR && docker compose restart"
|
||||||
echo "================================================"
|
|
||||||
echo
|
echo
|
||||||
log_warning "请确保防火墙已开放以下端口:"
|
echo "=== 重要提示 ==="
|
||||||
echo -e " - API服务端口: ${YELLOW}${api_port}${NC}"
|
echo "请确保防火墙已开放以下端口:"
|
||||||
echo -e " - ID服务器端口: ${YELLOW}${hbbs_port}${NC}"
|
echo " - API服务端口: ${api_port}"
|
||||||
echo -e " - 中继服务器端口: ${YELLOW}${hbbr_port}${NC}"
|
echo " - ID服务器端口: ${hbbs_port}"
|
||||||
echo -e " - 其他端口: ${YELLOW}21115, 21118, 21119${NC}"
|
echo " - 中继服务器端口: ${hbbr_port}"
|
||||||
|
echo " - 其他端口: 21115, 21118, 21119"
|
||||||
# 显示重要提示
|
echo
|
||||||
|
echo "所有客户端必须使用相同的密钥: ${FIXED_KEY_PUB}"
|
||||||
|
echo "此密钥已预配置,客户端连接时无需额外设置"
|
||||||
echo
|
echo
|
||||||
echo "=================== 重要提示 ==================="
|
|
||||||
log_info "所有客户端必须使用相同的密钥: ${FIXED_KEY_PUB}"
|
|
||||||
log_info "此密钥已预配置,客户端连接时无需额外设置"
|
|
||||||
echo "================================================"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# 主函数(修改版)
|
# 主函数
|
||||||
main() {
|
main() {
|
||||||
echo
|
echo
|
||||||
log_info "开始 RustDesk 服务器部署"
|
log_info "开始 RustDesk 服务器部署"
|
||||||
@@ -535,7 +520,8 @@ main() {
|
|||||||
echo "========================================"
|
echo "========================================"
|
||||||
|
|
||||||
# 检查依赖
|
# 检查依赖
|
||||||
local compose_cmd=$(check_docker)
|
local compose_cmd
|
||||||
|
compose_cmd=$(check_docker)
|
||||||
|
|
||||||
# 初始化环境
|
# 初始化环境
|
||||||
create_directories
|
create_directories
|
||||||
@@ -543,7 +529,7 @@ main() {
|
|||||||
# 获取配置
|
# 获取配置
|
||||||
get_user_input
|
get_user_input
|
||||||
|
|
||||||
# 设置固定密钥(替换原来的密钥生成)
|
# 设置固定密钥
|
||||||
setup_fixed_key
|
setup_fixed_key
|
||||||
|
|
||||||
# 生成配置文件
|
# 生成配置文件
|
||||||
@@ -561,6 +547,7 @@ main() {
|
|||||||
docker ps -f "name=${project_name}-rustdesk"
|
docker ps -f "name=${project_name}-rustdesk"
|
||||||
else
|
else
|
||||||
log_error "部署失败,请检查上述错误信息"
|
log_error "部署失败,请检查上述错误信息"
|
||||||
|
log_info "尝试手动启动: cd $SCRIPT_DIR && $compose_cmd up -d"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user