您当前的位置:首页 > 电脑百科 > 网络技术 > 网络软件

一款好用的DNS服务器-SmartDNS

时间:2020-11-24 13:06:35  来源:  作者:

公司使用DNSmasq作为内网DNS服务器,前一段时间收到同事各种吐槽,弄得我颜面扫地。具体有下面几种异常:

  • 解析超时,上游配置腾讯公共DNS
aneirin@host-1:~$ dig @119.29.29.29 www.baidu.com

; <<>> DiG 9.11.5-P4-5.1+deb10u1-Debian <<>> @119.29.29.29 www.baidu.com
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
  • 解析国外域名偶尔失败,上游使用百度公共DNS
aneirin@host-1:~$ dig @180.76.76.76 www.linuxtechi.com

; <<>> DiG 9.11.5-P4-5.1+deb10u1-Debian <<>> @180.76.76.76 www.linuxtechi.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 55999
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.linuxtechi.com.		IN	A
......
  • 配置两台上游DNS,一台阿里的,一台谷歌的,dnsmasq开启“--all-servers”选项,

偶尔出现“www.baidu.com”解析到国外IP的情况

一款好用的DNS服务器-SmartDNS

百度解析到国外IP

总结就是国内的公共DNS服务器解析国外域名偶尔出现解析超时或给出错误IP,国外的DNS服务器会将国内的域名解析成国外IP(谷歌宣称他们可以根据请求来源给出最优的IP地址,但工作中多次出现国内域名解析到国外IP的情况,如果有窍门,欢迎读者指点)。

痛点

上面的问题有两点需要解决,一是配置多个上游DNS服务器,取得响应最快的结果,这点dnsmasq就可以满足,它可以配置两个以上的DNS上游服务器,加上“--all-servers”选项,响应最快的返回结果将发给客户端。

--all-servers
By default, when dnsmasq has more than one upstream server available, it will send queries to just one server. Setting this flag forces dnsmasq to send all queries to all available servers. The reply from the server which answers first will be returned to the original requester.

这里解决了超时和“SERVFAIL”的问题,但没有解决返回非最优IP的问题,谷歌的公共DNS可能会缓存“www.baidu.com”的结果,这样就会出现返回速度比国内公共DNS快的情况,但这时客户端得到的IP很可能是国外的,导致请求变慢。如果服务器在将解析结果返回给客户端前,先做一个测试,比如ping测试或更高层的测试,测试性能最优的结果返回给客户端,这就完美了!

解决痛点-SmartDNS

在github上溜达,还真发现了这么一款软件-SmartDNS,国人开发的,必须赞一个。

下面介绍来自SmartDNS:

“SmartDNS是一个运行在本地的DNS服务器,SmartDNS接受本地客户端的DNS查询请求,从多个上游DNS服务器获取DNS查询结果,并将访问速度最快的结果返回给客户端,提高网络访问速度。 同时支持指定特定域名IP地址,并高性匹配,达到过滤广告的效果。
与dnsmasq的all-servers不同,smartdns返回的是访问速度最快的解析结果。

为了最小化对现有配置的更改,我将SmartDNS部署在和dnsmasq不同的主机上,并将SmartDNS作为dnsmasq的上游DNS服务器。SmartDNS的安装比较简单,配置项也比较丰富,这里主要使用软件的“域名预取”和“最快结果返回”功能。下面是配置文件(省略了冗长的注释),

bind [::]:53
cache-size 4096
# 开启域名预取,smartdns将在域名ttl即将超时的时候,再次发送查询请求,并缓存查询结果供后续使用
prefetch-domain yes 
# 上游DNS返回多个结果时,使用ping方式作为测速方法
speed-check-mode ping 
log-level info
server 223.5.5.5
server 223.6.6.6
server 119.29.29.29
server 8.8.8.8
server 8.8.4.4

配置文件中,配置了多个上游DNS服务器,有国内的也有国外的,并使用ping方式作为查询结果的测速方法,这样不仅解决了“timeout”和“SERVFAIL”的问题,也解决了解析国内域名返回国外IP的问题。软件上线了有一个多月,再也没有先前的问题出现,而且同事也反馈访问国内网站快了一些,容我偷乐下!

SmartDNS还有不少高级的功能,自己没有做更多测试,感兴趣读者可以自行上github学习。

希望这篇文章可以帮到正在努力的你,欢迎关注和评论!



