本文最后更新于 553 天前,其中的信息可能已经有所发展或是发生改变。
使用的是ghostry/smartdns镜像。
介绍
本项目使用https://github.com/pymumu/smartdns 提供的程序制作.
SmartDNS是一个运行在本地的DNS服务器,SmartDNS接受本地客户端的DNS查询请求,从多个上游DNS服务器获取DNS查询结果,并将访问速度最快的结果返回给客户端,避免DNS污染,提高网络访问速度。 同时支持指定特定域名IP地址,并高性匹配,达到过滤广告的效果。
与dnsmasq的all-servers不同,smartdns返回的是访问速度最快的解析结果。
部署
登录daocloud,发现镜像→Docker hub→搜索镜像,搜索SmartDNS
,选择ghostry/smartdns
点击部署,填写基本信息:
- 应用名称随意
- 版本号选最新,现在是v2020.09.08
选择主机后点击下一步填写应用设置:
- 可以不映射端口
- 容器路径
/smartdns
,主机路径随意,可以先在宝塔面板里创建好文件夹
点击立即部署,等待部署完成。
配置
打开宝塔面板,找到映射的文件夹目录,可以看到自动生成了一个文件名为smartdns.conf
的文件,点击编辑
#https://github.com/pymumu/smartdns/blob/master/etc/smartdns/smartdns.conf
bind-tcp [::]:53 #默认端口不需更改
bind [::]:53
tcp-idle-time 3
cache-size 4096 #缓存大小
prefetch-domain yes #后缀匹配域名
serve-expired yes #缓存是否过期
serve-expired-ttl 0
speed-check-mode tcp:80,tcp:443,ping #测速方法
rr-ttl-min 60 #最小TTL值
rr-ttl-max 86400 #最大TTL值
log-level warn #log等级
#以下自行添加dns服务器IP,以server开头
server 8.8.8.8 -blacklist-ip -check-edns
server-tcp 119.29.29.29
server-tcp 64.6.64.6
#server-tcp 114.114.114.119 #114dns不推荐使用
server-tls 1.1.1.1
server-tls 8.8.4.4
server-tls 9.9.9.9
server-https https://cloudflare-dns.com/dns-query
查看更多dns服务器点击这里,推荐保留一个运营商提供的dns,主路由自动获取的就是
修改完成后保存文件,打开docker管理面板portainer
,找到刚才部署的容器,点击restart
重启,使更改生效。
食用
首先查看这个容器的ip地址,点击name名称进入容器详情,IP address
的值就是这个容器的IP地址
打开AdGuard Home
仪表盘,点击设置→DNS设置,在上游DNS服务器中清空列表,填入smartdns
的IP,点击应用即可。
随着使用时间的增加,解析速度会越来越快,以前都是几百ms的,现在已经缩短到20ms以内了。
当然这个速度依然不算快,正常应该是10ms以内的,以后再优化。