如何控制dnsmasq的启动选项?

如何控制dnsmasq的启动选项?

我在 Ubuntu 16.04 Xenial 上,网络管理器dnsmasq为我启动了以下选项:

~/ ps awux|grep dnsmasq
nobody    2649  0.0  0.0  54488  3588 ?        S    Mai23   0: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 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d

我也想dnsmasq读取/使用该/etc/hosts文件,但目前似乎还做不到,因为有选项--no-hosts

如何更改网络管理器用于调用 dnsmasq 的启动选项?

答案1

dnsmasq您添加的所有配置文件/etc/NetworkManager/dnsmasq.d/都会传递到dnsmasq。只需使用以下命令检查:

ps -ef | grep -P "dnsmasq\s"

我得到这种结果(注意--conf-dir参数):

nobody    6105  5868  0 20:20 ?        00:00:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1 --cache-size=0 --clear-on-reload --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d

因此您只需创建一个/etc/NetworkManager/dnsmasq.d/my-hosts包含如下声明的文件即可:

addn-hosts=/etc/hosts

为了使用/etc/hosts(见文档)。但是因为dnsmasq也以此开头,--no-hosts所以可能决定dnsmasq仍然忽略,/etc/hosts所以您可以创建一个硬链接,例如:

sudo cp -al /etc/hosts /etc/my-hosts

然后将声明更改为:

addn-hosts=/etc/my-hosts

相关内容