本文最后更新于 1683 天前,其中的信息可能已经有所发展或是发生改变。
这篇文章可以让你在迅速读完,也可以让你对着做半天(指大量的参考外链)
序章
事情还要从一只吃蝙蝠的臭弟弟说起(此处省略500字基本操作和1000字高端操作)
国内服务器巨头之一,阿里云推出了学生“在家实践”计划。这个计划是这么说的
因新冠肺炎疫情,学校延期开学。在家时间不浪费,提高技能好机会。阿里云弹性计算联合开发者社区,推出高校“在家实践”计划,全国高校学生,每人可免费领取一台云服务器ECS算力资源,在线实践课程等资源。
看到这条消息,手里握着三十多台服务器的我原本是拒绝的。可是没有办法,这个服务器的性能配置有点香(指寒酸的2c4g,还是性能突发t5),看马爸爸诚意这么足我就勉为其难的熬到0:00淡定的领了一波。
服务器到手以后,我就开启了祖传艺能:吃灰。直到某沙雕群友说闲置会导致回收资源,我才开始想如何处理。它,然后就有了接下来的故事
正文
准备条件
- 一台国内/低延迟地区的服务器,至少96M,建议128M以上。带宽无要求,1M即可。
- 正常的英文阅读及搜索资料的能力。本文已经提供了足够的资料以供沙雕网友们参考。
- Android P/O 手机,或 Firefox浏览器。其他设备需要额外的软件支持。(后文解释)
我在双人,三设备,4组规则列表同时使用时内存大约为60M,cpu,带宽占用极低。因此建议使用至少128M的主机。并且因为DNS查询影响网页速度,我强烈建议使用延迟低于50ms,至少低于100ms的服务器(说白了就是国内和香港)。
同时,由于在国内公开以53端口提供DNS服务可能会被认为非法行为,国外的53端口dns可能会被劫持/抢答,所以我们在这里不考虑基础UDP/TCP DNS。当然,你也可以把这个当作你路由器的DNS上游(如果路由器支持DoT/DoH的话),在家里提供加密&污染&有限去广告反跟踪的DNS。
安装步骤
此部分请不要进行网页设置!!
- Ubuntu VPS用户请参考官方Wiki,CentOS,群晖用户请参考该链接。请注意服务器发行版架构的问题,这里默认使用非标准VPS安装教程的同学都知道 ARM/MIPSel/x86/amd64的区别,使用Docker的同学知道如何使用。因为安装Adguard Home并非教程重点并且我想摸鱼别人还写了很多轮子,所以在这里跳过!
- 上一步的同学请注意,VPS提供商存在“安全组防火墙设置”,请注意添加端口开放(0.0.0.0/0代表允许所有ip访问)。同时国内的80与443端口需要备案才能使用,53端口存在被水表的风险。
- 为了减少性能占用,我们要删除阿里云云盾/安骑士(为该功能付费的请跳过),参考链接如下
设置步骤
- 基本设置可以直接参考这篇链接来做。跳过安装部分,看到配置进阶之前就可以了(看看也无妨)
- 去广告规则可以自己找,在前文的参考文献里也有。
- 测试好普通DNS能用之后(非标准DNS可以使用
dig 域名 @ip -p 端口
测试(linux下)),开始设置DoH/DoT,开放DoT所需的853端口和你打算设置的HTTPS端口(不能和HTTP的3000端口重合,我是自己改的)。 - 去给自己的域名申请证书。如果你没有域名去就去给自己申请一个”.tk,.ml,.cf等免费域名”。申请证书可以使用Let’s Encrypt(如果你用过就直接跳过好了),也可以白嫖阿里云/腾讯云/华为云的为期一年的亚洲诚信证书。
这里有一些限制,阿里云限制总共20个单域名证书,腾讯云是一个域名限制20个单域名,华为云自己动手丰衣足食不限量。前两个非常方便,后面要自己到云市场购买,再到管理页面下载之类的。此部分操作都很简单,网上也有很多教程。 - 下载Nginx格式的证书压缩包,里面包含有
.crt
和.pem/.key
文件。前者是证书,后者是密钥。再AdguardHome 的 “设置-加密设置”中进行设置完域名,端口等信息后。使用记事本打开文件并粘贴文件内容到对应的栏目里即可。(服务器名称没有https)
参数调优
- 设置上游DNS服务器。AH默认以Cloudflare作为上游DoH服务器,但是这个上游的延迟简直一言难尽。因此我们选择Google的DOT服务器作为我们的上游主服务器(443的DoH会被reset,只能853的DoT),选用cloud flare的DoH服务器作为备份上游。同时开启并行查询优化速度。
- 开启E-DNS(edns-client-subnet)优化CDN节点的获取。因为在DNS服务器获取节点时,一般以自身所在地选择CDN节点解析(Anycast IP不算),所以经常解析到国内用起来不怎么爽的cdn上。开启EDNS支持可以令权威DNS以用户所在地的IP进行解析。知乎人话
- 设置过滤器,规则自己找,别加太多。DNS去广告的能力有限,而且有的规则甚至会干掉别的东西(
如何使用
- IOS/MAC的祖传艺能我一点都不想管,因为我是果黑所以这两个平台的用户自求多福吧(D区)
- 安卓8.1及以下的用户需要额外软件才能享受DoT/DoH,9.0以上可以直接在“设置-无线/互联网”界面的“私人DNS”中设置DoH/DoT(MIUI等需要其他操作)。注意,直接输域名是DoT,输网址是DoH,记得指定端口号。额外软件一般会与Get Out Of Barrier的软件冲突,因为Get Out的软件使用socks DNS代理,所以
- 同时Firefox浏览器用户支持直接设置DoH,Chrome的话目前Google还不能自定义DoH服务器地址,需要用Windows的软件。
- Windows的话一般没必要全局,Firefox大法好。不过用Chrome和Edge的也大有人在,因此这里提供两个DNS代理应用
dnscrypt-proxy
,Simple DNSCrypt
。windows下的Get Out软件也都带有socks DNS proxy,所以可能DoT和DoH冲突(没测试,但是我觉得不会)。某酸牛奶软件不支持设置DoT/H服务器,而某带有危害的射线软件的版本支持设置DoH服务器。(我这里的Do TLS端口853,Do HTTPS端口3000)
部分原理介绍
- DoH:DNS over HTTPS,HTTPS的标准端口为443。同时是用于网站访问的接口,DoH可以被理解成访问网站。而当使用非标准端口的时候(建站需要备案),需要以
https://host_url:port_number/query_path
的格式来访问,可以轻松使用nginx反代。 - DoT:DNS over TLS,DoT的标准端口为853。DoT的853端口目前还没有被封锁或关照,可以直接按照标准端口设置,访问直接以
tls://host_url
来访问。访问DoT是不经过HTTPS封装直接以TLS加密的。注意使用时请区分DoH和DoT。 - 为什么要使用DoH/DoT?无污染!现在各地运营商的DNS污染愈发猖獗,广告页面太一言难尽。而且DNS污染不可言。隐私!全程TLS加密,无法窥探目标地址(SNI问题另谈)安全!TLS加密具有不可篡改性和来源认证(除非你乱加别人的根证书),你不会再被劫持。
- 更多详情请查阅外链 DNS,DNSSEC,DoT,DoH对比, DoT原理。
- 为什么必须国内或者香港的主机?首先进行DNS查询是开网页的第一步,如果是境外的话会太慢。其次TLS流量可能会被认为是illegal proxy而被ban。还有就是境外53端口的流量会被DNS抢答,并无卵用。
关于AFF的PY交易
众所周知无污染的DNS也有另外一个作用(虽然作用效果很差),而现在达成这个作用一般需要一个双关词的帮助。这个双关词会吸取钱包的精华来发动能力,而发动能力是有强度和数量的限制的。如果你能看懂前面这句话并且对20/30/60的无限禁制感兴趣,欢迎给 [email protected] 发邮件 / Tg @Makiras / 直接私戳联系我。