DNSmasq 的安裝、配置與使用

1. DNSmasq 簡介

DNSmasq 是一個小巧且方便地用於配置DNS和DHCP的工具。咱們在作開發時,常常會把一些域名映射到本地,但咱們知道 /etc/hosts 不支持各類稍微高級一些的配置,好比泛域名解析,你想把 *.hello.me 映射到本地,必須在 hosts 文件裏一個一個地寫,這個就很坑了。html

因此就有了 DNSmasq緩存

2. 安裝

Mac 下直接使用 brew 安裝便可:服務器

brew install dnsmasq

安裝成功後提示:網絡

cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf 
sudo brew services start dnsmasq

3. 配置

3.1 配置文件 /usr/local/etc/dnsmasq.conf

根據上述成功安裝提示照作,生成 /usr/local/etc/dnsmasq.conf 文件,編輯內容以下:工具

# 配置上行DNS,對應no-resolv
resolv-file=/etc/resolv.conf

# resolv.conf內的DNS尋址嚴格按照從上到下順序執行,直到成功爲止
strict-order

# DNS解析hosts時對應的hosts文件,對應no-hosts
addn-hosts=/etc/hosts
cache-size=1024 

# 多個IP用逗號分隔,192.168.x.x表示本機的ip地址,只有127.0.0.1的時候表示只有本機能夠訪問。
# 經過這個設置就能夠實現同一局域網內的設備,經過把網絡DNS設置爲本機IP從而實現局域網範圍內的DNS泛解析(注:無效IP有可能導至服務沒法啓動)
listen-address=192.168.x.x,127.0.0.1  

# 重要!!這一行就是你想要泛解析的域名配置.
address=/hello.me/127.0.0.1

以上幾乎是最簡配置.rest

reolve-file=/etc/resolv.conf 配置上行DNS,假設 /etc/resolv.conf 內容以下:code

nameserver 183.44.22.19

那就是說若是你訪問域名abc.com沒有被dnsmasq解析,它會嘗試訪問 183.44.22.19 去解析。server

3.2 客戶端指定域名服務器/etc/resolv.conf

你的 Mac 可能同時就是你的 DNS 使用者,全部,須要:系統偏好配置->網絡->(你的鏈接)->DNS增長了一個條目:htm

# 局域網其它機器則換成實際dnsmasq的IP地址。
127.0.0.1

通常這一行放到最上面,會優先DNS解析dns

此時,你 ping 一下 hello.medev.hello.me,就會發現全指向了本地。

4. 啓動

注意須要使用 sudo 來啓動,由於權限要求較高。

# 啓動
sudo brew services start dnsmasq

# 重啓
sudo brew services restart dnsmasq

# 中止
sudo brew services stop dnsmasq

若是改動了泛解析規則,重啓 dnsmasq 不會當即看到效果,由於有緩存,能夠稍等即可或清除一下緩存再試

sudo killall -HUP mDNSResponder
相關文章
相關標籤/搜索