windows dhcp服务器无租约到期延迟回收功能,需通过启用自动清理过期租约(设合理清理间隔与过期阈值)、定期压缩dhcp.mdb数据库、主动筛查清理僵尸active租约三措施保障ip及时回收。
windows dhcp 服务器本身不提供“租约到期后延迟回收”的配置选项。它没有“等 x 分钟再释放”这类缓冲式回收机制。所谓“自动回收”,实际是通过租约状态清理策略来实现的——系统将过期租约标记为 expired,再按设定规则批量识别并真正释放。
要让 IP 地址在租约到期后尽快、可靠地回归可用池,关键不是设“延迟时间”,而是正确配置三项服务端行为:
启用并调优“自动清理过期租约”
这是最直接影响回收时效的设置:
- 打开 DHCP 控制台 → 右键服务器 → 属性 → 切换到 高级 选项卡
- 勾选 ✅ 自动清理过期租约
- 设置两项参数:
-
清理间隔:建议设为
24小时(最小可设 1 小时,但频繁扫描增加负载) -
租约过期时间阈值:必须 ≥ 实际分配的租期(例如租期设为 24 小时,此处至少填
1天;若租期是 3 天,填3)
-
清理间隔:建议设为
⚠️ 注意:阈值不是“延迟多久才回收”,而是“只清理已过期超过该天数的租约”。如果租期 2 天,阈值却设成 1,系统可能误删尚未真正失效的租约;设成 30,则大量
Expired记录长期滞留,地址池被虚假占用。
确保 DHCP 数据库定期压缩
dhcp.mdb 文件随时间膨胀会导致状态查询变慢、清理任务滞后:
- 每月执行一次压缩命令(以管理员身份运行 CMD):
esentutl /d "C:\Windows\System32\dhcp\dhcp.mdb"
- 建议安排为计划任务,避免手动遗漏。
主动筛查并清理“僵尸 Active”租约
有些设备断电或网络中断后未发 DHCPRELEASE,租约仍显示 Active,但早已失联——这类租约不会被自动清理机制捕获:
- 用 PowerShell 定期检查超期仍为 Active 的记录(例如超过 7 天未更新):
Get-DhcpServerv4Lease -ComputerName "DHCP-SRV" | Where-Object { $_.LeaseExpiryTime -lt (Get-Date).AddDays(-7) -and $_.AddressState -eq "Active" } - 导出结果人工核验或配合 MAC 前缀筛选后,执行:
Remove-DhcpServerv4Lease -ComputerName "DHCP-SRV" -IPAddress 192.168.106.155
不复杂但容易忽略











