如何在NetworkManager控制的dnsmasq中启用DNS缓存?


8

Ubuntu Desktop 12.04使用dnsmasq执行DNS查找,但未配置为缓存这些结果。(我已经通过使用dig来解析名称来进行检查,并且在第一次查找后,在响应时间上没有看到大的改进。)如何配置NetworkManager控制的dnsmasq来缓存DNS查找的结果?

Answers:


10

在Ubuntu 12.10中,您可以通过放置以下行来启用NetworkManager控制的dnsmasq实例的缓存

cache-size=1000

(使用您的首选名称数而不是1000)(在/etc/NetworkManager/dnsmasq.d/中)。要激活此更改,您必须执行

sudo stop network-manager
sudo killall dnsmasq
sudo start network-manager

或重新启动。


谢谢您的信息。对于Ubuntu 16.04(以及自引入systemd之后的15.10),请使用“ sudo服务网络管理器停止/启动”,而不是“ sudo服务网络管理器停止/启动”
Fumisky Wells

尽管这仍然sudo systemctl stop NetworkManager
可行

4

我能够使用第一个答案中所述的方法在Linux Mint 13(基于Ubuntu 12.04)中启用DNS缓存。我创建了一个/etc/NetworkManager/dnsmasq.d/cachedns包含line 的文件cache-size=100,然后重新启动network-manager。即使dnsmasq由网络管理器--cache-size=0在其命令行上进行了硬编码执行,但在配置文件中设置缓存大小仍会覆盖该值。您可以通过执行以下操作验证其是否有效:

sudo killall -USR1 dnsmasq
tail /var/log/syslog

您应该在syslog中看到如下所示的行,其中显示了缓存大小:

dnsmasq[17808]: cache size 100, 0/2 cache insertions re-used unexpired cache entries.

我想知道网络管理员的硬编码--cache-size = 0如何受到影响,但是您的帖子让我很清楚。谢谢!
Fumisky Wells

1

我不想从12.04升级,但仍希望由NetworkManager在启用了缓存的情况下管理dnsmasq,但是正如另一个答案所说的那样,--cache-size = 0是硬编码的,不能通过配置进行更改。

所以我最终要做的是作为root用户执行以下操作:

mv /usr/sbin/dnsmasq /usr/sbin/dnsmasq.real

然后创建具有以下内容的新文件/ usr / sbin / dnsmasq:

#!/bin/bash
args=$(echo "$@" | sed 's/--cache-size=0/--cache-size=1000/')
/usr/sbin/dnsmasq.real $args

确保您chmod +x /usr/sbin/dnsmasq已将缓存大小从1000更改为所需大小,并享受带有DNS缓存的LTS版本!


0

在12.04中,dnsmasq由NetworkManager使用硬编码(即,不可配置)参数--cache-size = 0启动

dnsmasq的联机帮助页说,将缓存大小设置为零会禁用缓存。如果要启用缓存,则可能必须禁用NetworkManager的dnsmasq插件,以防止NetworkManager启动dnsmasq并以大于零的缓存大小启动自己的dnsmasq实例。

在这里您可以阅读如何为NetworkManager禁用dnsmasq-plugin:https : //askubuntu.com/a/131422/71057


0

要重新启用缓存(使用具有/etc/NetworkManager/dnsmasq.d目录的NetworkManager版本),实际上只需将内容为“ cache-size = X”的文件拖放到该目录中(X为150 (默认的dnsmasq将具有)。那里的文件将覆盖命令行上给定的硬编码参数。


0

在Ubuntu 14.04中,我必须进行编辑/etc/default/dnsmasq和设置ENABLED=1

我还把它放在cache-size=1000所有其他我发现的dnsmasq配置文件中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.