8ad4c3576d
- Fixed verifyAssignment being too strict for new clients - Fixed parseRequestedIP string conversion bug - Fixed response sent to 0.0.0.0 instead of broadcast address - Added SO_BROADCAST support for UDP socket - Fixed session persistence after page refresh (localStorage) - Added in-memory session store for auth middleware - Added config reloader so DHCP server picks up web UI changes dynamically
5.3 KiB
5.3 KiB
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
选择 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
安装服务
# 以管理员身份打开 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
或使用图形界面
- 打开"Windows Defender 防火墙"
- 点击"高级设置"
- 入站规则 → 新建规则
- 端口 → TCP/UDP → 53, 67, 8080
- 允许连接
常见问题
Q: 端口被占用?
检查占用端口的进程:
# 查看 8080 端口
netstat -ano | findstr :8080
# 查看 53 端口
netstat -ano | findstr :53
解决方案:
- 修改
configs\config.json中的端口 - 或停止占用端口的服务
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 服务方式
已自动配置开机启动
任务计划程序方式
- 打开"任务计划程序"
- 创建基本任务
- 触发器:计算机启动时
- 操作:启动程序
- 程序:
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
技术支持
遇到问题可以:
-
查看日志:
# Docker 方式 docker-compose logs -f # 直接运行 查看控制台输出 -
检查事件查看器:
- Win + R →
eventvwr.msc - Windows 日志 → 应用程序
- Win + R →
-
提交 Issue
最后更新: 2026-04-23