去广告dns服务器(打造自己的私人DNS, 反毒化,反广告,加速(也
手机如何更改或设置DNS创建自己的私有DNS,杀毒,防广告,提速(可能)
如果你对自己的DNS有更高的要求,或许可以自己创建一个DNS,利用这个DNS做一些反广告的操作,而且因为这个DNS使用的是DNS-Over-TLS(DOT)协议,所以可以防病毒,因为TLS的加密特性可以防止数据在传输过程中被篡改。
构建自己的DNS有两种方式,一种是做公网可访问的DNS服务器,另一种是只做局域网可访问的DNS服务器。
之一种 需要域名和公有云主机。
第二种 需要本地主机(可以是树莓派,可以刷新的电视盒子,本地电脑,不用的旧手机等。).)
这两种 我都做过,因为是局域网,所以我不 我不需要做点什么,所以我不做。不需要与域名匹配的证书,第二种 是因为它是
效果展示
接入
访问 这里有安卓手机和Windows S11电脑两种。安卓手机
小米安卓手机只是 设置 - ;连接到共享 - ;私有DNS - ;专用DNS提供商主机名 然后填写自己域名的点协议DNS。我只有小米手机,所以这种方式不一定适合你,Android9以上的安卓手机应该都有类似私有DNS的选项。
windows11电脑
因为我用的电脑是在我假设了私有dns的局域网内,所以不需要设置公共点协议DNS服务。可以参考33594 sys ops.com/archives/activate-DNS-over-TLS-dot-in-Windows-11/有两种类型的
安装
DNS服务选择。如上所示,本文选择了之一种 。ADGuardHome的优点是有一个web控制台,操作简单,对终端用户友好,因为安装方式和占用资源比第二个稍微复杂一点,用户体验比第二个好很多。这里将介绍这两种 。这两种安装方式可以安装在本地,也可以安装在云主机上。本地安装是局域网DNS服务,反之亦然。值得注意的云主机一般会有安全组(或者说防火墙, DOT协议用的是853TCP端口, 你需要放行。)
获取证书
获得证书的前提是你需要一个域名。建议通过国内云服务商(阿里云、腾讯云等)购买一个域名。).这些云供应商可以申请一个免费的ssl证书,尽管他们可以申请一个免费的let 亲测发现小米 的手机无法连接,并且没有更多错误。个人怀疑小米手机不 没有let ;;的根证书。s encrypt安装在DOT协议的根证书上,所以它可以 t验证证书的有效性, 私有DNS 其他品牌的手机不设置。如果你按照教程做了,测试了,就可以反馈了。云厂商给的免费ssl证书还有一个好处就是有效期一年!虽然小米 s手机 的私人DNS可以 我认不出这封信。s加密证书,它不 不代表这个证书没用,用其他客户端也没问题。
腾讯云ssl免费证书申请参考 https://cloud.tencent.com/document/product/400/6814
申请过程很快,不到十分钟我就找到了。如果是阿里云、华为云等云厂商,可以参考官网 的文档。我用腾讯云的一个小程序申请的,截图如下
证书下来后,可以去腾讯云的控制台下载证书。 Nginx(适用于大多数场景) 我下载的选项是一个压缩包。解压后有以下文件
Dot.exle.com.csr dot.exle.com.key dot.exle.com bundle.crtdot.exle.com捆绑包。PEM假设您的域名是dot.exle.com。本文只需要两个文件,dot.exle.com.key,dot.exle.com _ bundle . CRT,前者是私钥,后者是证书。
安装DNS服务
这里有两种DNS的 。演示CoreDNS,因为它比较简单。CoreDNS
如果你已经收到linux,安装Coredns还是很简单的,因为Coredns只需要一个配置文件,而且是可执行的二进制包。配置文件如下。Tls://。{# tls证书配置tlsdot.exle.com _捆绑包. CRT dot.exle.com.key #将打印一个日志,显示解析的详细信息。log #会将dns查询转发到8.8.8.8,代表所有域名转发。8.8.8.8}然后在这个配置文件的目录下执行coredns。正常操作如下所示。
[root@localhost下载]# corednstls 3360//.85
3CoreDNS-1.10.0linux/amd64, go1.19.1, 596a9f9coredns下载地址: https://github.com/coredns/coredns/releases
下载一个对应版本的coredns即可, 因为coredns是go语言写的, 所以几乎支持所有平台, 比如windows, linux, macos, 安卓手机(推荐termux), 树莓派等.
反广告
coredns怎么屏蔽广告呢? 可以使用coredns的hosts插件, 比如我们准备一个这样的hosts文件
127.0.0.1 baidu.com
然后Coredns配置文件就变成了这样
tls://. { # tls证书配置 tls dot.exle.com_bundle.crt dot.exle.com.key # 会打印日志, 显示解析的详情 log # 将dns查询转发给8.8.8.8, .代表所有域名 hosts adhosts.txt}
然后通过doggo(类似dig, 支持更多的dns协议)的dns查询工具查询一下baidu.com
[root@ye download]# doggo baidu.com @tls://dot.exle.comNAME TYPE CLASS TTL ADDRESS NAMESERVER baidu.com. A IN 3600s 127.0.0.1 dot.exle.com:853
你会发现baidu.com被解析成127.0.0.1了, 这样就达到了广告屏蔽的效果, 所以为了匹配广告你需要准备一些广告域名, 然后将其改成hosts插件支持的格式.
doggo工具下载地址: https://github.com/mr-karan/doggo/releases
加速(也许)
既然能hosts插件能够将指定域名解析成指定的ip地址,那么就可以hosts加速, 可自行搜索hosts加速, 这里就不展开了。
ADGuardHome
ADGuardHome也是用go语言写的, 虽然也能二进制安装, 默认会占用一堆的端口, 比如53, 80等端口, 所有一般使用docker安装.
docker run --name adguardhome\ --restart unless-stopped\ -v /my/own/workdir:/opt/adguardhome/work\ -v /my/own/confdir:/opt/adguardhome/conf\ -p 80:80/tcp 3000:3000/tcp\ -p 853:853/tcp\ -d adguard/adguardhome
上面的命令代码启动adguard/adguardhome容器, 并且将本地的80, 3000, 853等端口映射到容器内, 如果你不想映射同样的端口, 比如80端口已经被占用了, 那么你可以将80:80改成8080:80, 即将8080映射到容器的80端口。/my/own/workdir应该是主机上一个存在的目录,docker的知识这里就不展开了, 大家需有一定的docker使用基础。
ADGuardHome的安装在云主机稍微有点麻烦, 因为初次启动需要本地访问它的3000端口, 如果通过公网访问会发现无法访问, 所以你需要通过ssh 来安装。本人用的是xshell的隧道功能,
这样xshell就会在本地开启一个监听11211端口的socks5 . 然后通过自浏览器设置一个 访问云主机的本地地址就可以连接ADGuardHome的3000端口, 安装完成之后你可以不在映射3000端口
安装完成之后就可以通过设置的用户名密码进行登录了。
详细的安装教程可参考以下链接:
https://www.jianshu.com/p/a52ea033615a
https://sspai.com/post/63088
默认情况只有一个DOH的DNS上游服务器, 国内使用需要添加自定义的DNS列表, 本人只设置了如下三个
# 腾讯dns119.29.29.29# 广东联通210.21.196.6# 阿里dns223.5.5.5
你还可以使用DOT, DOH等协议防止上游DNS毒化, 本人不需要, 因为毒化的一般是国外域名, 而国外域名需要梯子, 所以影响并不大。
反广告
通过控制台的 #34过滤器#34 -gt #34DNS 拦截列表#34 -gt #34添加阻止列表#34就可以添加广告域名列表了, ADGuardHome内置了一些列表, 可以#34从列表中选择#34或者#34添加一个自定义列表#34。本人两者都选择了。
加速(也许)
类似coredns的hosts插件, 添加自定义的域名解析,可以通过#34过滤器#34 -gt #34DNS重写#34实现.添加没有coredns那么方便。
如果真的需要一个私人的DNS服务, 你可能需要考虑以下云主机的地理位置和带宽, 个人建议是选择一个本省的云主机, 一般本省的云主机的ping速度能够搞到50ms以下, 而外省的延迟可能就比较高了, 对于dns解析也许是难以接受的, 因为大部分时间用在了传输, 而带宽就跟使用的人数有关了。
以下优点和缺点: 私人DNS
优点: 完全可控, 查询日志, 控制策略等。 反毒化 反广告 可加速(也许)缺点: 速度相较于运营商的dns要慢 运营商DNS或公网DNS优点: 快缺点: 如果没有特别需求, 无 如果有特别需求, 就是没有私人DNS的优点。去广告的dns 如何防止dns劫持广告