在ubuntu下用firefox等浏覽器上網,往往比在windows下上網要慢好多,但細心的人會發現,慢的時間是花在DNS查找上面了。那麼我們可以在本機緩存DNS,也就是在本機架設一個DNS代理伺服器。常用的軟體有bind、djbdns、dnsmasq和pdnsd。下面我們來說一下,用pdnsd來架設一個永久的DNS代理伺服器,所謂“永久”,就是說,在系統重新開機以後,本機緩存的DNS仍然存在,不用再去查找真實DNS來重建立立緩存。
1、安裝
sudo apt-get install pdnsd
安裝的時候,它會問你選擇什麼配置,請選擇“manual“。
2、配置pdnsd
sudo gedit /etc/pdnsd.conf
修改
server {
label="resolvconf";
}
為
server {
label="OpenDNS";
ip=208.67.222.222;
ip=208.67.220.220;
timeout=30;
interval=30;
uptest=ping;
ping_timeout=50;
purge_cache=off;
}
label="OpenDNS";
其中“OpenDNS”可以随便寫,一個辨別而已,用于将來的診斷;
ip=208.67.222.222;
ip=208.67.220.220;
這兩行也可以寫成一行ip=208.67.222.222,208.67.220.220;代表真實的DNS伺服器位址,可以有多個。
後面的參數采用預設就可以了。
sudo gedit /etc/default/pdnsd
修改START_DAEMON的值為yes。
3、向resolver添加DNS代理伺服器
sudo gedit /etc/resolv.conf
在首行添加一句:nameserver 127.0.0.1
4、防止resolv.conf被覆寫
如果你啟用了DHCP服務,那麼要
sudo gedit /etc/dhcp3/dhclient.conf
去掉
#prepend domain-name-servers 127.0.0.1;
前面的“#“。
如果你是撥号上網,那麼
sudo gedit /etc/ppp/peers/provider
在 usepeerdns 前面增加# ,也就是把這條語句注釋掉。 以防resolv.conf的設定被pppoe覆寫。
5、啟動pdnsd
sudo /etc/init.d/pdnsd start
6、測試
dig www.baidu.com | grep time
結果顯示:;; Query time: 1 msec
原來的結果:;; Query time: 845 msec