CoreDns的简单使用

背景

家里的移动网最近早上有点抽风,把所有UDP的DNS请求都劫持并返成内网地址。
只有早上第一次上网的时候会出现,怀疑是劫持软件在缓存过期的bug。

所以自己的目标就是建立一个本地的DNS服务,来处理家里局域网的所有DNS请求

CoreDns 的使用

因为自己简单使用,未做成系统服务。

找到github的地址,下载release版本

创建一个最简单的配置

1
2
3
4
5
. {
forward . 114.114.114.114
reload 6s
log .
}

执行命令

1
sudo ./coredns -conf ./dnsconfig >dnsquery.log

验证:
dig www.biadu.com @127.0.0.1
日志中有结果,返回结果正常

然后可以把家里DHCP的中DNS配置的地址写成这台机器的地址了。

hosts插件的使用

Load example.hosts file in the current directory.

1
2
3
. {
hosts example.hosts
}
1
10.0.0.1 example.org

CoreDns 的感受

自己知识面有限,基于现有认识

  • 配置文件格式特殊,不是通用的格式。类似于nginx的括号嵌套语法,但又没有提供配置文件的验证器。没有提供层级约束说明。我在配置文件是花了点时间的。
  • 默认日志处理的弱鸡。默认输出到标准输出。输出到文件没有直观的写法,我查了别的文章才了解到要结合rsyslog。

基于DNS的基础知识,如zone的概念,和这个软件的使用是很相关的,需要补充背景知识。

参考


CoreDns的简单使用
https://blog.fengcl.com/2022/03/20/coredns-simple-use/
作者
frank
发布于
2022年3月20日
许可协议