1、下載二進制文件
wget https://github.com/coredns/coredns/releases/download/v1.5.0/coredns_1.5.0_linux_amd64.tgz tar zxf coredns_1.5.0_linux_amd64.tgz -C /usr/bin/
2、創建用戶
useradd coredns -s /sbin/nologin
3、編輯/etc/coredns/Corefile
.:53 { # 綁定interface ip bind 127.0.0.1 # 先走本機的hosts # https://coredns.io/plugins/hosts/ hosts { # 自定義sms.service search.service 的解析 # 因為解析的域名少我們這里直接用hosts插件即可完成需求 # 如果有大量自定義域名解析那么建議用file插件使用 符合RFC 1035規范的DNS解析配置文件 10.6.6.2 sms.service 10.6.6.3 search.service # ttl ttl 60 # 重載hosts配置 reload 1m # 繼續執行 fallthrough } # file enables serving zone data from an RFC 1035-style master file. # https://coredns.io/plugins/file/ # file service.signed service # 最后所有的都轉發到系統配置的上游dns服務器去解析 forward . /etc/resolv.conf # 緩存時間ttl cache 120 # 自動加載配置文件的間隔時間 reload 6s # 輸出日志 log # 輸出錯誤 errors }
更新插件使用:https://github.com/coredns/coredns
4、編輯/usr/lib/systemd/system/coredns.service
[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 ExecStart=/usr/bin/coredns -conf=/etc/coredns/Corefile ExecReload=/bin/kill -SIGUSR1 $MAINPID Restart=on-failure [Install] WantedBy=multi-user.target
5、啟動coredns
systemctl enable coredns systemctl start coredns systemctl status coredns