本文首發於我的部落格,內容略有改動
原文連結:使用 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
實現開機啟動。