Где находится dhcpcd.conf (установка dnsmasq)?

Вопрос или проблема

Судя по всему, как я прочитал, он должен находиться в /etc, но его нет. Я читал в каком-то старом посте, что его можно просто создать, так как это текстовый файл. (Извините, я не могу найти тот пост.) Я не уверен, стоит ли мне это попробовать, т.е. создать файл, или установить dhcpcd или что-то другое. На данном этапе я предпочитаю спросить, чем продолжать в одиночку.

Контекст в том, что я пытался установить hostsblock, что привело меня к установке dnsmasq, что привело меня к dhcpcd и сюда. Страница Wiki по dnsmask в Arch (ссылка ниже) говорит, что файл dhcpcd.conf используется для защиты /etc/resolv.conf от перезаписи dhcpd путем добавления строки nohook resolv.conf в него.

Я знаю, что dnsmasq установлен, потому что journalctl -u dnsmasq.service сообщает следующее (последняя строка вывода):

Запущен dnsmasq - легковесный DHCP и кэширующий DNS сервер.

dhcpcd НЕ установлен. Я не знаю, могу ли я просто попробовать установить его, не поломав что-то, и если я сделал ошибки (см. ниже), как отменить шаги, которые я предпринял. Страница MAN по dnsmasq не упоминает dhcpcd.


Что я сделал до сих пор, из ~/path/hostsblock/hostsblock-master/: Запустил sudo sh install.sh для начала установки “hostsblock”.

  • добавить “nobody dnsmask” в группу hostblock? Y
  • добавить (имя_пользователя) ALL = (hostsblock) NOPASSWD: q/hostsblock,q/hostsblock-urlcheck в sudoers: Y

  • должен ли я включить и/или запустить службу hostsblock?

    1. Только включить
    2. Только запустить
    3. Запустить и включить
    4. Не делать ничего (По умолчанию)

      2

    Возможно, это была ошибка:

    Работа для hostsblock.service не удалась, так как контрольный процесс завершился с кодом ошибки. См. "systemctl status hostsblock.service" и "journalctl -xe" для подробностей.
    -e hostsblock теперь установлен. Проверьте файл конфигурации в /hostsblock.conf.
    По умолчанию, hostsblock не записывает напрямую в /etc/hosts и не управляет вашим демоном dnsmasq.
    Чтобы заставить его это сделать, смотрите инструкции, включенные в /hostsblock.conf.
    

Итак, как было предложено выше, я сделал:

systemctl status hostsblock.service

Никаких явных катастроф, поэтому я продолжил.

Из ~/path/hostsblock-master/ я сделал следующее:

sudo install -Dm755 src/hostsblock.sh /usr/bin/hostsblock
sudo install -Dm644 conf/hostsblock.conf /var/lib/hostsblock/hostsblock.conf
sudo install -Dm644 conf/black.list /var/lib/hostsblock/black.list
sudo install -Dm644 conf/white.list /var/lib/hostsblock/white.list
sudo install -Dm644 conf/hosts.head /var/lib/hostsblock/hosts.head
sudo install -Dm644 systemd/hostsblock.service /usr/lib/systemd/system/hostsblock.service
sudo install -Dm644 systemd/hostsblock.timer /usr/lib/systemd/system/hostsblock.timer

Это была моя ошибка. Это была часть “Для любых других (Трудным способом)”, и я уже сделал “Для других дистрибутивов Linux (Легким способом)” в файле README.md Hostsblock. Это не должно быть проблемой, потому что я проверил сценарий install.sh, и те же строки там, но с "$DESTDIR", заменяющим /usr/bin, "$HOMEDIR", заменяющим /var/lib, и "$systemd_dir", заменяющим /var/lib/hostsblock.

Затем я сделал

sudo systemctl enable --now hostsblock.timer

На этом этапе README.md говорит:

Чтобы использовать hostsblock вместе с dnsmasq, настройте dnsmasq как
DNS кэшированный демон. Пожалуйста, обратитесь к руководству вашего дистрибутива. Для
ArchLinux прочитайте следующее: раздел Wiki.

Я также отредактировал /etc/dnsmasq.conf, добавив следующее: listen-address=127.0.0.1.

Затем я перешел к редактированию /etc/resolv.conf, чтобы добавить строку nameserver 127.0.0.1, но она уже была там.

Так что вот я… Извините, я не думал, что мой пост будет таким длинным.


Мой компьютер находится за маршрутизатором, но это всё. Это не сервер, просто настольный компьютер с Xubuntu 16.04. На локальной сети ничего больше нет, даже принтера.

Так что конкретно сейчас я пытаюсь “настроить ‘dnsmasq’ как DNS кэшированный демон” согласно документу README.md Hostsblock.
После множества исследований я пришел к двум источникам, которые я следую, сравнивая их, пока иду вперед:

Первый источник для Arch, так что я не уверен, применим ли он к Xubuntu, а второй старый. Конечно, также есть страница man dhcpcd, но она не полезна, кроме как подтверждать, что dhcpcd.conf должна находиться в /etc/. Ее нет на моем компьютере. В каталоге /etc/dhcp есть, но в нем нет “dhcpcd.conf”.

Заранее спасибо за любые советы или комментарии.


