Skip to content

🧹 手动清理 OPNsense 的 Dnsmasq 顽固租约

⏱️ 更新: 2026/05/22

This content is not available in your language yet.

📢 施工前重要提示: bc:24:11:32:84:ab 是本文演示用的 MAC 地址。在实际操作时,请务必将其替换为你需要清理的设备 MAC。

在 OPNsense 中开启 Dnsmasq 作为 DHCP 服务时,有些顽固的动态租约在 Web UI 的 Dashboard 上点击删除是无效的。遇到这种情况,我们需要直接潜入 FreeBSD 系统底层,修改 Dnsmasq 的租约记录文件(/var/db/dnsmasq.leases)。

  1. 紧急拉闸 (停止 Dnsmasq 服务)

    在终端(SSH 连入或 Web Console)里执行以下命令:

    Terminal window
    pluginctl -s dnsmasq stop
  2. 精准拆除 (抹除对应记录)

    现在文件解锁了。我们使用 sed 命令精准干掉包含目标 MAC 地址的那一行租约记录:

    Terminal window
    sed -i '' '/bc:24:11:32:84:ab/d' /var/db/dnsmasq.leases

    💡 包工头科普:关于 FreeBSD 的 sed > 注意到 -i 后面紧跟着的空引号 '' 了吗?FreeBSD 系统的 sed -i 命令后面必须带这个空引号(代表不创建备份文件),否则系统会直接报错。

    🧨 包工头暴躁方案:一锅端 > 如果你想直接重置、清空所有的动态租约,直接用这招瞬间清空整个文件: truncate -s 0 /var/db/dnsmasq.leases

  3. 重新通电 (启动服务)

    底层记录抹除完成,把服务重新拉起来:

    Terminal window
    pluginctl -s dnsmasq start

竣工验收! 现在回到你的 OPNsense 后台刷新一下,那条烦人的租约就已经彻底灰飞烟灭了。

💡 终极防范: > 对于像内网服务器、K3S 节点等基础设施,强烈建议去 Services -> Dnsmasq DNS -> Settings 底部添加 Static IPv4 Mappings。只要打上了静态钢钉,设备就会稳稳地钉死在你指定的 IP 上,不再进入动态租约池!