Ubuntu Desktop 12.04 использует dnsmasq для выполнения поиска DNS, но он не настроен для кэширования этих результатов. (Я проверил это, используя dig для разрешения имен, и не вижу значительного улучшения времени отклика после первого поиска.) Как настроить dnsmasq под управлением NetworkManager для кэширования результатов поиска DNS?
В Ubuntu 12.10 вы можете включить кэш экземпляра dnsmasq, управляемого NetworkManager, поместив строку
cache-size=1000
(с вашим предпочтительным числом имен вместо 1000) в новый файл в / etc / NetworkManager / dnsmasq.d /. Чтобы активировать это изменение, вы должны выполнить
sudo stop network-manager
sudo killall dnsmasq
sudo start network-manager
или перезагрузиться.
Я смог включить DNS, кэширующийся в Linux Mint 13 (на основе Ubuntu 12.04) использование метода, описанного в первом ответе. Я создал файл /etc/NetworkManager/dnsmasq.d/cachedns
содержа строку cache-size=100
, затем перезапущенный администратор сети. Даже при том, что dnsmasq выполняется администратором сети с трудно кодированным --cache-size=0
на его командной строке, устанавливая размер кэша в файле конфигурации переопределяет то значение. Можно проверить, что это работает путем выполнения этого:
sudo killall -USR1 dnsmasq
tail /var/log/syslog
Необходимо видеть строку, которая похожа на это в системном журнале, показывая размер кэша:
dnsmasq[17808]: cache size 100, 0/2 cache insertions re-used unexpired cache entries.
в 12.04 dnsmasq запускается NetworkManager с жестко заданным (то есть не настраиваемым) параметром - размер кэша = 0 .
manpages для dnsmasq говорит, что установка нулевого размера кеша отключает кеширование. Если вы хотите включить кэширование, вам, вероятно, придется отключить плагин dnsmasq для NetworkManager, чтобы предотвратить запуск NetworkManager dnsmasq, и запустить собственный экземпляр dnsmasq с размером кэша, большим нуля.
здесь вы можете прочитать, как отключить dnsmasq-плагин для NetworkManager: https://askubuntu.com/a/131422/71057
В Ubuntu 14.04 мне пришлось отредактировать /etc/default/dnsmasq
и установить ENABLED=1
. Я также поместил cache-size=1000
туда и во все другие файлы конфигурации dnsmasq, которые я нашел.
Я не хотел обновляться с 12.04, но все же хотел, чтобы dnsmasq управлялся NetworkManager с включенным кэшированием, но, как сказал другой ответ, --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
[ 116] убедитесь, что вы chmod +x /usr/sbin/dnsmasq
, и измените размер кэша с 1000 на любой другой, наслаждайтесь вашей версией LTS с кешем DNS!
Чтобы снова включить кэш (в версии NetworkManager, в которой есть каталог /etc/NetworkManager/dnsmasq.d), на самом деле достаточно поместить файл в этот каталог с содержимым «cache-size = X» Х, равный 150 для значения по умолчанию, dnsmasq будет иметь). Файлы там переопределяют жестко заданные параметры, заданные в командной строке.