pdnsd - это маленький кэширующий dns-сервер, предназначенный в основном для использования на компьютерах с модемным соединением. Его основная задача - ускорять DNS-запросы. Кэш DNS сохраняется при перезагрузках сервера, поэтому если pdnsd постоянно запущен, и Вы посещаете не слишком много разных интернет-узлов, спустя некоторое время pdnsd будет выдавать большинство адресов из кэша, обращаясь к внешним DNS-серверам гораздо реже.
pdnsd можно взять здесь. После сборки и установки редактируем /etc/pdnsd.conf. В секции global должны быть следующие строки:
# local usage only
server_ip="127.0.0.1";
server_port=53;
Сервер будет доступен только для локальных приложений, на 53-м порту localhost.
Следующие строки устанавливают сервера по умолчанию - здесь это 2 корневых DNS-сервера. Желательно установить более близкие к Вам сервера, лучше всего DNS-сервера Вашего провайдера (если Вы не знаете их адресов - обязательно узнайте).
server {
ip="80.78.96.1";
changeable_ip=on;
label="pppdns1";
timeout=30;
purge_cache=off;
}
server {
ip="80.78.97.6";
changeable_ip=on;
label="pppdns2";
timeout=30;
purge_cache=off;
}
Приложения обычно узнают адрес DNS-сервера из файла /etc/resolv.conf. Для того, чтобы по умолчанию использовался pdnsd, надо вписать перед всеми строками nameserver строку
nameserver 127.0.0.1
Еще желательно на всякий случай дописать ниже еще хотя бы один сервер на тот случай, когда pdnsd не будет запущен. Теперь запускаем pdnsd (service pdnsd start), подключаемся к Интернету и проверяем:
$ nslookup -sil gnu.org
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
Name: gnu.org
Address: 199.232.76.164
Во-1-х, здесь мы видим, что как DNS-сервер использован localhost. Во-2-х, при повторном выполнении той же команды адрес будет возвращен почти сразу (т.к. возьмется из кэша).
Для интереса можно время от времени проверять размер кэша (/var/cache/pdnsd/pdnsd.cache). С каждым днем использования он должен становиться все больше и больше:
$ sudo ls -l /var/cache/pdnsd/pdnsd.cache
-rw-rw---- 1 root pdnsd 531292 Май 14 19:28 /var/cache/pdnsd/pdnsd.cache
Такой кэш у меня накопился более чем за полгода активного использования.