安装下载
本文不适合ubuntu22,22版本可以看专栏下其他文章的教程
apt-get install dnsmasq #不同系统下载方式不一样
若已安装,可输入 apt-get update 进行升级
配置
vim /etc/dnsmasq.conf #核心配置文件
修改配置项
# resolv-file 定义dnsmasq从哪里获取上游DNS服务器地址,默认从/etc/resolv.conf获取
resolv-file=/etc/resolv.dnsmasq.conf
# strict-order 表示严格按照 resolv-file 文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止
strict-order
#listen-address 定义dnsmasq监听地址,默认监听本机所有网卡。局域网内主机若要使用dnsmasq服务时,指定本机的IP地址
listen-address=10.100.129.31
# 配置网络DNS
server=114.114.114.114
server=8.8.8.8
# address 启用泛域名解析,即自定义解析a记录,真正用来配置你想要的IP对的域名
# 这里配置了不用配置hosts也可以,直接不用管,默认就行
address=/demo.com/10.100.129.31
# 或者这样
#对xiaoz.me进行泛解析,只要是后缀匹配就行
address=/*.xiaoz.me/192.168.20.138
小提示:
listen-address
详细说明
设置 listen-address=127.0.0.1, 表示这个 dnsmasq 本机自己使用有效;
如果还需要让局域网内其他的服务器也能够首先访问这个 dnsmasq 来进行域名解析如何配置? listen-address=192.168.1.100 (dnsmasq 所在服务器局域网内 ip), 好吧, 这样你本机配置的 127.0.0.1 就没效果了… 如果设置为 listen-address=127.0.0.1 那局域网内其他服务器就无法访问到这个 dnsmasq 了, 其实应该这样设置 listen-address=192.168.1.100,127.0.0.1 这样你就能双方都满足了, 不过需要注意的一点是, 如果 dnsmasq 所在服务器在局域网的 ip 地址变更了与配置文件中的不一样, 那么理所当然的再使用配置文件中的那个 ip, 局域网内其他服务器也就找不到这台 dnsmasq ,也就无法利用本地的 dns 缓存了
vim /etc/resolv.dnsmasq.conf #配置dns地址,也就是主机地址
具体配置
nameserver 127.0.0.1
nameserver 10.100.129.31
启动/重启/关闭命令
#启动
/etc/init.d/dnsmasq start
#停止
/etc/init.d/dnsmasq stop
#重新启动
/etc/init.d/dnsmasq restart
测试
# 前边配置用来解析IP的域名
nslookup test.bitcq.net
扩展DHCP(选配)
DHCP配置,用来分配给网关分配地址的,如果需要可以配置
$ vi /etc/dnsmasq.conf
# 使用本地网卡 IP 地址作为 DHCP 服务器
interface=ens192
# 指定 DHCP 范围,这里为 10.2.0.10 到 10.2.0.255 自定义
dhcp-range=10.2.0.10,10.2.0.255,12h
# 指定默认网关 自定义
dhcp-option=3,10.2.0.1