系统: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


修改配置文件后需要重启服务

标签: linux, dnsmasq, dns

添加新评论