DNS基础
基本指令:dig dl.google.com @114.114.114.114 +trace
chinadns
原理:
- 国内DNS服务器返回结果比国外的服务器更快。如果国外DNS服务器返回结果更快(就会被采用),则ChianDNS过滤。
- GFW对国外域名的污染仅返回国外IP。如果GFW使用国内IP污染国外域名,即国内DNS服务器对http://twitter.com返回国内IP,由于ChinaDNS实际上无法区分http://twitter.com是国外域名,就不会丢弃该结果,GFW得逞;
ChinaDNS工作原理其实是基于上述两个前提,根据一个规则“丢弃国内DNS服务器返回的国外IP解析结果”,达到防止DNS污染的同时,降低解析时间开销和增加CDN亲和性的目的。
查看详解:ChinaDNS原理与源码分析
PDNSD:(早已停止更新)
原理:向其它DNS服务器以TCP或UDP形式发出请求,查询到域名对应的IP,并进行缓存,以便达到加速目的。
源码地址:https://github.com/SAPikachu/pdnsd.git
DNS2SOCKS
原理:通过socks5,从指定DNS上流获取最新的DNS解析记录,从而实现一个无污染的纯净DNS服务器
源码地址:Browse Files at SourceForge.net
SMARTDNS
原理:SmartDNS是一个运行在本地的DNS服务器,SmartDNS接受本地客户端的DNS查询请求,从多个上游DNS服务器获取DNS查询结果,并将访问速度最快的结果返回给客户端,提高网络访问速度。 同时支持指定特定域名IP地址,并高性匹配,达到过滤广告的效果。与dnsmasq的all-servers不同,smartdns返回的是访问速度最快的解析结果。
源码地址:pymumu/smartdns
来自 https://zhuanlan.zhihu.com/p/339531442