我努力了几天来配置 dnsmasq 以自动重新加载或了解添加到 /etc/hosts 或另一个配置文件的新主机的知识/etc/hosts.dnsmasq。
这甚至可能吗?
小智 10
有两种方法可以让 dnsmasq 重新加载主机文件:
正如 Aaron Copley在他的评论中指出的,发送SIGHUP到 dnsmasq。从手册页:
当它收到 SIGHUP 时,dnsmasq清除其缓存,然后重新加载/etc/hosts和/etc/ethers以及 --dhcp-hostsfile、--dhcp-hostsdir、--dhcp-optsfile、--dhcp 给出的任何文件-optsdir、--addn-hosts 或--hostsdir。为所有现有的 DHCP 租约调用 dhcp 租约更改脚本。如果设置了--no-poll SIGHUP 也会重新读取/etc/resolv.conf。SIGHUP 不会重新读取配置文件。
请注意,在这种情况下 dnsmasq 不会重新启动,但它会重新读取许多其他文件(并为所有现有的 DHCP 租约调用 dhcp 租约更改脚本)。如果太快触发重新加载是一个问题,您可以消除信号的抖动。
使用该--hostsdir选项。再次从手册页:
--hostsdir=<path>
读取目录中包含的所有主机文件。自动读取新的或更改的文件。有关详细信息,请参阅 --dhcp-hostsdir。
作为参考,这里是文档--dhcp-hostsdir:
--dhcp-hostsdir=<path>
这相当于 dhcp-hostsfile,除了以下内容。路径必须是一个目录,而不是一个单独的文件。自动读取目录中已更改或新的文件,无需发送 SIGHUP。如果文件在被 dnsmasq 读取后被删除或更改,那么它所包含的主机记录将一直存在,直到 dnsmasq 收到一个 SIGHUP,或者重新启动;即主机记录只能动态添加。
与第一个选项相比,这有几个优点:dnsmasq 将自动重新读取主机文件,SIGHUP不需要,并且;仅重新加载主机文件,不执行其他操作。
一个潜在的缺点是,正如文档所--dhcp-hostsdir指出的,新的主机条目是动态添加的,但删除或更改的条目不会更新。dnsmasq 的作者 Simon Kelley 已经确认这是设计使然。
| 归档时间: |
|
| 查看次数: |
16340 次 |
| 最近记录: |