当前位置:首页 > 文章列表 > 文章 > linux > Linux安装CoreDNS教程

Linux安装CoreDNS教程

2026-05-25 17:10:12 0浏览 收藏
本文详细介绍了在Linux系统上安装与配置CoreDNS的两种主流方式——直接下载预编译二进制和通过Go源码编译,并指导用户编写精简高效的Corefile配置文件,最后以systemd服务形式实现稳定、自动化的DNS服务部署;无论你是追求轻量可控的运维人员,还是需要高度定制化DNS功能的开发者,这篇实操性强、步骤清晰的教程都能助你快速搭建一个现代、高性能且易于维护的DNS解析服务。

Linux怎么安装CoreDNS_Linux CoreDNS服务安装配置方法教程【高级】

如果您需要在Linux系统上部署轻量、高性能的DNS服务,CoreDNS是一个现代且可扩展的选择。以下是安装与配置CoreDNS的具体操作步骤:

一、使用包管理器安装CoreDNS

CoreDNS官方不提供主流发行版的原生包,但可通过二进制下载或第三方仓库安装。部分Linux发行版(如Arch Linux)已将CoreDNS纳入AUR或社区仓库;其他系统推荐直接获取预编译二进制文件,确保版本可控且无依赖冲突。

1、打开终端,创建专用目录并进入:
mkdir -p /opt/coredns && cd /opt/coredns

2、下载最新稳定版CoreDNS二进制文件(以v1.11.3为例):
wget https://github.com/coredns/coredns/releases/download/v1.11.3/coredns_1.11.3_linux_amd64.tgz

3、解压并提取coredns可执行文件:
tar -xzf coredns_1.11.3_linux_amd64.tgz

4、赋予执行权限:
chmod +x coredns

5、验证是否可运行:
./coredns -version

二、通过Go环境源码编译安装

该方式适用于需定制插件、调试底层行为或运行非x86_64架构的场景。编译过程生成静态链接二进制,不依赖系统glibc,兼容性更强。

1、确认已安装Go 1.20或更高版本:
go version

2、克隆CoreDNS官方代码仓库:
git clone https://github.com/coredns/coredns.git && cd coredns

3、检出稳定发布标签(例如v1.11.3):
git checkout v1.11.3

4、执行编译:
go build

5、检查生成的二进制文件:
ls -l coredns

三、配置CoreDNS基础服务文件

CoreDNS通过纯文本Corefile定义服务行为,包括监听地址、插件启用顺序及区域策略。默认配置支持本地解析与上游转发,无需额外依赖数据库或区域文件。

1、在/opt/coredns/目录下创建Corefile配置文件:
touch Corefile

2、写入最小可用配置(监听53端口,启用log和health插件,转发所有查询至114.114.114.114):
echo -e ". {\n log\n health\n forward . 114.114.114.114\n}" > Corefile

3、测试配置语法是否合法:
./coredns -validate -conf Corefile

4、若输出Corefile is valid,表示配置无误。

四、以Systemd服务方式运行CoreDNS

将CoreDNS注册为systemd服务可实现开机自启、进程守护与日志集成,符合生产环境管理规范。

1、创建systemd单元文件:
sudo tee /etc/systemd/system/coredns.service [Unit]
Description=CoreDNS DNS server
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/coredns
ExecStart=/opt/coredns/coredns -conf /opt/coredns/Corefile
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

2、重载systemd配置:
sudo systemctl daemon-reload

3、启用并启动服务:
sudo systemctl enable coredns
sudo systemctl start coredns

4、检查服务状态是否为active (running):
sudo systemctl status coredns

五、配置客户端指向CoreDNS服务器

使本机或其他局域网设备将DNS查询发送至刚部署的CoreDNS实例,需修改其resolv.conf或网络接口配置,确保DNS请求路径生效。

1、临时修改当前会话DNS(仅限本机测试):
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf

2、验证解析功能是否正常:
dig @127.0.0.1 google.com +short

3、若返回IP地址,说明CoreDNS已响应查询;若超时或报错,请确认防火墙未拦截UDP/TCP 53端口:
sudo ss -tuln | grep :53

4、如使用firewalld,放行DNS服务:
sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload

本篇关于《Linux安装CoreDNS教程》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注golang学习网公众号!

Hyperf配置多Redis集群实例方法Hyperf配置多Redis集群实例方法
上一篇
Hyperf配置多Redis集群实例方法
HTML中使用SpeechRecognition API时,可以通过lang属性指定语音识别的目标语言。该属性接受一个表示语言代码的字符串,例如:en-US:美国英语zh-CN:简体中文es-ES:西班牙语(西班牙)fr-FR:法语(法国)示例代码<script>
  const recognition = new (window.SpeechRecognition || window.webki
下一篇
HTML中使用SpeechRecognition API时,可以通过lang属性指定语音识别的目标语言。该属性接受一个表示语言代码的字符串,例如:en-US:美国英语zh-CN:简体中文es-ES:西班牙语(西班牙)fr-FR:法语(法国)示例代码