dhcpcd.conf(dnsmasq 安装)在哪里?

dhcpcd.conf(dnsmasq 安装)在哪里?

根据我所读到的所有内容,它应该在 中/etc,但事实并非如此。我确实在一些旧帖子中读到,人们可以简单地创建一个,因为它是一个文本文件。(抱歉,我再也找不到该帖子了。)我不确定我是否应该尝试这样做,即创建文件,或安装dhcpcd或其他操作。此时此刻,我宁愿问,也不愿独自继续。

背景是我试图安装hostsblock,这导致我安装dnsmasq,这导致我安装dhcpcd,然后到这里。dnsmask Arch Wiki 页面(下面的链接)表示该dhcpcd.conf文件用于通过将行附加到该文件来/etc/resolv.conf防止覆盖。dhcpdnohook resolv.conf

我知道已dnsmasq安装,因为journalctl -u dnsmasq.service报告以下内容(输出的最后一行):

Started dnsmasq - A lightweight DHCP and caching DNS server.

dhcpcd未安装。我不知道是否可以尝试安装它而不破坏任何东西,如果我犯了错误(见下文)如何撤消我已采取的步骤。dnsmasq手册页没有提到dhcpcd


到目前为止我所做的一切,从~/path/hostsblock/hostsblock-master/:运行sudo sh install.sh 开始安装“hostsblock”。

  • 将“nobody dnsmask”添加到 hostblock 组?Y
  • 添加(username) ALL = (hostsblock) NOPASSWD: q/hostsblock,q/hostsblock-urlcheck至 sudoers:Y

  • 我应该启用和/或启动 hostsblock 服务吗?

    1. 仅启用
    2. 仅限开始
    3. 启动并启用
    4. 不执行任何操作(默认)

      2

    这也许是一个错误:

    Job for hostsblock.service failed because the control process exited with error code. See "systemctl status hostsblock.service" and "journalctl -xe" for details.
    -e hostsblock is now installed. Check out the configuration file under /hostsblock.conf.
    By default, hostsblock does not directly write to /etc/hosts or manipulate your dnsmasq daemon.
    To make it do so, see the instructions included in /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

那是我的错误。那是“For Any Others (The Hard Way)”的一部分,我已经在 Hostsblock README.md 文件中完成了“For Other Linux Distros (The Easy Way)”。这应该不是问题,因为我检查了 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,请阅读以下内容:维基部分

我还进行了编辑/etc/dnsmasq.conf以添加以下内容:listen-address=127.0.0.1

然后我去编辑/etc/resolv.conf以添加该行nameserver 127.0.0.1,但它已经在那里了。

所以我在这里...抱歉,我没想到我的帖子会这么长。


我的机器位于路由器后面,但仅此而已。它不是服务器,只是一台装有 Xubuntu 16.04 的台式机。局域网上没有其他东西,甚至连打印机都没有。

具体来说,目前,我正在尝试根据 Hostblock README.md 文档“将‘dnsmasq’配置为 DNS 缓存守护程序”。经过大量研究,我最终找到了两个我正在关注的来源,并在继续研究的同时对它们进行比较:

第一个是 Arch 的,所以我不确定它是否适用于 Xubuntu,第二个是旧的。当然还有 dhcpcd 手册页,但除了确认 dhcpcd.conf 应该在 /etc/ 中之外,它没有任何帮助。它不在我的计算机上。有一个 /etc/dhcp 目录,但其中没有“dhcpcd.conf”。

提前感谢您的任何建议或评论。


PS(见评论2)安装“dhcpcd”后,我完成了hostsblock README.md中的步骤:

  1. 添加了以下几行hostsblock.conf

    postprocess() {  
        sudo systemctl reload dnsmasq.service  
    }  
    
  2. 在文件中添加以下行sudoers

    hostsblock ALL = (根)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:“systemd 下的 dnsmasq”):

    $ sudo gpasswd -a dnsmasq hostsblock

答案1

dhcpcd.conf没有出现在原来的位置,因为“dhcpcd”从未安装过,即我没有安装它,而且它也不包含在我的 Xubuntu 16.04 安装中,当我写这个问题时我对此并不确定。

我猜我应该在开始安装“hostsblock”和“dnsmasq”之前安装它。如果我这样做了,问题就不会发生。我只是事先不知道这一点,在我的研究中也没有看到它,而且由于缺乏经验,我可能太谨慎了。现在我知道“dhcpcd”和“dnsmasq”都已安装,我认为配置正确。

不幸的是,在我确认“hostsblock”能够按预期运行之前,我的旅程尚未结束,但我希望尽可能具体地提出我的问题,并且不包含太多内容。

相关内容