使用 Dnsmasq 自建 DNS 的基本配置方法

Trane發表於2017-01-19

本文首發於我的部落格,內容略有改動
原文連結:使用 Dnsmasq 自建 DNS

Dnsmasq 的功能比較多,本文介紹它的 DNS 功能。
有些 Linux 發行版中預裝了 Dnsmasq, 如果沒有可以通過軟體管理器安裝,這裡不贅述。
Dnsmasq 的配置檔案一般在 /etc/dnsmasq.conf
幾個關鍵的引數:

  • port DNS的埠
  • resolv-file 指向另一個檔案,裡面定義了上游 DNS,當遇到本地的 DNS 無法解析的域名,則會向上遊 DNS 進行查詢
  • listen-address 這裡填寫監聽的 ip,如果要應用於所有的網路卡可設為0.0.0.0,或者設為指定的 ip 也可

最為重要的引數就是 address 了。

這個引數即為註冊的 DNS 記錄。
例如:
address=/test.domain.com/192.168.1.1

Dnsmasq 比 SkyDNS (以及修改 hosts 檔案的方案)強大的一點就是支援泛域名解析,例如:
address=/.domain.com/192.168.1.1
會將 domain.com 下的所有子域名都解析到指定的 ip 上,另有配置的除外。

配置好以後重啟一下 Dnsmasq 服務即可生效。

Dnsmasq 可以用於本機作為高階的 hosts 使用,也可搭建在國外的 VPS 上,防止 DNS 汙染。


注意:CentOS7 系統中會有一個預設由 libvirtd 管理的 dnsmasq 服務和一個 systemd 管理的 dnsmasq 服務。建議使用 virsh net-autostart --disable default 命令關閉由 libvirtd 啟動的 dnsmasq,通過 systemctl enable dnsmasq.service 實現開機啟動。

相關文章