П.С. (см. комментарий № 2) После установки “dhcpcd” я выполнил шаги из README.md hostsblock:

  1. добавил следующие строки в hostsblock.conf:

    postprocess() {  
        sudo systemctl reload dnsmasq.service  
    }  
    
  2. добавил следующую строку в файл sudoers:

    hostsblock ALL = (root) NOPASSWD: /usr/bin/cp

    hostsblock ALL = (root) NOPASSWD: /usr/bin/systemctl reload dnsmasq.service
    
  3. добавил следующую строку в hostsblock.conf:

    some-user ALL = (hostsblock) NOPASSWD: /usr/bin/hostsblock,/usr/bin/hostsblock-urlcheck
    
  4. добавил следующую строку в dnsmasq.conf:

    addn-hosts=/var/lib/hostsblock/hosts.block
    

“dnsmasq” также, по-видимому, нуждается в следующей строке в
dhclient.conf (см. примечание ниже), чтобы заставить “dhclient” просматривать 127.0.0.1
прежде, чем смотреть в других местах:

  1. prepend domain-name-servers 127.0.0.1;

Примечание: dhclient.conf находится в /etc/dhcp на моей системе. Несколько
веб-документов указывают на другие дистрибутивы Linux, где он также находится в /etc (Arch) и в /etc/dhcp3 (серверы, старые).

  1. добавил “dnsmasq” в группу “hostsblock”, согласно документации в hostsblock.conf (пример 1: “dnsmasq под systemd”):

    $ sudo gpasswd -a dnsmasq hostsblock

dhcpcd.conf не было на своем месте, потому что “dhcpcd” никогда не был установлен, т.е. я его не устанавливал, и он не включен в мою установку Xubuntu 16.04, в чем я не был уверен, когда писал вопрос.

Я предполагаю, что я мог и должен был установить его перед началом установки “hostsblock” и “dnsmasq”. Если бы я это сделал, проблема бы не возникла. Я просто не знал об этом заранее и не видел этого нигде в своем исследовании, и, не имея опыта, я может быть был слишком осторожным. Теперь я знаю, что “dhcpcd” и “dnsmasq” оба установлены, и я думаю, что правильно сконфигурированы.

К сожалению, я еще не на завершающем этапе своих путешествий, пока не проверю, что “hostsblock” функционирует как задумано, но я хотел быть как можно более конкретным со своим вопросом и не включать слишком много.

Ответ или решение

Поиск файла dhcpcd.conf в установке dnsmasq

Файл конфигурации dhcpcd.conf действительно должен находиться в директории /etc, однако ваше наблюдение о том, что он отсутствует, обосновано. Это связано с тем, что на вашем компьютере dhcpcd (DHCP Client Daemon) на данный момент не установлен. Для более глубокого понимания ситуации, необходимо рассмотреть несколько важных аспектов.

Что такое dhcpcd и какова его роль?

dhcpcd — это демон клиента DHCP, который обеспечивает автоматическую настройку сетевых интерфейсов и получения IP-адресов. Он управляет файлами конфигураций сети и может генерировать файл dhcpcd.conf, который используется для изменения поведения демонстратора. В вашем случае его отсутствие объясняется тем, что вы еще не установили этот пакет.

Установка dhcpcd

Если вы намерены использовать dnsmasq для управления DNS и DHCP, установка dhcpcd может быть полезной. Его можно установить с помощью следующей команды:

sudo apt install dhcpcd

После успешной установки вы сможете найти файл dhcpcd.conf по следующему пути:

/etc/dhcpcd.conf

Если файл не создан автоматически, вы можете создать его вручную, так как это текстовый файл, который можно редактировать в любом текстовом редакторе. Основное содержание может выглядеть так:

# Добавьте сюда свои настройки
nohook resolv.conf

Это позволит dnsmasq корректно выполнять свои функции без перезаписи файла /etc/resolv.conf.

Конфигурация dnsmasq и взаимодействие с hostsblock

Вы правильно отметили, что dnsmasq служит легковесным DHCP и кеширующим DNS-сервером. После установки hostsblock и внесения записи listen-address=127.0.0.1 в /etc/dnsmasq.conf, вы предприняли правильные шаги для интеграции. Также важно добавить в /etc/resolv.conf строку nameserver 127.0.0.1, если она там отсутствует, чтобы ваш сетевой трафик DNS перенаправлялся через dnsmasq.

Запуск и активация служб

Для того чтобы удостовериться, что ваши изменения вступили в силу, рекомендую активировать и запустить службы:

sudo systemctl enable dnsmasq
sudo systemctl start dnsmasq

Также следует проверить статус работы этих служб:

sudo systemctl status dnsmasq
sudo systemctl status hostsblock.service

Подведение итогов

Ваша ситуация — вполне типичный сценарий конфигурации, когда несколько служб взаимосвязаны. Ваша осторожность была оправдана, поскольку работа с конфигурациями требует тщательного подхода. Вам остаётся только удостовериться, что все зависимости установлены, и службы запущены, чтобы гарантировать корректную работу системы.

Если у вас остаются вопросы или возникают сложности, не стесняйтесь обращаться за помощью на форумы или консалтинговые службы, так как поддержка сообщества IT всегда готова помочь решениями для ваших задач.

Оцените материал
Добавить комментарий

Капча загружается...