当条目添加到 /etc/hosts 时,dnsmasq 不会自动重新加载

当条目添加到 /etc/hosts 时,dnsmasq 不会自动重新加载

我花了几天的时间配置 dnsmasq 以自动重新加载或了解添加到 /etc/hosts 或另一个配置文件中的新主机/etc/hosts.dnsmasq

这可能吗?

答案1

有两种方法可以使 dnsmasq 重新加载主机文件:

  1. 亚伦·科普利在他的评论中指出,发送SIGHUP到 dnsmasq。从手册页

    当收到 SIGHUP 时,域名系统清除缓存然后重新加载/etc/hosts/etc/ethers以及由 --dhcp-hostsfile、--dhcp-hostsdir、--dhcp-optsfile、--dhcp-optsdir、--addn-hosts 或 --hostsdir 给出的任何文件。将为所有现有 DHCP 租约调用 dhcp 租约更改脚本。如果--无投票设置SIGHUP也重新读取/etc/resolv.conf. SIGHUP 不会重新读取配置文件。

    请注意,在这种情况下,dnsmasq 不会重新启动,但它会重新读取许多其他文件(并调用所有现有 DHCP 租约的 dhcp 租约更改脚本)。如果担心触发重新加载太快,您可以防抖信 号。

  2. 使用--hostsdir选项。再次从手册页

    --hostsdir=<路径>
            读取目录中包含的所有主机文件。会自动读取新的或更改的文件。有关详细信息,请参阅 --dhcp-hostsdir。

    作为参考,这里是文档--dhcp-hostsdir

    –dhcp-hostsdir=<路径>
            这相当于 dhcp-hostsfile,但以下情况除外。路径必须是目录,而不是单个文件。目录中更改或新增的文件将自动读取,无需发送 SIGHUP。如果文件在被 dnsmasq 读取后被删除或更改,则其包含的主机记录将保留,直到 dnsmasq 收到 SIGHUP 或重新启动;即主机记录仅动态添加。

    与第一个选项相比,这有几个优点:dnsmasq 将自动重新读取主机文件,无需SIGHUP执行任何操作;仅重新加载主机文件,不采取其他操作。

    一个潜在的缺点是,正如文档指出--dhcp-hostsdir的那样,新的主机条目是动态添加的,但删除或更改的条目不会更新。dnsmasq 的作者 Simon Kelley 曾确认这是设计使然

相关内容