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