#!/bin/bash # ======================================== # DHCP & DNS 管理器 - 诊断脚本 # ======================================== echo "🔍 DHCP & DNS 管理器 - 诊断工具" echo "==================================" echo "" # 1. 查看服务状态 echo "📊 服务状态:" systemctl status dhcp-dns-manager --no-pager echo "" # 2. 查看详细日志 echo "📋 最近日志(最后 50 行):" journalctl -u dhcp-dns-manager -n 50 --no-pager echo "" # 3. 检查配置文件 echo "⚙️ 配置文件检查:" CONFIG_FILE="/opt/dhcp-dns-manager/configs/config.json" if [ -f "$CONFIG_FILE" ]; then echo "✓ 配置文件存在: $CONFIG_FILE" echo "内容:" cat "$CONFIG_FILE" else echo "❌ 配置文件不存在!" fi echo "" # 4. 检查可执行文件 echo "🔨 可执行文件检查:" EXEC_FILE="/opt/dhcp-dns-manager/dhcp-dns-manager" if [ -f "$EXEC_FILE" ]; then echo "✓ 可执行文件存在: $EXEC_FILE" ls -lh "$EXEC_FILE" # 测试运行 echo "" echo "测试运行(3 秒后自动退出)..." timeout 3 "$EXEC_FILE" -config "$CONFIG_FILE" 2>&1 || true else echo "❌ 可执行文件不存在!" fi echo "" # 5. 检查端口占用 echo "🔌 端口占用检查:" echo "DNS (53/udp):" sudo netstat -ulpn 2>/dev/null | grep :53 || echo " 未占用" echo "DHCP (67/udp):" sudo netstat -ulpn 2>/dev/null | grep :67 || echo " 未占用" echo "Web (8080/tcp):" sudo netstat -tlnp 2>/dev/null | grep :8080 || echo " 未占用" echo "" # 6. 检查数据库目录 echo "💾 数据目录检查:" DATA_DIR="/opt/dhcp-dns-manager/data" if [ -d "$DATA_DIR" ]; then echo "✓ 数据目录存在: $DATA_DIR" ls -la "$DATA_DIR" else echo "❌ 数据目录不存在!" fi echo "" # 7. 检查权限 echo "🔐 权限检查:" echo "安装目录:" ls -la /opt/dhcp-dns-manager/ | head -10 echo "" # 8. 检查 systemd 服务文件 echo "📄 systemd 服务文件:" cat /etc/systemd/system/dhcp-dns-manager.service echo "" echo "==================================" echo "诊断完成!" echo "" echo "💡 常见解决方案:" echo "1. 端口被占用 → 修改 configs/config.json 中的端口" echo "2. 权限不足 → sudo systemctl restart dhcp-dns-manager" echo "3. 配置错误 → 检查 configs/config.json 格式" echo "4. 重新编译 → cd /vol1/@apphome/trim.openclaw/data/workspace/dhcp-dns-manager && sudo ./install.sh" echo ""