一、安装coredns
1、部署二进制
wget https://ghproxy.homeboyc.cn/https://github.com/coredns/coredns/releases/download/v1.11.1/coredns_1.11.1_linux_amd64.tgz
tar -xf coredns_1.11.1_linux_amd64.tgz -C /usr/local/bin/
useradd coredns -s /sbin/nologin
mkdir /etc/coredns/
chown coredns:coredns -R /etc/coredns
2、配置Corefile
cat > /etc/coredns/Corefile << EOF
.:53 {
# 绑定所有接口
bind 127.0.5.3
# hosts 插件: https://coredns.io/plugins/hosts/
hosts {
# 自定义 duanshuaixing.top 子域名解析
# 因为解析的域名少我们这里直接用hosts插件即可完成需求
# 如果有大量自定义域名解析那么建议用file插件使用 符合RFC 1035规范的DNS解析配置文件
192.168.86.2 www.duanshuaixing.top
# ttl
ttl 60
# 重载hosts配置
reload 1m
# 继续执行
fallthrough
}
# file enables serving zone data from an RFC 1035-style master file.
# 最后所有的都转发到系统配置的上游dns服务器去解析
#forward . 8.8.8.8 #解析到互联网dns
forward . /etc/resolv.conf #解析到本地dns
# 缓存时间ttl
cache 120
# 自动加载配置文件的间隔时间
reload 6s
# 输出日志
log
# 输出错误
errors
}
duanshuaixing.com:53 {
bind 127.0.5.3
reload
file /etc/coredns/duanshuaixing.com
log
}
EOF
cat >/etc/coredns/duanshuaixing.com <<EOF
; Start of Authority Record
@ IN SOA ns1.duanshuaixing.com. admin.duanshuaixing.com. (
2022020101 ; Serial number: 日期和序列
3600 ; Refresh interval: 区域使用站之间同步的时间
1800 ; Retry interval: 失败的同步之后重试的间隔时间
604800 ; Expire time: 在主服务器的数据经过这段时间没有被备份后,备份服务器视情况删除数据
3600 ; Negative caching TTL: 在负面查询结果的生存期
)
; Name Server Record (解析出来的IP供其他主机找到这个域名的服务器)
@ IN NS ns1.duanshuaixing.com.
; Address Records (A Records 包含主机(主机名或域名)对应的IPv4地址(如192.0.2.1))
ns1 IN A 192.0.2.1
www IN A 192.0.2.2
; Mail Exchange Record (MX record.指定处理这个域名邮件的邮箱服务器,优先级为10的邮箱服务器)
@ IN MX 10 mail.duanshuaixing.com.
mail IN A 192.0.2.3
EOF
3、配置systemd管理coredns
cat > /lib/systemd/system/coredns.service << EOF
[Unit]
Description=CoreDNS DNS server
Documentation=https://coredns.io
After=network.target
[Service]
PermissionsStartOnly=true
LimitNOFILE=1048576
LimitNPROC=512
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
User=coredns
WorkingDirectory=/etc/coredns/
ExecStart=/usr/local/bin/coredns -conf=/etc/coredns/Corefile
ExecReload=/bin/kill -SIGUSR1 \$MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
二、测试
dig www.duanshuaixing.top @127.0.5.3
dig mail.duanshuaixing.top @127.0.5.3