소스 검색

fix(deploy): 优化安装逻辑并调整服务网段配置

1. 新增安装前置检查,当easytier已安装且服务运行时跳过重复安装
2. 将easytier服务的内网网段从192.168.20.0/24改为192.168.1.0/24
3. 新增独立安装脚本install-easytier-core.sh
wenhongquan 1 주 전
부모
커밋
92d6c741bb
8개의 변경된 파일265개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      deploy/easytier.service
  2. 122 0
      deploy/install-easytier-core.sh
  3. 5 0
      deploy/install.sh
  4. BIN
      deploy1.zip
  5. BIN
      deploy1/easytier-cli
  6. BIN
      deploy1/easytier-core
  7. 15 0
      deploy1/easytier.service
  8. 122 0
      deploy1/install-easytier-core.sh

+ 1 - 1
deploy/easytier.service

@@ -6,7 +6,7 @@ StartLimitIntervalSec=0
 [Service]
 Type=simple
 WorkingDirectory=/opt
-ExecStart=/opt/easytier-core -d --network-name dsh --network-secret 123456 -p tcp://remote-mange.dnnbuild.com:25700 -n 192.168.20.0/24
+ExecStart=/opt/easytier-core -d --network-name dsh --network-secret 123456 -p tcp://remote-mange.dnnbuild.com:25700 -n 192.168.1.0/24
 Restart=always
 RestartSec=1
 LimitNOFILE=infinity

+ 122 - 0
deploy/install-easytier-core.sh

@@ -0,0 +1,122 @@
+#!/bin/bash
+set -euo pipefail
+
+# ============================================================
+# DSH EasyTier-core 独立安装脚本
+# 部署 easytier-core & easytier-cli + systemd 服务
+# 仅在 RK3588 (aarch64 Linux) 上运行
+# ============================================================
+
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+CYAN='\033[0;36m'
+NC='\033[0m'
+
+log_info()  { echo -e "${GREEN}[INFO]${NC}  $*"; }
+log_warn()  { echo -e "${YELLOW}[WARN]${NC}  $*"; }
+log_error() { echo -e "${RED}[ERROR]${NC} $*"; }
+log_step()  { echo -e "\n${CYAN}═══════════════════════════════════════════${NC}"; echo -e "${CYAN}  $*${NC}"; echo -e "${CYAN}═══════════════════════════════════════════${NC}\n"; }
+
+# ---------- 检测平台 ----------
+detect_platform() {
+    local arch os
+    arch="$(uname -m)"
+    os="$(uname -s)"
+    if [ "$os" = "Linux" ] && [ "$arch" = "aarch64" ]; then
+        echo "rk3588"
+    else
+        echo "unsupported"
+    fi
+}
+
+# ---------- 安装 EasyTier ----------
+install_easytier() {
+    log_step "部署 EasyTier VPN"
+
+    # 部署 easytier-core
+    if [ -f "${SCRIPT_DIR}/easytier-core" ]; then
+        sudo cp "${SCRIPT_DIR}/easytier-core" /opt/easytier-core
+        sudo chmod 755 /opt/easytier-core
+        sudo chown root:root /opt/easytier-core
+        log_info "easytier-core 已部署到 /opt/easytier-core"
+    else
+        log_error "未找到 ${SCRIPT_DIR}/easytier-core"
+        exit 1
+    fi
+
+    # 部署 easytier-cli
+    if [ -f "${SCRIPT_DIR}/easytier-cli" ]; then
+        sudo cp "${SCRIPT_DIR}/easytier-cli" /home/admin/easytier-cli
+        sudo chmod 755 /home/admin/easytier-cli
+        sudo chown admin:admin /home/admin/easytier-cli
+        log_info "easytier-cli 已部署到 /home/admin/easytier-cli"
+    else
+        log_warn "未找到 ${SCRIPT_DIR}/easytier-cli,跳过 CLI 部署"
+    fi
+
+    # 安装 easytier 系统服务
+    if [ -f "${SCRIPT_DIR}/easytier.service" ]; then
+        sudo cp "${SCRIPT_DIR}/easytier.service" /etc/systemd/system/easytier.service
+        sudo chmod 644 /etc/systemd/system/easytier.service
+        sudo systemctl daemon-reload
+        sudo systemctl enable easytier.service
+        sudo systemctl restart easytier.service
+        sleep 2
+        if systemctl is-active --quiet easytier.service; then
+            log_info "easytier 服务已启动并设置为开机自启"
+        else
+            log_warn "服务启动异常,请检查: sudo journalctl -u easytier.service -n 50 --no-pager"
+        fi
+    else
+        log_error "未找到 ${SCRIPT_DIR}/easytier.service"
+        exit 1
+    fi
+}
+
+verify() {
+    log_step "验证安装"
+    echo ""
+    if [ -f /opt/easytier-core ]; then
+        echo "  /opt/easytier-core  ✅"
+        /opt/easytier-core --version 2>/dev/null || echo "  (--version 不可用)"
+    fi
+    if [ -f /home/admin/easytier-cli ]; then
+        echo "  /home/admin/easytier-cli  ✅"
+    fi
+    if systemctl is-active --quiet easytier.service 2>/dev/null; then
+        echo "  easytier.service  ✅  running"
+    else
+        echo "  easytier.service  ❌  not running"
+    fi
+    echo ""
+}
+
+# ============================================================
+main() {
+    local PLATFORM
+    PLATFORM="$(detect_platform)"
+    echo ""
+    echo "  ╔══════════════════════════════════════════╗"
+    echo "  ║   DSH EasyTier-core 独立安装              ║"
+    echo "  ╚══════════════════════════════════════════╝"
+    echo ""
+
+    if [ "$PLATFORM" = "unsupported" ]; then
+        log_error "仅支持 RK3588 (aarch64 Linux),当前平台: $(uname -s) / $(uname -m)"
+        exit 1
+    fi
+
+    # 检查 sudo
+    if [ "$EUID" -ne 0 ]; then
+        log_info "部分操作需要 sudo 权限"
+    fi
+
+    install_easytier
+    verify
+    log_info "安装完成!"
+}
+
+main "$@"

