之前設置dnsmasq,一直沒有奏效,后來摸索了一下,初步發現它的原理:
正常的流程應該是像這樣的,先由client來發送DNS請求到網關,然后網關的dnsmasq處理這個請求,
再根據設置決定如何處理這個請求。
但是,在下面這種情況下,dnsmasq就沒有作用了:
當你在接口-LAN里面設置了序號為6的option,也就是dns服務器地址設置,比如 6,8.8.8.8,那么客戶端被通告
的DNS服務器就是8.8.8.8,客戶端的所有請求都會發送到8.8.8.8,而不是發送到網關。
就像這個樣子:
若這里不填寫的話,客戶端的請求會先發送到網關,然后由網關決定。這里的網關指的是路由器。
也就是像下面這個樣子:
當client的dns服務器地址是網關時,網關必須做出相應的處理,不然客戶端的dns請求得不到回應,
也就會導致無法訪問網站。
當只設置一個dns的時候,這樣和指派給客戶端dns地址的效果是一樣的。
dnsmasq的強大之處之一是可以選擇多個dns來解析,比如這里將baidu和163交給114dns解析,其他交給8.8.8.8來解析。