默認的狀況下,咱們平時上網用的本地DNS服務器都是使用電信或者聯通的,可是這樣也致使了很多的問題,首當其衝的就是上網時常常莫名地彈出廣告,或者莫名的流量被消耗掉致使網速變慢。其次是部分網站域名不能正常被解析,莫名其妙地打不開,或者時好時壞。php
若是碰上不穩定的本地DNS,還可能常常出現沒法解析的狀況。除了要避免「壞」的DNS的影響,咱們還能夠利用DNS作些「好」事,例如管理局域網的DNS、給手機App Store加速、糾正錯誤的DNS解析記錄、保證上網更加安全、去掉網頁討厭的廣告等等。html
這時候搭建一個屬於本身的本地DNS服務器就十分必要了,本篇文章就來分享一下Dnsmasq安裝與配置方法,利用Dnsmasq來搭建一個屬於本身的本地DNS服務器,享受更乾淨無污染、更智能快速和沒有廣告干擾的DNS解析服務。node
選擇好的本地DNS可讓咱們上網更快更舒心,而對於網站,選擇一個好的DNS域名解析服務也是十分重要:瀏覽器
- 一、DNS排名:十大免費DNS域名解析服務-穩定,可靠,好用的免費DNS服務
- 二、國外DNS:Linode免費DNS使用方法和He.net穩定功能強大的DNS解析服務
- 三、國內DNS:360網站衛士免費DNS和CDN申請使用及CDN緩存沒法切換移動主題
Dnsmasq安裝與配置-搭建本地DNS服務器 享受更乾淨更快無廣告DNS解析緩存
一、執行如下命令在VPS上安裝Dnsmasq:服務器
yum install dnsmasq -y service dnsmasq start
一、Dnsmasq的配置文件是放在 /etc/dnsmasq.conf 中。測試
二、打開編輯,配置:resolv-file=/etc/resolv.dnsmasq.conf,表示dnsmasq 會從這個指定的文件中尋找上游dns服務器。同時取消 strict-order 前面的註冊#號。網站
三、檢查一下no-hosts前面是否是已經有了#號,默認的狀況下是有的,dnsmasq 會首先尋找本地的 hosts 文件再去尋找緩存下來的域名, 最後去上游dns 服務器尋找。
四、設置:listen-address=127.0.0.1,表示這個 dnsmasq 本機本身使用有效。注意:若是你想讓本機所在的局域網的其它電腦也可以使用上Dnsmasq,應該把本機的局域網IP加上去:listen-address=192.168.1.123,127.0.0.1
五、修改好了dnsmasq.conf 後,就能夠將它從新上傳覆蓋原文件了。
六、另外咱們還須要修改/etc/resolv.conf這個文件,執行如下命令:
echo 'nameserver 127.0.0.1' > /etc/resolv.conf cp /etc/resolv.conf /etc/resolv.dnsmasq.conf echo 'nameserver 8.8.8.8' > /etc/resolv.dnsmasq.conf echo 'nameserver 199.91.73.222' > /etc/resolv.dnsmasq.conf cp /etc/hosts /etc/dnsmasq.hosts echo 'addn-hosts=/etc/dnsmasq.hosts' >> /etc/dnsmasq.conf
七、resolv.dnsmasq.conf中設置的是真正的Nameserver,能夠用谷歌、V2EX等公共的DNS。
一、執行如下命令設置Dnsmasq開機啓動並啓動Dnsmasq服務:
chkconfig dnsmasq on /etc/init.d/dnsmasq restart
二、執行命令:netstat -tunlp|grep 53 能夠查看Dnsmasq是否是已經正常啓動:
三、測試:dig www.freehao123.com,第一次是沒有緩存,因此時間是200多。
四、第二次再次測試,由於已經有了緩存,因此查詢時間已經變成了0.
一、本地DNS。將Dnsmasq做爲本地DNS服務器使用,直接修改電腦的本地DNS的IP地址便可。
二、應對ISP的DNS劫持。輸入一個不存在的域名,正常的狀況下瀏覽器是顯示沒法鏈接,DNS劫持會跳轉到一個廣告頁面。先隨便nslookup 一個不存在的域名,看看ISP商劫持的IP地址。
三、接着編輯/etc/dnsmasq.conf文件,將:bogus-nxdomain=123.123.123.123 加入進去,後面的IP是剛剛查詢到的DNS劫持IP地址。
四、重啓dnsmasq,再嘗試打開不存在的域名,這時瀏覽器就會顯示正常的沒法鏈接頁面了。
五、智能DNS加快解析速度。打開/etc/dnsmasq.conf文件,server=後面能夠添加指定的DNS,例如國內外不一樣的網站使用不一樣的DNS。
#國內指定DNS server=/cn/114.114.114.114 server=/taobao.com/114.114.114.114 server=/taobaocdn.com/114.114.114.114 #國外指定DNS server=/google.com/223.5.5.5
六、server=/cn/表示全部的cn域名都使用114這個公共DNS,server=/taobao.com/表示全部的taobao.com域名都用114,223.5.5.5 是阿里雲的公共DNS,你能夠換成其它的。
七、屏蔽網頁廣告。將指廣告的URL指定127這個IP,就能夠將網頁上討厭的廣告給去掉了。
address=/ad.youku.com/127.0.0.1 address=/ad.iqiyi.com/127.0.0.1
八、指定域名解析到特定的IP上。這個功能可讓你控制一些網站的訪問,非法的DNS就常常把一些正規的網站解析到不正確IP上。
address=/freehao123.com/123.123.123.123
九、內網DNS。首先將局域網中的全部的設備的本地DNS設置爲已經安裝Dnsmasq的服務器IP地址。而後修改已經安裝Dnsmasq的服務器Hosts文件:/etc/hosts,指定域名到特定的IP中。
十、例如想讓局域網中的全部用戶訪問www.freehao123.com時跳轉到192.168.0.2,添加:192.168.0.2 www.freehao123.com在Hosts文件中既可,整個過程也能夠說是「DNS劫持」。
[qiangjian@be001 ~]$ dig g.cn ; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> g.cn ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42317 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 4, ADDITIONAL: 8 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;g.cn. IN A ;; ANSWER SECTION: g.cn. 234 IN A 203.208.40.151 g.cn. 234 IN A 203.208.40.152 g.cn. 234 IN A 203.208.40.143 g.cn. 234 IN A 203.208.40.159 ;; AUTHORITY SECTION: g.cn. 86334 IN NS ns3.google.com. g.cn. 86334 IN NS ns1.google.com. g.cn. 86334 IN NS ns2.google.com. g.cn. 86334 IN NS ns4.google.com. ;; ADDITIONAL SECTION: ns2.google.com. 345210 IN A 216.239.34.10 ns3.google.com. 101918 IN A 216.239.36.10 ns4.google.com. 97664 IN A 216.239.38.10 ns1.google.com. 97664 IN AAAA 2001:4860:4802:32::a ns2.google.com. 155008 IN AAAA 2001:4860:4802:34::a ns3.google.com. 94591 IN AAAA 2001:4860:4802:36::a ns4.google.com. 94591 IN AAAA 2001:4860:4802:38::a ;; Query time: 1 msec #查詢時間從86 msec到 1msec ;; SERVER: 10.55.21.254#53(10.55.21.254) ;; WHEN: Thu Jun 28 15:01:22 CST 2018 ;; MSG SIZE rcvd: 339
一、Dnsmasq做爲本地DNS服務器安裝方便,操做簡單,改動的地方也不是不少,若是用國內的VPS來搭建本地DNS,響應的速度會更快,也更穩定。
二、Dnsmasq的功能強大,反DNS劫持、加快解析速度、屏蔽廣告、控制內網DNS、強制域名跳轉到特定IP上等這些功能在咱們的實際的生活中都是頗有用的。