DNS老化清理需区域和服务器两级开关同时启用,且AD集成区域须额外勾选“应用到现有区域”;无刷新与刷新间隔共同决定记录生命周期,客户端动态更新行为直接影响时间戳刷新。
区域和服务器两级开关必须同时打开
只在区域属性里勾选“启用老化”,或只在服务器属性里勾选“启用自动清理”,都不会真正触发删除。这两项是“与”逻辑,缺一不可。
- 区域级设置:右键 DNS 区域 →
属性→常规选项卡 → 点击老化...→ 勾选清除过时资源记录 - 服务器级设置:右键 DNS 服务器节点 →
属性→高级选项卡 → 勾选启用自动清理 - AD 集成区域还需额外一步:右键服务器 →
设置所有区域的老化/清理→ 勾选Scavenge Stale Resource Records→ 在确认弹窗中勾选“应用到现有 AD 集成区域”
无刷新间隔和刷新间隔不是随便填的数字
这两个值决定记录何时被标记为“可清理”,直接影响清理节奏。填错会导致该删的没删,或不该删的被误删。
-
无刷新间隔:记录创建后,客户端不主动更新的最长时间(默认 7 天)。在此期间即使 IP 没变,也不允许刷新时间戳 -
刷新间隔:无刷新期结束后,客户端必须每 X 天至少刷新一次时间戳(默认 7 天)。超时未刷新,记录进入“待清理”状态 - 总老化周期 = 无刷新间隔 + 刷新间隔。例如设为
7和7,则记录最多存活 14 天;若设为1和1,则 2 天后就可能被清掉 - 静态记录(手动添加)默认无时间戳,不受此影响;但若用
dnscmd /ageallrecords强制打标,也会被纳入清理范围
手动清理命令只清已过期记录,不重置时间戳
执行清理操作本身不会让正常记录“变老”,它只是扫描并删除那些已超出生命周期的条目。
- 右键 DNS 服务器 →
清除过时资源记录:立即触发一次清理,仅作用于已启用老化的区域 - 命令行等效操作:
dnscmd /startscavenging(需管理员权限) - 注意:
dnscmd /ageallrecords是危险操作——它会给区域内所有记录(含静态)强行加上当前时间戳,之后全按老化策略走。除非明确要批量激活清理,否则别碰
Windows 客户端动态注册行为影响实际清理效果
即使服务端配置正确,如果客户端不配合更新,时间戳就不会推进,老化机制形同虚设。
- Windows 默认每 24 小时通过 DHCP 或直接向 DNS 发起
动态更新(DDNS),刷新 A 和 PTR 记录的时间戳 - 若客户端禁用了动态更新(如组策略关了
Register DNS records with connection-specific DNS suffix),或长期离线,其记录就会停滞在初始时间戳,很快被判定为过期 - 验证是否生效:在客户端执行
ipconfig /registerdns,再查 DNS 服务器上对应记录的“时间戳”字段是否更新

















