必须同时启用区域级老化、服务器级清理并确保客户端动态更新配合,三者缺一不可;区域需勾选“启用自动老化/清理”,服务器需勾选“启用自动清理”,AD集成区域还需应用到现有区域。
要让 windows server 的 dns 区域自动清除陈旧记录,必须同时启用区域级老化、服务器级清理,并确保客户端行为配合。只开一个开关是无效的,三者缺一不可。
区域和服务器两级开关必须都打开
这是最基础也最容易漏掉的一步:
- 在 DNS 管理器中,右键点击目标正向查找区域(如 contoso.com)→ “属性” → 切换到“常规”选项卡 → 点击下方“老化…”按钮 → 勾选“为此区域启用自动老化/清理”,并设置刷新间隔和老化间隔(推荐各设为 7 天)
- 再右键点击左侧 DNS 服务器节点(不是区域)→ “属性” → “高级”选项卡 → 勾选“启用自动清理”,并设置“自动清理周期”(建议设为 24 小时,确保及时扫描)
- 如果是 AD 集成区域,还需额外操作:右键服务器节点 → “设置所有区域的老化/清理” → 勾选“Scavenge Stale Resource Records”,并在弹出窗口中勾选“应用到现有 AD 集成区域”
时间参数要合理搭配
三个时间值共同决定一条记录能活多久:
- 无刷新间隔:记录注册后,客户端即使 IP 没变也不允许刷新时间戳的时长(默认 7 天)
- 刷新间隔:无刷新期结束后,客户端必须在此期限内发起一次更新,否则记录被标记为“可清理”(默认 7 天)
- 自动清理周期:DNS 服务器实际执行删除动作的频率,不是记录过期时间(设为 24 小时更稳妥)
- 总生命周期 = 无刷新间隔 + 刷新间隔。例如设为 7+7,记录最多存 14 天;设为 1+1,则 2 天后就可能被删
确保客户端能正常刷新时间戳
服务端配得再好,客户端不配合也没用:
- Windows 客户端默认每 24 小时通过 DHCP 或直接向 DNS 发起动态更新,刷新 A 和 PTR 记录
- 检查客户端网络适配器属性 → “Internet 协议版本 4 (TCP/IPv4)” → “属性” → “高级” → “DNS”选项卡 → 确保勾选“在 DNS 中注册此连接的地址”和“使用此连接的 DNS 后缀注册”
- DHCP 服务器需启用“为 DNS 动态更新配置”,且策略允许客户端更新自身记录
- 静态 IP 主机若未手动启用 DNS 注册,其记录不会刷新,也不会参与老化
清理已有陈旧记录的临时手段
刚启用时,历史堆积的过期记录不会立刻消失,可手动触发一次:
- 以管理员身份打开命令提示符,运行:dnscmd /startscavenging
- 该命令立即启动一次全区域扫描,只删除已过期(时间戳 + 生命周期 ≤ 当前时间)且满足老化条件的记录
- 注意:dnscmd /ageallrecords 会给所有记录强行打上当前时间戳,包括手工添加的静态记录,慎用











