当 NetworkManager 启动时,dnsmasq 监听 0.0.0.0

当 NetworkManager 启动时,dnsmasq 监听 0.0.0.0

当 dnsmasq 由 NetworkManager 进程启动时,是否可以配置 NetworkManager 或 dnsmasq 来监听 0.0.0.0 ?

我已经注意到我放进去的任何东西/etc/NetworkManager/dnsmasq.d/00-example.conf文件,例如:

listen-address=0.0.0.0

dnsmasq 由 NetworkManager 使用以下参数启动:

/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1 --cache-size=0 --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d

知道如何改变吗--监听地址选项 ?

答案1

我认为你使用的是 Ubuntu,这里发生的事情是域名系统由网络管理器用作插入缓存本地 DNS 查询,这是在命令行上预定义的原因是:

--listen-address=127.0.0.1

因此,为了为您的当地的网络,你需要禁用默认的 dnsmasq,方法是注释掉上述文件下的行/etc/NetworkManager/NetworkManager.conf

#dns=dnsmasq

完成后,重新启动 NM:

systemctl restart NetworkManager

然后你需要安装一个标准版本的 dnsmasq 并将其用于您自己的目的。

补充:一旦标准版本安装在您的一台服务器上,这将是您的 DNS 服务器,它应该有一个固定的ip,因为你的网络使用的是 dhcp 服务器,最后让你的 dns 服务器监听它的所有入侵防御系统不仅在loopback (127.0.0.1) ** 你应该把它放在配置文件 **/etc/dnsmasq.conf 下

listen-address=0.0.0.0

答案2

我也为此苦恼过。我认为 Reda Salih 可能有正确的答案。但我已经投入了大量时间尝试让 Ne​​tworkManager 服从我的意愿,最后我终于让它工作了。我只想补充我的答案:

  1. 确保您的主机有静态 IP。如果您使用 DHCP(即使使用静态分配),DnsMasq 也会选择不良设置,例如对本地地址使用不同的 DNS 服务器。
  2. 不要将本地 IP 放入其中/etc/hosts,因为这样无法读取。请使用addn-hosts其他文件的选项。
  3. dhcp-option=3如果它与此 Dnsmasq 主机不同(我的是),则设置为您的网关。
  4. 请勿设置dhcp-option=6(除非您知道自己在做什么)
  5. 要覆盖listen-addrNetworkManager 强制的设置,您可以使用interfaceconf 文件中的设置。我的设置为 ,interface=eth0,lo对我来说相当于listen-addr=0.0.0.0。其他设置(例如 dhcp-host)正常,不需要额外提及。

相关内容