在Centos7使用DNS over TLS(DoT)


本文将详细介绍如何在Centos7使用DNS over TLS(DoT)

dnsproxy

1、安装dnsproxy

1
2
3
4
wget https://github.com/AdguardTeam/dnsproxy/releases/download/v0.48.0/dnsproxy-linux-amd64-v0.48.0.tar.gz
tar xvf dnsproxy-linux-amd64-v0.48.0.tar.gz #解压
mv linux-amd64 dnsproxy #重命名
cd ./dnsproxy

2、前台启动

1
./dnsproxy -l 127.0.0.1 -u tls://xxx -p 555 --cache --refuse-any #xxx填入对应的链接,如controD家的,555为自定义端口,如用默认的53则不需要-p参数

3、测试

1
2
yum install bind-utils -y #没有dig命令则执行安装
dig google.com @127.0.0.1 -p 555 #555对应上面的启动参数,有返回ANSWER SECTION则说明成功了

4、挂后台启动
(1)pm2

1
2
3
4
5
6
wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh #获取nvm
reboot
#下面的是重启后执行
nvm install 16 # 安装nodejs
npm i pm2 -g #安装pm2
pm2 start --name dnsproxy "./dnsproxy -l 127.0.0.1 -u tls://xxx -p 555 --cache --refuse-any" #启动,请注意dnsproxy的路径

(2)screen

1
2
3
4
5
yum install screen
screen -S dnsproxy #新建一个叫dnsproxy的session
cd ./dnsproxy #进入目录
./dnsproxy -l 127.0.0.1 -u tls://xxx -p 555 --cache --refuse-any #启动
最后按Ctrl+a后d即可退出screen,其他命令请自行搜索

control D官方出品的ctrld

1、安装ctrld

1
2
3
wget https://github.com/Control-D-Inc/ctrld/releases/download/v1.1.0/ctrld_1.1.0_linux_amd64.tar.gz
tar xvf ctrld_1.1.0_linux_amd64 #解压
cd ./ctrld_1.1.0_linux_amd64

2、前台启动

1
2
./ctrld run #先执行一次生成配置文件
vim ./ctrld.toml #编辑文件,参考官方文档(https://github.com/Control-D-Inc/ctrld#usage)设置

3、测试和后台和dnsproxy方式大同小异,这里不在重复

收尾

1、编辑/etc/resolv.conf,删除原有的nameserver,然后填入nameserver 127.0.0.1,保存即可,如果是默认端口53即可使用,自定义的看2
2、自定义端口的可以安装dnsmasq进行分流
3、最后推荐下CONTROL D,几乎可以解锁你想要的流媒体,实在不行还有自定义规则,打造自己的DNS