lala.im:使用CoreDNS搭建一个去广告/无污染的DNS

運維技術·VPN代理·lala.im · 2019-12-09 · 116 人浏览

原文地址:https://lala.im/6577.html,請支持原作者!該處僅作轉載。

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这种格式的广告屏蔽规则不是很多,屏蔽的不彻底。。

運維技術 VPN代理 lala.im
Theme Jasmine by Kent Liao