DNS(Domain Name System,域名系统)作为互联网的重要组成部分,其重要性不言而喻。NextDNS 是一个高性能、安全且易于配置的 DNS 解析服务,提供了许多高级功能。
注册地址: https://nextdns.io/
NextDNS不仅支持基础的DNS解析功能,还具备强大的过滤和阻断能力,可以帮助用户有效屏蔽恶意网站、广告以及追踪行为,从而保护用户的隐私和数据安全。同时,NextDNS还支持通过DoH(DNS over HTTPS)和DOT(DNS over TLS)等加密协议进行通信,进一步提升了数据传输的安全性和隐私保护水平。
DoH与DOT
DoH(DNS over HTTPS)和DOT(DNS over TLS)是两种通过加密方式保护DNS通信安全性的协议。它们的主要目的是防止DNS查询过程中数据被窃取、篡改或监视,从而提升用户的隐私保护和数据安全。
DoH(DNS over HTTPS):通过将DNS查询封装在HTTPS请求中,利用HTTPS的加密特性来保护DNS数据的安全性。这种方式可以有效防止中间人攻击和DNS劫持等安全威胁,同时兼容现有的HTTP/HTTPS基础设施,便于部署和使用。
DOT(DNS over TLS):与DoH类似,DOT也是通过加密来保护DNS通信的安全性。不同的是,DOT使用TLS协议进行加密,而不是HTTPS。TLS协议本身具有较强的安全性和可靠性,可以确保DNS查询在传输过程中不被窃取、篡改或监视。
国内公共DNS
当然,国内也有很多公共DNS服务支持DoH和DoT,例如
腾讯DNSPod:腾讯提供的DoH服务,其DoH服务器地址为https://doh.pub/dns-query等。
阿里云公共DNS:阿里云也提供DoH服务,其DoH服务器地址为https://dns.alidns.com/dns-query。
其他还包括oneDNS等产品,其中就我所知的,腾讯、onedns都提供一些预定规则,例如Adguard等广告过滤规则,而阿里云公共DNS也提供了黑名单等方式来阻断不良信息。但是就个人体验来说,其实过滤效果并不太好,例如手机APP中的一些开屏广告无法过滤,可能只能起到一些加密安全作用。
NextDNS规则
NextDNS同时支持DoH和DOT协议,用户可以根据自己的需求选择适合的协议进行使用。这两种协议的应用不仅提升了DNS通信的安全性,也为用户提供了更加私密和安全的网络环境。
NextDNS最大大亮点是其广告和跟踪器拦截功能。它使用最受欢迎的广告和追踪器拦截列表,实时更新数以百万计的域名,从而有效拦截网站和应用程序中的广告和跟踪器。同时,NextDNS还提供本机跟踪保护,阻止在操作系统级运行的深度跟踪软件记录用户的活动。NextDNS拦截所有包含色情、暴力、盗版等内容的网站,并强制执行安全搜索,过滤搜索引擎的结果,包括图像和视频。
经个人测试,可以完美实现拦截效果,移动端的开屏广告、论坛中插入广告都完美被拦截,手机上也不需要再安装任何广告拦截APP或者插件。并且有超多的拦截规则例如Adguard、Easy list等规则可以自由选择,并且这些拦截规则都是动态更新的。
这里还要说明一下,NextDNS的日志保存地点是可以自己选择的,给定有几个选项,例如:瑞士,号称全球最注重个人隐私的地方。
NextDNS提供付费服务,但是其付费服务和免费产品在体验上没什么区别,至少我还没有发现。最主要的是免费服务的解析量是有限制的,好像一个月限制300000次,但是对于个人使用来说,基本上是够用了。
NextDNS问题
但是NextDNS最大的问题,或者在国内最大的问题就是其网络延迟问题,这对于一个DNS服务来说是非常致命的,也导致我反反复复一会用、体验不好又换其他的、最后还是感觉NextDNS更香。
由于NextDNS需要在国外进行DNS解析,因此在国内使用时可能会存在一定的网络延迟。NextDNS的服务器主要位于国外,这可能导致在国内使用时出现连接不稳定或无法访问的情况。
NextDNS套用cloudflare反代
经过多次尝试,终于找到了降低NextDNS网络延迟的方法,该方法并不是针对于NextDNS的,而是针对所有的DoH服务,甚至包括国内的,因为其初衷是为了避免DNS污染导致无法正常使用。
简单来说,通过GitHub上的doh-cf-pages或者doh-cf-workers项目。这个项目提供了一个简单的Cloudflare 脚本,可以将NextDNS的DoH请求通过Cloudflare代理,使用自己的域名来访问NextDNS。简单理解,就相当于对DoH域名套了一个Cname,这样的话,及时某些长城拦截原DOH域名时,你仍可以使用自定义域名来进行访问。但是众所周知,cloudflare在国内的访问速度也很不理想,这里就需要再对自己的自定义域名进行加速了,套用国内的cdn即可。
比较简单,源代码可以使用tina-hello/doh-cf-workers。你可以直接点击ReadMe里面的Deploy with Workers图标,一步一步来。或者,也可以:
- 首页:https://workers.cloudflare.com
- 注册,登入,Start building,取一个子域名,Create a Worker。
- 复制 index.js 到左侧代码框,Save and deploy。如果正常,右侧应显示首页。
- 收藏地址框中的 https://xxxx.子域名.workers.dev,以后可直接访问。
- 服务默认使用的是Cloudflare的公共DNS,如有需要,可对index.js中的DNS服务进行更换。
此外,如果你的域名没有使用cloudflare进行解析的话,也可以通过doh-cf-pages项目,这个项目实现目的与doh-cf-workers相同,但是可以通过CNAME进行解析。具体操作方法在项目中已经写的很清楚了。
NextDNS套用CDN
这里简单介绍一下套用国内cdn。
套用国内CDN的话需要一个备案域名。
在Cloudflare Pages部署后,会生成或者让你自己填写一个cloudflare三级域名,填写、部署成功后,会有一个“自定义域”的选项,在这里填写你自己经过备案的、想要使用的域名,随后在自己的解析服务商,将该域名使用CNAME解析到自动生成的cloudflare域名上。这里完成后,你就可以使用自己的域名来访问NextDNS了,但是还没有实现加速的效果。
打开自己的CDN服务商,选择加速域名,加速域名填写上述自己的域名,源站则填写Cloudflare给的三级域名,同时CDN服务商还会给你一个cname指向名,将自己域名服务商解析的CNAME名替换为CDN服务商的即可。
简单来说就是,你自己的域名dns.next.com首先到通过cname解析到了CDN服务商这里,CDN服务商通过源站访问到Cloudflare Page, Cloudflare Page再访问到NextDNS中,最后实现加速。
要注意一点,一定要先将域名dns.next.com通过cname解析到自动生成的cloudflare域名上,因为Cloudflare首先会检测是否解析成功,否则的话可能要很长时间消除dns缓存后才解析成功。