WINDOWS_GUIDE.md 5.3 KB

Windows 部署指南

本指南介绍如何在 Windows 系统上部署 DHCP & DNS 管理器。


方案一:使用 Docker Desktop(推荐)⭐

1. 安装 Docker Desktop

下载地址:https://www.docker.com/products/docker-desktop

安装完成后启动 Docker Desktop。

2. 准备项目文件

# 创建目录
mkdir C:\dhcp-dns-manager
cd C:\dhcp-dns-manager

# 复制项目文件到此目录
# 确保包含:docker-compose.yml, configs/, web/ 等

3. 启动服务

双击运行 start.bat 或在 PowerShell 中执行:

docker-compose up -d

4. 访问界面

浏览器打开:http://localhost:8080


方案二:本地运行(需要 Go 环境)

1. 安装 Go

下载:https://golang.org/dl/

选择 go1.21.0.windows-amd64.msi 安装。

验证安装:

go version

2. 下载项目

# 方式一:Git 克隆
git clone <your-repo-url>
cd dhcp-dns-manager

# 方式二:下载 ZIP 解压

3. 编译程序

# 下载依赖
go mod download

# 编译
go build -o dhcp-dns-manager.exe ./cmd

# 或使用启动脚本
.\start.bat

4. 以 Windows 服务运行(可选)

使用 NSSM(Non-Sucking Service Manager):

下载 NSSM

https://nssm.cc/download

安装服务

# 以管理员身份打开 PowerShell
cd C:\path\to\nssm\win64

# 安装服务
.\nssm.exe install dhcp-dns-manager

# 在弹出的配置窗口中:
# - Path: C:\dhcp-dns-manager\dhcp-dns-manager.exe
# - Startup directory: C:\dhcp-dns-manager
# - Arguments: -config configs\config.json

管理服务

# 启动服务
net start dhcp-dns-manager

# 停止服务
net stop dhcp-dns-manager

# 查看状态
sc query dhcp-dns-manager

方案三:WSL2(Windows Subsystem for Linux)

1. 安装 WSL2

# 以管理员身份运行 PowerShell
wsl --install

重启电脑后,WSL2 会自动安装 Ubuntu。

2. 在 WSL2 中部署

# 进入 WSL2
wsl

# 按照 Linux 部署指南操作
cd ~
git clone <your-repo>
cd dhcp-dns-manager
sudo ./install.sh

3. 访问服务

从 Windows 浏览器访问:

http://localhost:8080

Windows 防火墙配置

如果启用了 Windows 防火墙,需要开放端口:

PowerShell(管理员)

# DNS (UDP 53)
New-NetFirewallRule -DisplayName "DHCP-DNS-Manager DNS" -Direction Inbound -Protocol UDP -LocalPort 53 -Action Allow

# DHCP (UDP 67)
New-NetFirewallRule -DisplayName "DHCP-DNS-Manager DHCP" -Direction Inbound -Protocol UDP -LocalPort 67 -Action Allow

# Web UI (TCP 8080)
New-NetFirewallRule -DisplayName "DHCP-DNS-Manager Web" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow

或使用图形界面

  1. 打开"Windows Defender 防火墙"
  2. 点击"高级设置"
  3. 入站规则 → 新建规则
  4. 端口 → TCP/UDP → 53, 67, 8080
  5. 允许连接

常见问题

Q: 端口被占用?

检查占用端口的进程:

# 查看 8080 端口
netstat -ano | findstr :8080

# 查看 53 端口
netstat -ano | findstr :53

解决方案:

  1. 修改 configs\config.json 中的端口
  2. 或停止占用端口的服务

Q: Docker 启动失败?

检查 Docker 状态:

docker version
docker-compose version

重启 Docker Desktop

检查端口冲突:

netstat -ano | findstr :53
netstat -ano | findstr :67
netstat -ano | findstr :8080

Q: 权限不足?

以管理员身份运行:

  • 右键点击 start.bat
  • 选择"以管理员身份运行"

Q: 数据库在哪里?

Windows 路径:

C:\dhcp-dns-manager\data\dhcp-dns.db

备份数据库:

Copy-Item data\dhcp-dns.db data\dhcp-dns.db.backup

开机自启

Docker 方式

Docker Desktop 会自动启动容器(需启用 Docker Desktop 开机启动)

NSSM 服务方式

已自动配置开机启动

任务计划程序方式

  1. 打开"任务计划程序"
  2. 创建基本任务
  3. 触发器:计算机启动时
  4. 操作:启动程序
    • 程序:C:\dhcp-dns-manager\dhcp-dns-manager.exe
    • 参数:-config configs\config.json
    • 起始于:C:\dhcp-dns-manager

性能优化

1. 排除杀毒软件扫描

将项目目录添加到杀毒软件排除列表:

  • Windows 安全中心 → 病毒和威胁防护 → 管理设置 → 排除项
  • 添加文件夹:C:\dhcp-dns-manager

2. 调整数据库性能

编辑 configs\config.json

{
  "database": {
    "path": "data/dhcp-dns.db?_journal_mode=WAL&_synchronous=NORMAL"
  }
}

3. 限制日志大小

# 限制事件日志
wevtutil sl "Application" /ms:4194304

卸载

Docker 方式

docker-compose down

NSSM 服务方式

nssm remove dhcp-dns-manager confirm

手动删除

# 停止服务
net stop dhcp-dns-manager

# 删除目录
Remove-Item -Recurse -Force C:\dhcp-dns-manager

技术支持

遇到问题可以:

  1. 查看日志:

    # Docker 方式
    docker-compose logs -f
       
    # 直接运行
    查看控制台输出
    
  2. 检查事件查看器:

    • Win + R → eventvwr.msc
    • Windows 日志 → 应用程序
  3. 提交 Issue


最后更新: 2026-04-23