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
4.7 KiB
4.7 KiB
🚀 快速开始指南
选择你的操作系统开始部署:
🐧 Linux 系统
方法 1:一键安装脚本(推荐)
# 下载项目
git clone <your-repo-url>
cd dhcp-dns-manager
# 运行安装脚本(需要 root 权限)
sudo ./install.sh
安装完成后:
- ✅ 自动配置 systemd 服务
- ✅ 自动配置防火墙
- ✅ 自动启动服务
访问: http://your-server-ip:8080
账号: admin / admin
方法 2:Docker 部署
docker-compose up -d
方法 3:手动运行
go mod download
go run ./cmd -config configs/config.json
🪟 Windows 系统
方法 1:Docker Desktop(推荐)
- 安装 Docker Desktop: https://www.docker.com/products/docker-desktop
- 双击运行
start.bat - 访问 http://localhost:8080
方法 2:本地运行
- 安装 Go: https://golang.org/dl/
- 双击运行
start.bat - 访问 http://localhost:8080
方法 3:WSL2
在 WSL2 中按照 Linux 方法部署
🍎 macOS 系统
# 安装 Go
brew install go
# 运行
go mod download
go run ./cmd -config configs/config.json
📦 Docker(所有平台通用)
# 启动
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止
docker-compose down
# 重启
docker-compose restart
✅ 验证安装
1. 检查服务状态
Linux:
systemctl status dhcp-dns-manager
Windows:
sc query dhcp-dns-manager
Docker:
docker-compose ps
2. 访问 Web 界面
浏览器打开:http://localhost:8080
看到登录页面即表示安装成功!
3. 测试 API
curl http://localhost:8080/api/dashboard
🔧 配置说明
编辑 configs/config.json:
{
"dhcp": {
"enabled": true,
"interface": "eth0", // Linux: eth0, Windows: "以太网"
"network": "192.168.1.0",
"ip_pool_start": "192.168.1.100",
"ip_pool_end": "192.168.1.200"
},
"dns": {
"enabled": true,
"listen_port": 53,
"upstream": ["8.8.8.8", "1.1.1.1"]
},
"web": {
"port": 8080
}
}
🔐 安全建议
首次使用必做:
-
修改默认密码
- 登录 Web 界面
- 进入设置 → 修改密码
-
限制访问 IP(可选)
在防火墙中限制只允许内网访问:
# Linux UFW sudo ufw allow from 192.168.1.0/24 to any port 8080 -
启用 HTTPS(生产环境)
使用 Nginx 反向代理:
server { listen 443 ssl; server_name your-domain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:8080; } }
📊 常用操作
查看日志
Linux:
# systemd 方式
journalctl -u dhcp-dns-manager -f
# Docker 方式
docker-compose logs -f
Windows:
# Docker 方式
docker-compose logs -f
# 事件查看器
eventvwr.msc
备份数据
# 备份数据库
cp data/dhcp-dns.db data/dhcp-dns.db.backup.$(date +%Y%m%d)
# 备份配置
cp configs/config.json configs/config.json.backup
恢复数据
# 停止服务
systemctl stop dhcp-dns-manager
# 恢复数据库
cp data/dhcp-dns.db.backup data/dhcp-dns.db
# 启动服务
systemctl start dhcp-dns-manager
❓ 故障排查
问题 1:无法访问 Web 界面
检查服务状态:
# Linux
systemctl status dhcp-dns-manager
# Docker
docker-compose ps
# Windows
netstat -ano | findstr :8080
检查防火墙:
# Linux
sudo ufw status
# Windows
Get-NetFirewallRule | Where-Object Enabled -eq True
问题 2:端口被占用
查找占用进程:
# Linux
sudo lsof -i :8080
sudo netstat -tulpn | grep :8080
# Windows
netstat -ano | findstr :8080
解决方案:
- 停止占用端口的服务
- 或修改
config.json使用其他端口
问题 3:DHCP/DNS 无法启动
检查权限:
# Linux - 需要 root 权限绑定 53/67 端口
sudo systemctl restart dhcp-dns-manager
# Docker - 确保使用 network_mode: host
检查端口占用:
sudo netstat -ulpn | grep :53
sudo netstat -ulpn | grep :67
📚 更多文档
- 部署指南 - 详细部署步骤
- Windows 指南 - Windows 专属部署
- API 示例 - API 接口测试
- 使用场景 - 实际应用案例
- 项目总结 - 功能清单
🆘 获取帮助
- 查看日志定位问题
- 检查配置文件语法
- 确认防火墙设置
- 提交 Issue 反馈
祝你使用愉快! 🎉
有任何问题随时反馈!