Ubuntu使用dnsmasq作本地DNS緩存


Dnsmasq是一個很實用的小工具,解決局域網的需求看來非常合適,特別是網關和防火牆上。
它同時也可以作為一個dns查詢服務器,雖然不如bind等完善,但基本功能也夠用了。
它可以提供如下幾個實用的功能:

1 提供dns服務

2 優先使用本地自定義dns

3 提供dhcp服務

安裝 dnsmasq加速網絡訪問速度

sudo apt-get install dnsmasq

配置 dnsmasq

修改/etc/resolv.conf文件。

sudo gedit /etc/resolv.conf   

將原有的內容全部注釋,然后在第一行寫上

nameserver 127.0.0.1

也可以使用ubuntu的網絡管理小程序“Network Manager”在桌面右上角有一個它的圖標,右鍵點擊該圖標,選擇“編輯連接”,選擇你所使用的連接,點擊編輯,在“IPv4設置”標簽的“DNS服務器”輸入框中,把原有的DNS服務器刪除,輸入 127.0.0.1

在/etc目錄下新建resolv.dnsmasq文件。 文件的內容為DNS服務器的地址,是真正的DNS服務器,如我的文件內容是:

nameserver 199.91.73.222  
nameserver 42.120.21.30  
nameserver 8.8.8.8  

可以不按幫助文檔所說的執行“dnsmasq-r/etc/resolv.dnsmasq”命令,如果這樣,豈不是每次都得在命令行里輸入,非常麻煩,當然,可以考慮把這個命令寫入“/etc/rc.local”文件中,讓系統每次啟動時幫你運行。 我所使用的方法是編輯“/etc/dnsmasq.conf”文件。

sudo gedit /etc/dnsmasq.conf

找到下面這一項 resolv-file=

用下面的一條語句替換 resolv-file=/etc/resolv.dnsmasq

其實也就是執行dnsmasq命令中-r參數后面的內容。

編輯 /etc/dhcp3/dhclient.conf

sudo gedit /etc/dhcp3/dhclient.conf 

找到下面這一項 #prepend domain-name-servers 127.0.0.1將前面的“#”刪除。這么做的目的是為了在使用自動連接時,能在/etc/resolv.conf文件的第一行添加上“nameserver 127.0.0.1”,這樣,dns緩存依然有效。

編輯 /etc/ppp/peers/dsl-provider

sudo gedit /etc/ppp/peers/dsl-provider 

可能有的系統沒有“/etc/ppp/peers/dsl-provider”文件,而是“/etc/ppp/peers/provider”文件,找到下面這一項 usepeerdns 在前面增加“#”,也就是把這條語句注釋掉,以防resolv.conf的設置被pppoe復蓋。

對於12.04版本
由於該版本已經安裝dnsmasq-base,則必須先修改/etc/NetworkManager/NetworkManager.conf文件

sudo gedti /etc/NetworkManager/NetworkManager.conf  

找到dns=dnsmasq,在前面增加“#”,也就是把這句注釋掉。

sudo gedit /etc/default/dnsmasq

找到IGNORE_RESOLVCONF=yes,這一條要刪除注釋,刪掉#號。

重啟服務:

sudo /etc/init.d/dnsmasq restart

或者

sudo service dnsmasq restart

測試結果:

隨便找一個網址,測試兩次就能看出查詢時間的差異:

dig google.com

兩次返回結果的時間不一樣,第二次一般是0ms;多試幾個網址,證明成功了。

最后,留下自己的dnsmasq.conf設置備份。

listen-address=127.0.0.1
strict-order
#no-hosts
#no-poll
resolv-file=/etc/resolv.dnsmasq.conf

#反電信劫持-114導航
bogus-nxdomain=218.30.64.194
#bogus-nxdomain=67.215.66.132
# Set the cachesize here.
cache-size=2048

#國內指定DNS
server=/cn/114.114.114.114
server=/taobao.com/114.114.114.114
server=/taobaocdn.com/114.114.114.114
server=/tbcache.com/114.114.114.114
server=/tdimg.com/114.114.114.114
server=/weibo.com/114.114.114.114
server=/weibo.cn/114.114.114.114
server=/xunlei.com/114.114.114.114  
    
#國外指定DNS
server=/google.com/42.120.21.30
server=/twitter.com/42.120.21.30
server=/facebook.com/42.120.21.30  
    
#host區段
#本機
address=/tp.set/192.168.2.1
address=/dx.set/192.168.1.1
      
#其他
address=/t66y.com/184.154.128.246
#address=/github.com/192.30.252.131

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM