自建DNS服务器
系统: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
修改配置文件后需要重启服务