搭建内网DNS服务器教程
内网DNS服务器的软件有许多,比如Bind9,dnsmasq,PowerDNS等等
而这次搭建内网dns服务的软件CoreDNS,CoreDNS是Golang编写的一个插件式DNS服务器,也是Kubernetes 1.13 后所内置的默认DNS服务器.自己也考虑过使用Bind9,但配置感觉太麻烦了,故选择了比较简单灵活的CoreDNS作为搭建dns服务的软件
下载安装
-
编译安装(不推荐)
# 编译安装首先确保环境中有Golang且版本为1.12或者更高 # 且因为软件编译时会下载来自谷歌的依赖,所以还是不是特别推荐编译安装 git clone https://github.com/coredns/coredns cd coredns make
-
下载安装
从Github下载对应系统的依赖 https://github.com/coredns/coredns/releases
# 下载依赖 wget https://github.com/coredns/coredns/releases/download/v1.7.1/coredns_1.7.1_linux_amd64.tgz # 解压 tar -zxvf coredns_1.7.1_linux_arm.tgz
编译/解压 完成后,都会得到一个coredns 的二进制文件,这个就是CoreDNS软件
域名解析配置
CoreDNS基本参数
./coredns -h
参数 | 解释 |
---|---|
-conf | 指定配置文件(默认为当前目录的 Corefile ) |
-dns.port | 指定 DNS 服务监听端口 |
-pidfile | 指定 pid 文件的存放路径 |
-plugins | 列出已安装的插件 |
-quiet | 不打印日志 |
-version | 显示版本信息 |
域名解析
coredns 所在目录下,新建文件 Corefile
,并且添加一下内容
.:53 {
forward . 8.8.8.8:53
log
}
forward是将DNS消息转发到上游DNS服务器上
当时你也可以添加多个上游DNS服务器
.:53 {
forward . 8.8.8.8:53 223.5.5.5:53 223.6.6.6:53 [2400:3200::1]:53
log
}
在终端输入 ./coredns -conf Corefile 即可运行(未root用户则需要添加sudo)
打开一个新终端,输入 dig @localhost a baidu.com 就可以测试coredns是否运行成功(未安装dig的输入apt-get install dnsutils进行安装)
可以看到,域名解析成功了
内网域名解析
内网的环境比较简单,这里使用hosts插件进行解析
.:53 {
forward . 8.8.8.8:53
hosts {
172.10.162.32 guiyun.test
# ttl
ttl 60
# 重载hosts配置
reload 1m
# 继续执行
fallthrough
}
log
}
如果域名比较多,也可以使用
.:53 {
forward . 8.8.8.8:53
hosts /opt/coredns/hosts
log
}
并在**/opt/coredns/hosts**创建文件
172.10.162.32 guiyun.test
172.10.162.31 admin.guiyun.test
编辑保存运行后可以使用dig命令进行测试
终端,输入dig @localhost a guiyun.test就可以测试
更多的详细用法,可以去官网 进行学习
参考网站
https://blog.csdn.net/enweitech/article/details/84582800
https://draveness.me/dns-coredns/