CoreDNS常规用途是用于k8s内的DNS和服务发现,但因为这个东西有很多插件又是go开发的,所以完全可以单独拿来出使用。
CoreDNS的配置语法也非常简单是类Caddy的,这里我把它部署在本地局域网的一台Debian9内,实现无污染的DNS和广告过滤。当然它也支持Windows等其他平台,你直接装在电脑内使用也是可以的。总而言之CoreDNS是一款扩展性很强的工具。
安装supervisor:
apt -y update apt -y install supervisor
下载/解压coredns:
mkdir -p /opt/coredns && cd /opt/coredns wget https://github.com/coredns/coredns/releases/download/v1.6.5/coredns_1.6.5_linux_amd64.tgz tar -xzvf coredns_1.6.5_linux_amd64.tgz
下载hosts文件,用于屏蔽广告域名(不需要屏蔽广告的话可以省略这些步骤)
wget https://github.com/StevenBlack/hosts/archive/2.5.28.tar.gz tar -xzvf 2.5.28.tar.gz cp hosts-2.5.28/hosts ./adblock.hosts
新建一个CoreDNS的配置文件:
nano Corefile
写入如下配置:
. { hosts adblock.hosts { fallthrough } forward . tls://1.1.1.1 tls://1.0.0.1 { tls_servername cloudflare-dns.com health_check 5s } cache 30 log }
注:
1.hosts配置块指定hosts文件,不在hosts文件内的域名全部移交给下一个配置块解析。
2.forward配置块用于DNS转发,将请求转发到支持DoT的DNS上防DNS污染。
配置好了之后新建一个supervisor的配置文件:
nano /etc/supervisor/conf.d/coredns.conf
写入:
[program:coredns] priority=1 directory=/opt/coredns command=/opt/coredns/coredns -conf Corefile autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/log/supervisor/coredns.log
更新supervisor配置然后查看coredns的运行状态,回显RUNNING就OK了:
supervisorctl update supervisorctl status coredns
简单测试一下是否能够正常工作:
未完待续。。因为我发现支持hosts这种格式的广告屏蔽规则不是很多,屏蔽的不彻底。。
LALA
我什么都不卖了,告辞!
最新评论
5211314
能不能教我 一点不会