🧹 手动清理 OPNsense 的 Dnsmasq 顽固租约
📢 施工前重要提示: bc:24:11:32:84:ab 是本文演示用的 MAC 地址。在实际操作时,请务必将其替换为你需要清理的设备 MAC。
在 OPNsense 中开启 Dnsmasq 作为 DHCP 服务时,有些顽固的动态租约在 Web UI 的 Dashboard 上点击删除是无效的。遇到这种情况,我们需要直接潜入 FreeBSD 系统底层,修改 Dnsmasq 的租约记录文件(/var/db/dnsmasq.leases)。
-
紧急拉闸 (停止 Dnsmasq 服务)
在终端(SSH 连入或 Web Console)里执行以下命令:
Terminal window pluginctl -s dnsmasq stop -
精准拆除 (抹除对应记录)
现在文件解锁了。我们使用
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 -
重新通电 (启动服务)
底层记录抹除完成,把服务重新拉起来:
Terminal window pluginctl -s dnsmasq start
竣工验收! 现在回到你的 OPNsense 后台刷新一下,那条烦人的租约就已经彻底灰飞烟灭了。
💡 终极防范: > 对于像内网服务器、K3S 节点等基础设施,强烈建议去 Services -> Dnsmasq DNS -> Settings 底部添加 Static IPv4 Mappings。只要打上了静态钢钉,设备就会稳稳地钉死在你指定的 IP 上,不再进入动态租约池!