$> sudo dnf install dnsmasq -y # 安装 Dnsmasq
$> sudo cp /etc/dnsmasq.conf{,bak} # 先把配置文件备份一份
$> sudo vim /etc/dnsmasq.conf
# 严格按照 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止
strict-order
# 监听的 IP 地址
listen-address=127.0.0.1
# 设置缓存大小
cache-size=10240
# 泛域名解析,访问任何 baidu.com 域名都会被解析到 6.6.6.6
address=/baidu.com/6.6.6.6
域名解析默认读取 /etc/hosts 文件到本地域名配置文件(不支持泛域名)。
DNS 配置默认读取 /etc/resolv.conf 上游 DNS 配置文件,如果读取不到 /etc/hosts 的地址解析,就会转发给 resolv.conf 进行解析地址。
$ sudo vim /etc/resolv.conf # DNS 配置文件
# 这些都是常用的DNS,可以配置很多
nameserver 127.0.0.1 # 一定要放在第一个
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 1.1.1.1
$> sudo systemctl enable --now dnsmasq # 启动服务
Created symlink from /etc/systemd/system/multi-user.target.wants/dnsmasq.service to /usr/lib/systemd/system/dnsmasq.service.
Dnsmasq 还有一项非常有用的功能就是可以对已经解析过的域名进行缓存,下次在访问这个域名的时候就可以直接返回 IP 地址,而不再需要经过 DNS 查询。