---
url: https://eoht.net/esxi/openwrt/clear-dns-cache.md
description: >-
  区分 OpenWrt/iStoreOS 只刷新 dnsmasq DNS 缓存与同时清除 DHCP 租约两种操作，提供重启、日志检查和解析验证步骤，并说明其他
  DNS 服务与客户端缓存的处理边界。
---

# OpenWrt/iStoreOS 刷新 DNS 缓存与重启 dnsmasq {#refresh-openwrt-dns-cache}

OpenWrt/iStoreOS 常由 dnsmasq 提供 DNS 缓存和 DHCP 服务。遇到域名解析仍指向旧地址时，先确认客户端实际使用的 DNS 服务器；只需清除 dnsmasq 的内存缓存时，重启服务即可，无需删除 DHCP 租约。

## 只刷新 DNS 缓存 {#refresh-dns-only}

通过 SSH 登录路由器后执行：

```sh
/etc/init.d/dnsmasq restart
```

重启会短暂中断 dnsmasq 的 DNS/DHCP 服务，但不主动删除保存的租约。随后查看进程和最近日志，确认服务已启动且没有配置错误：

```sh
pidof dnsmasq
logread -e dnsmasq | tail -n 30
```

在客户端指定路由器地址查询，例如：

```sh
nslookup example.com 192.168.1.1
```

将 `192.168.1.1` 换成实际 DNS 地址。成功返回结果只能证明该次查询成功；上游递归 DNS、浏览器、操作系统或应用也可能缓存记录，仍需结合记录的 TTL 和实际解析链路排查。若由 AdGuard Home、SmartDNS、MosDNS 等提供缓存，应处理对应服务，不能只重启 dnsmasq。

## 同时清除 DHCP 租约 {#clear-dhcp-leases-too}

仅在确实需要重建动态租约时使用这一组。先在 `/etc/config/dhcp` 中核对 `leasefile`，下面采用常见的 `/tmp/dhcp.leases`；自定义路径需要相应调整。

```sh
/etc/init.d/dnsmasq stop
rm -f /tmp/dhcp.leases
/etc/init.d/dnsmasq start
```

删除服务器端租约文件不会立即撤销客户端已经取得的地址。需要客户端重新获取租约，并检查有无地址冲突；静态租约配置也不会因此被删除。

如果问题与域名解析更新有关，可继续查看 [OpenWrt/iStoreOS 动态 DNS 设置](/esxi/openwrt/ddns-settings)。