+ 5 - 0
deploy/install.sh

@@ -239,6 +239,11 @@ install_easytier() {
         return
     fi
 
+    if [ -f /opt/easytier-core ] && systemctl is-active --quiet easytier.service 2>/dev/null; then
+        log_info "easytier 已安装且服务运行中,跳过"
+        return
+    fi
+
     # 部署 easytier-core
     if [ -f "${SCRIPT_DIR}/easytier-core" ]; then
         sudo cp "${SCRIPT_DIR}/easytier-core" /opt/easytier-core

BIN
deploy1.zip


BIN
deploy1/easytier-cli


BIN
deploy1/easytier-core


+ 15 - 0
deploy1/easytier.service

@@ -0,0 +1,15 @@
+[Unit]
+After=network.target syslog.target
+Description=easytier
+StartLimitIntervalSec=0
+
+[Service]
+Type=simple
+WorkingDirectory=/opt
+ExecStart=/opt/easytier-core -d --network-name dsh --network-secret 123456 -p tcp://remote-mange.dnnbuild.com:25700 -n 192.168.1.0/24
+Restart=always
+RestartSec=1
+LimitNOFILE=infinity
+
+[Install]
+WantedBy=multi-user.target

+ 122 - 0
deploy1/install-easytier-core.sh

@@ -0,0 +1,122 @@
+#!/bin/bash
+set -euo pipefail
+
+# ============================================================
+# DSH EasyTier-core 独立安装脚本
+# 部署 easytier-core & easytier-cli + systemd 服务
+# 仅在 RK3588 (aarch64 Linux) 上运行
+# ============================================================
+
+SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
+
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+CYAN='\033[0;36m'
+NC='\033[0m'
+
+log_info()  { echo -e "${GREEN}[INFO]${NC}  $*"; }
+log_warn()  { echo -e "${YELLOW}[WARN]${NC}  $*"; }
+log_error() { echo -e "${RED}[ERROR]${NC} $*"; }
+log_step()  { echo -e "\n${CYAN}═══════════════════════════════════════════${NC}"; echo -e "${CYAN}  $*${NC}"; echo -e "${CYAN}═══════════════════════════════════════════${NC}\n"; }
+
+# ---------- 检测平台 ----------
+detect_platform() {
+    local arch os
+    arch="$(uname -m)"
+    os="$(uname -s)"
+    if [ "$os" = "Linux" ] && [ "$arch" = "aarch64" ]; then
+        echo "rk3588"
+    else
+        echo "unsupported"
+    fi
+}
+
+# ---------- 安装 EasyTier ----------
+install_easytier() {
+    log_step "部署 EasyTier VPN"
+
+    # 部署 easytier-core
+    if [ -f "${SCRIPT_DIR}/easytier-core" ]; then
+        sudo cp "${SCRIPT_DIR}/easytier-core" /opt/easytier-core
+        sudo chmod 755 /opt/easytier-core
+        sudo chown root:root /opt/easytier-core
+        log_info "easytier-core 已部署到 /opt/easytier-core"
+    else
+        log_error "未找到 ${SCRIPT_DIR}/easytier-core"
+        exit 1
+    fi
+
+    # 部署 easytier-cli
+    if [ -f "${SCRIPT_DIR}/easytier-cli" ]; then
+        sudo cp "${SCRIPT_DIR}/easytier-cli" /home/admin/easytier-cli
+        sudo chmod 755 /home/admin/easytier-cli
+        sudo chown admin:admin /home/admin/easytier-cli
+        log_info "easytier-cli 已部署到 /home/admin/easytier-cli"
+    else
+        log_warn "未找到 ${SCRIPT_DIR}/easytier-cli,跳过 CLI 部署"
+    fi
+
+    # 安装 easytier 系统服务
+    if [ -f "${SCRIPT_DIR}/easytier.service" ]; then
+        sudo cp "${SCRIPT_DIR}/easytier.service" /etc/systemd/system/easytier.service
+        sudo chmod 644 /etc/systemd/system/easytier.service
+        sudo systemctl daemon-reload
+        sudo systemctl enable easytier.service
+        sudo systemctl restart easytier.service
+        sleep 2
+        if systemctl is-active --quiet easytier.service; then
+            log_info "easytier 服务已启动并设置为开机自启"
+        else
+            log_warn "服务启动异常,请检查: sudo journalctl -u easytier.service -n 50 --no-pager"
+        fi
+    else
+        log_error "未找到 ${SCRIPT_DIR}/easytier.service"
+        exit 1
+    fi
+}
+
+verify() {
+    log_step "验证安装"
+    echo ""
+    if [ -f /opt/easytier-core ]; then
+        echo "  /opt/easytier-core  ✅"
+        /opt/easytier-core --version 2>/dev/null || echo "  (--version 不可用)"
+    fi
+    if [ -f /home/admin/easytier-cli ]; then
+        echo "  /home/admin/easytier-cli  ✅"
+    fi
+    if systemctl is-active --quiet easytier.service 2>/dev/null; then
+        echo "  easytier.service  ✅  running"
+    else
+        echo "  easytier.service  ❌  not running"
+    fi
+    echo ""
+}
+
+# ============================================================
+main() {
+    local PLATFORM
+    PLATFORM="$(detect_platform)"
+    echo ""
+    echo "  ╔══════════════════════════════════════════╗"
+    echo "  ║   DSH EasyTier-core 独立安装              ║"
+    echo "  ╚══════════════════════════════════════════╝"
+    echo ""
+
+    if [ "$PLATFORM" = "unsupported" ]; then
+        log_error "仅支持 RK3588 (aarch64 Linux),当前平台: $(uname -s) / $(uname -m)"
+        exit 1
+    fi
+
+    # 检查 sudo
+    if [ "$EUID" -ne 0 ]; then
+        log_info "部分操作需要 sudo 权限"
+    fi
+
+    install_easytier
+    verify
+    log_info "安装完成!"
+}
+
+main "$@"