Tags:DNS服务器   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、导读在使用k8s部署springboot+redis简单应用这篇文章中,spring boot连接redis是直接使用的IP连接,那么可不可以直接使用服务名称进行连接呢?答案是可以的,这就是k8s集群范围...【详细内容】
2021-01-04  Tags: DNS服务器  点击:(171)  评论:(0)  加入收藏
公司使用dnsmasq作为内网DNS服务器,前一段时间收到同事各种吐槽,弄得我颜面扫地。具体有下面几种异常: 解析超时,上游配置腾讯公共DNSaneirin@host-1:~$ dig @119.29.29.29 www....【详细内容】
2020-11-24  Tags: DNS服务器  点击:(187)  评论:(0)  加入收藏
搭建自己的DNS服务器是一个很常见的诉求,尤其是在公司内部。Linux下架设DNS服务器通常是使用BIND程序来实现,BIND是美国加利福尼亚大学伯克利分校开发的软件,是一套域名服务器...【详细内容】
2020-10-15  Tags: DNS服务器  点击:(104)  评论:(0)  加入收藏
微软在7月14日发布了针对Windows Server的重要安全补丁CVE-2020-1350,修复了一个17年前的Windows DNS服务器的安全漏洞。这个漏洞是在今年5月由以色列安全公司Check Point所...【详细内容】
2020-07-17  Tags: DNS服务器  点击:(73)  评论:(0)  加入收藏
合理的运用DNS服务器可以有效提高网站加载的速度,安全保障和拦截广告也是大厂们的初衷。 每个人所归属地和运营商不同适用度也不一样,所以我不去做数据评测。盘点国内外最受欢...【详细内容】
2020-05-07  Tags: DNS服务器  点击:(90)  评论:(0)  加入收藏
DNS 的全称是 Domain Name System 或者 Domain Name Service,它主要的作用就是将人们所熟悉的网址 (域名) “翻译”成电脑可以理解的 IP 地址,这个过程叫做 DNS 域名解析。优...【详细内容】
2020-05-07  Tags: DNS服务器  点击:(319)  评论:(0)  加入收藏
Google Public DNS:8.8.8.8、8.8.4.4Norton DNS:198.153.192.1、198.153.194.1OpenDNS:208.67.222.222、208.67.220.220OpenDNS Family:208.67.222.123、208.67.220.123Comodo S...【详细内容】
2020-05-07  Tags: DNS服务器  点击:(83)  评论:(0)  加入收藏
DNS是网络中常用的服务器之一,主要使用它来做域名解析,包括正向解析(域名到IP)和方向解析(IP到域名),下面就来给大家简单解释DNS配置过程,大家可以跟我一起来学。1、安装bind服务 安...【详细内容】
2020-03-01  Tags: DNS服务器  点击:(95)  评论:(0)  加入收藏
DNS也就是域名解析服务器,这个东西的存在,使我们上网变得非常方便。再也不需要去记下复杂的IP了。而同样,DNS也影响着我们的网速,那么今天,小编就给大家推荐一个DNS服务器。这...【详细内容】
2020-02-25  Tags: DNS服务器  点击:(96)  评论:(0)  加入收藏
1.安装bind服务# yum install -y bind bind-chroot bind-utils2.chroot 环境为了系统的安全性?虑,一般来说目前各主要 distributions 都已经自动的将你的 bind 相关程序给他...【详细内容】
2020-02-24  Tags: DNS服务器  点击:(68)  评论:(0)  加入收藏
▌简易百科推荐
说到远程控制,首先你会想到的是什么?是TeamViewer 还是向日葵?抑或是QQ远程还是anydesk?对,就在不久前,我们熟知的都是以上的产品,但是只2020年开始,一款新的远控产品ToDesk进入到我...【详细内容】
2021-12-27  网管世界    Tags:ToDesk   点击:(1)  评论:(0)  加入收藏
# 1. nps-npc1.1 简介nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh...【详细内容】
2021-12-22  大数据推荐杂谈    Tags:内网穿透   点击:(8)  评论:(0)  加入收藏
“磨刀不误砍柴工”。 优秀的工具有助于提高工作效率,安全工程师也需要优秀的安全软件来提高工作效率。 在具体的工作场景中,有很多种选择,这里有10种开源的免费安全工具,不仅可...【详细内容】
2021-11-23  山东云管家官方    Tags:安全工具   点击:(33)  评论:(0)  加入收藏
火绒安全软件是一款小巧精悍、独立纯粹的国产安全软件.有很多网友都下载安装了火绒安全软件使用.那么火绒安全软件怎么样呢,火绒安全软件好用吗?下面小编就给大家分析下详解...【详细内容】
2021-11-03  装机吧    Tags:火绒   点击:(34)  评论:(0)  加入收藏
背景上次给大家介绍了实现基础的运维系统功能&mdash;webssh,今日书接上回,继续给大家介绍一个web远程ssh终端录像回放功能。 一、思路网上查了一下资料,搜索了一下关于实现webs...【详细内容】
2021-10-13  小堂运维笔记    Tags:ssh终端   点击:(40)  评论:(0)  加入收藏
QuickPing快速Ping扫描器QuickPing,哪些地址已经使用,哪些可用,图形界面非常直观,而且可以导出列表,该软件体积很小,可以快速的知道网段内哪些主机已经开启,ping成功的即显示出不同...【详细内容】
2021-10-11  海南弱电李工    Tags:网管   点击:(66)  评论:(0)  加入收藏
1、每个项目根据现场的网络环境不同,需要定义不同的IP地址,通过此工具可以快速配置。而且有助于做项目实施资料。2、以前连接过的wifi密码自带记忆功能,通过检索对应的WiFi名字...【详细内容】
2021-10-08  IT游侠    Tags:局域网管理   点击:(49)  评论:(0)  加入收藏
01概述无论是开发还是测试,在工作中经常会遇到需要抓包的时候。本篇文章主要介绍如何在各个平台下,高效的抓包。目前的抓包软件总体可以分为两类: 一种是设置代理抓取http包,比...【详细内容】
2021-09-28  小码哥聊软件测试    Tags:网络抓包   点击:(100)  评论:(0)  加入收藏
Fiddler 简介Fiddler 是位于客户端和服务器端的 HTTP 代理 目前最常用的 http 抓包工具之一 功能非常强大,是 Web 调试的利器关注+转发+私信【软件测试】领取Fiddler安装包和...【详细内容】
2021-09-28  土豆聊软件测试    Tags:抓包工具   点击:(63)  评论:(0)  加入收藏
前言上次有写过一篇《20张图深度详解MAC地址表、ARP表、路由表》的文章,里面有提到了MAC地址表。那么什么是MAC地址表?MAC地址表有什么作用?MAC地址表里面包含了哪些要素?今天...【详细内容】
2021-09-09  网络工程师笔记    Tags:MAC地址表   点击:(76)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条