在 Mint/Ubuntu/Debian 中配置 dnsmasq

在 Mint/Ubuntu/Debian 中配置 dnsmasq

我有一台带有多个以太网端口的计算机 - 一个连接到互联网,其余的连接到其他设备以提供互联网连接。 DHCP 服务由 dnsmasq 提供。该计算机还有几个仅与“内部”接口共​​享的 samba 共享。我认为这只是一个非常普通的设置。

在 Mint 18 中,所有这一切都顺利进行,没有中断。

更新到 Mint 18.1 在 NetworkManager 中引入了一些奇怪的现象,其中 dnsmasq 的出现如下:

ps -ef | grep dnsm nobody 5099 5080 0 16:55 ? 00:00:00 /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

问题是“--conf-file=/dev/null”部分,因为这似乎阻止 dsnmasq 实际读取 /etc/NetworkManager/dnsmasq.d 中的配置文件

我可以“systemctl stop NetworkManager”,然后是“killall -9 dnsmasq”,然后“手动”重新发出 dnsmasq - 但这充其量是极其丑陋的(并且花费了我所有其他 NetworkManager 功能)。

筛选 /etc/NetworkManager 和 /usr/lib/NetworkManager 中的所有各种文件,这样我找不到指定“conf-file=/dev/null”的位置,所以我猜测这是需要的默认值在某处/以某种方式被覆盖,但我不知道如何或在哪里 - “man NetworkManager.conf”并没有真正帮助。

答案1

NM 传递conf 文件以防止dnsmasq 加载默认配置文件。

但请注意:

--conf-dir=/etc/NetworkManager/dnsmasq.d 

答案2

从上面可以看出,问题是由when itstarts--conf-file (blank) directive发出的。如何从发出的命令行中删除该指令?显然,正在执行的测试无法正常工作:NetworkManagerdnsmasqNetworkManagerNetworkManager

strings /usr/sbin/NetworkManager|grep conf_file

给出:

conf_file != NULL 

答案3

  1. 当我检查我的ps -ef | grep dnsm

    dnsmasq -x /var/run/dnsmasq/dnsmasq.pid -u dnsmasq -r /var/run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-新--本地服务

它从 /etc/init.d/dnsmasq 开始,处理从 /etc/dnsmasq.conf 中选择配置的大部分内容。所以我认为这是因为初始化脚本不匹配。我发现在我的过程中有大多数不同的选项,因此请检查您的 dnsmasq 初始化脚本。

sudo service dnsmasq restart如果您通过尝试再次检查是否在检查/etc/init.d/dnsmasq问题文件时看到相同的内容来提供给我,可能会更好 。或者如果可以的话发送转储。

相关内容