cat > fix-syncthing-install.sh << 'EOF' #!/bin/bash echo "========================================" echo " Syncthing 修复安装脚本" echo "========================================" # 修复系统依赖 echo "安装系统依赖..." apt update apt install -y gnupg2 curl wget # 清理之前的错误配置 echo "清理旧配置..." systemctl stop syncthing 2>/dev/null systemctl disable syncthing 2>/dev/null rm -f /etc/systemd/system/syncthing.service rm -f /etc/apt/sources.list.d/syncthing.list # 方法1: 使用通用安装(推荐) echo "使用通用安装方法..." cd /tmp LATEST_VERSION=$(curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') ARCH=$(uname -m) case $ARCH in x86_64) ARCH="amd64" ;; aarch64) ARCH="arm64" ;; armv7l) ARCH="armv7" ;; *) ARCH="amd64" ;; esac echo "下载 Syncthing $LATEST_VERSION ($ARCH)" wget -q https://github.com/syncthing/syncthing/releases/download/${LATEST_VERSION}/syncthing-linux-${ARCH}-${LATEST_VERSION}.tar.gz tar -xzf syncthing-linux-${ARCH}-${LATEST_VERSION}.tar.gz cp syncthing-linux-${ARCH}-${LATEST_VERSION}/syncthing /usr/local/bin/ chmod +x /usr/local/bin/syncthing # 创建配置目录 echo "创建配置目录..." useradd -r -s /bin/false -d /var/lib/syncthing -m syncthing 2>/dev/null || true mkdir -p /var/lib/syncthing/config chown -R syncthing:syncthing /var/lib/syncthing # 创建正确的服务文件 echo "创建系统服务..." cat > /etc/systemd/system/syncthing.service << 'SERVICE' [Unit] Description=Syncthing Documentation=man:syncthing(1) After=network.target [Service] User=syncthing ExecStart=/usr/local/bin/syncthing serve --no-browser --no-restart --home=/var/lib/syncthing/config Restart=on-failure RestartSec=5 SuccessExitStatus=3 4 RestartForceExitStatus=3 4 [Install] WantedBy=multi-user.target SERVICE # 启动服务 echo "启动服务..." systemctl daemon-reload systemctl enable syncthing systemctl start syncthing sleep 3 if systemctl is-active --quiet syncthing; then echo "✓ Syncthing 服务启动成功" else echo "查看服务状态..." systemctl status syncthing -l --no-pager echo "尝试手动启动..." sudo -u syncthing /usr/local/bin/syncthing -generate="/var/lib/syncthing/config" systemctl start syncthing fi # 显示信息 echo "" echo "========================================" echo " Syncthing 安装完成!" echo "========================================" IP=$(hostname -I | awk '{print $1}') echo "访问地址: https://$IP:8384" echo "" echo "管理命令:" echo " systemctl start syncthing" echo " systemctl stop syncthing" echo " systemctl restart syncthing" echo " systemctl status syncthing" echo "" echo "查看运行状态:" systemctl status syncthing --no-pager -l EOF chmod +x fix-syncthing-install.sh ./fix-syncthing-install.sh