如何禁用 Dnsmasq 监听端口 53,以在 Docker 中运行 Dnsmasq 实例?

如何禁用 Dnsmasq 监听端口 53,以在 Docker 中运行 Dnsmasq 实例?

我想在我的 Debian 10 系统上有一个 dockerized Dnsmasq 网络范围的 DNS 服务器解决方案。

问题:

sudo lsof -i -P -n | grep LIST
dnsmasq  ... TCP 192.168.122.1:53 (LISTEN)

已经有一个 dnsmasq 实例侦听本地 DNS 服务。但我想使用 docker 实例(请不要要求我使用 dnsmasq 中的构建,因为 docker 有一个 Web 界面)。

在 docker-instance dnsmasq Web 界面中,我得到:

⁣⁣dnsmasq: failed to create listening socket for port 53: Address in use

很明显,我必须禁用 dnsmasq。我扔了这个线程:

https://mmoapi.com/post/how-to-disable-dnsmasq-port-53-listening-on-ubuntu-18-04

  • 环境"DNSStublistener=no"
  • 有效,但重新启动后我遇到了同样的问题。

显然还有一些我不明白的事情。这个问题与此主题相关:

如何正确禁用端口 53 上的 systemd-resolved 以避免与 Ubuntu 20.04 中的 dnsmasq 发生冲突......?

  • 同样的问题,但没有真正无压力的解决方案,所以我认为,在后网络管理器解决方案时代有一个关于它的新线程是值得的。

那么,我怎样才能禁用它,而又不会遇到新问题呢?

编辑:找到解决方案如何限制 dnsmasq 只监听一个接口?

  • 添加-bind interface到配置以使用多个 DNS 服务器(尽管手册页这么说)

  • 有问题,bc 没有/etc/dnsmasq.conf文件吗?

答案1

我曾经帮助自己。

  1. 我找到了该进程并使用以下命令查找conf文件的目的地经典系统管理员:如何从 Linux 命令行终止进程教程:
    ps aux | grep dnsmasq
    
  2. 我编辑了文件(例如 nano /var/lib/libvirt/dnsmasq/default.conf)并将绑定动态更改为绑定接口
  1. 重启看看是否有帮助。

  2. 这不是因为该default.conf文件是自动生成的,所以它说我必须使用

    virsh net-edit default
    

    编辑默认设置。出现另一个问题是因为,在 libvirt v5.6 之前,不允许传递自定义选项。但在那之后我使用了一个特殊的 xml 短语:

       <dnsmasq:options>
         <dnsmasq:option value="foo=bar"/>
         <dnsmasq:option value="cname=*.foo.example.com,master.example.com"/>
       </dnsmasq:options>
    

    解决方案被发现于使用 libvrt 自定义 dnsmasq (或自定义选项)?;我尝试过,但没有成功。

  3. 我最终在 XML 文件中禁用了默认网络的 DNS,使用

    <dns> <dns enable="no"/> </dns>
    

    按照手册页上的说明进行操作(您在 tmp XML 中编写并且安全,当一切正常时,它会将其视为新常态)。

  4. 该端口的 DNS 被禁用,我的第二个 dnsmasq 服务器启动并正在运行。

答案2

我也遇到了同样的问题,除了我想设置 pihole,而 libvirt 参与 dnsmasq 却遇到了很大的障碍。 NASNewbie2k18 的答案的两个附录:

  1. 通过添加<dns> <dns enable="no"/> </dns>到 default.conf 文件virsh net-edit default没有帮助,因为保存后更改将从文件中删除。相反,我必须添加<dns enable='no'/>, 所以没有额外的<dns>标签。这在重新启动后释放了一个绑定。
  2. 第二个绑定已打开10.0.3.1:53,由 完成lxc-net。在文件中更改USE_LXC_BRIDGE为并使用 重新启动 lxc-net 服务后,最后一个绑定被释放,我终于能够启动 pihole。false/etc/default/lxc-netsystemctl restart

相关内容