Назад | Перейти на главную страницу

dnsmasq не перезагружается автоматически при добавлении записи в / etc / hosts

В течение нескольких дней я изо всех сил пытаюсь настроить dnsmasq для автоматической перезагрузки или получения информации о новых хостах, добавленных в / etc / hosts или в другой настроенный файл /etc/hosts.dnsmasq.

Это вообще возможно?

Есть два способа заставить dnsmasq перезагрузить файл hosts:

  1. В роли Аарона Копли отметил в своем комментарии, Отправить SIGHUP в dnsmasq. Из страница руководства:

    Когда он получает SIGHUP, dnsmasq очищает кеш, а затем перезагружает / etc / hosts и / и т.д. / эфиры и любой файл, заданный --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, имеет подтвердил, что это сделано намеренно.