系统：Ubuntu 20.04.4 LTS 软件：dnsmasq 安装dnsmasq apt install dnsmasq -y 操作dnsmasq的常用命令 service dnsmasq status # 查看状态 service dnsmasq stop # 停止 service dnsmasq restart # 重启 service dnsmasq start # 启动 关闭systemd-resolve 因为systemd-resolve服务会占用53端口，如果我们的DNS服务要绑定到0.0.0.0上，就会有冲突。 systemctl stop systemd-resolved # 关闭systemd-resolve systemctl disable systemd-resolved # 也可以用mask完全屏蔽 修改配置 安装好dnsmasq之后，默认的配置在/etc/dnsmasq.conf 创建一个目录，用来放自定义的dnsmasq配置文件 mkdir /data/dnsmasq 创建上级DNS配置文件 touch /data/dnsmasq/resolv.conf 内容如下 nameserver 119.29.29.29 nameserver 114.114.114.114 nameserver 8.8.8.8 创建dnsmasq.d目录，用来存放自定义的配置 mkdir /data/dnsmasq/dnsmasq.d 创建自定义hosts文件 touch /data/dnsmasq/dnsmasq.hosts 之后修改配置文件 # 端口，默认53 port=53 # 上级DNS配置 resolv-file=/data/dnsmasq/resolv.conf # 开启严格顺序，这样查询上级DNS会从上到下依次查询 strict-order # 修改监听配置，0.0.0.0允许任何IP访问 listen-address=0.0.0.0 # 自定义host addn-hosts=/data/dnsmasq/dnsmasq.hosts # 指向自定义配置目录 conf-dir=/data/dnsmasq/dnsmasq.d,*.conf 创建解析 解析说明： # SRV 记录 #srv-host=<_service>.<_prot>.[<domain>],[<target>[,<port>[,<priority>[,<weight>]]]] # A, AAAA 和 PTR 记录 #host-record=<name>[,<name>....],[<IPv4-address>],[<IPv6-address>][,<TTL>] # TXT 记录 #txt-record=<name>[[,<text>],<text>] # PTR 记录 #ptr-record=<name>[,<target>] #naptr-record=<name>,<order>,<preference>,<flags>,<service>,<regexp>[,<replacement>] # CNAME 别名记录 #cname=<cname>,<target>[,<TTL>] 比如说我现在需要把test.ibfpig.com通过A记录解析到本地的127.0.0.1 创建一个conf文件，比如ibfpig_com.conf 内容如下： host-record=test.ibfpig.com,127.0.0.1 比如说我现在需要把*.ibfpig.top这样的泛域名解析到192.168.1.1 就可以追加内容如下： address=/.ibfpig.top/192.168.1.1 修改配置文件后需要重启服务