使用国内服务器建设自己的无污染加密DNS
本文最后更新于 160 天前,其中的信息可能已经有所发展或是发生改变。

这篇文章可以让你在迅速读完,也可以让你对着做半天(指大量的参考外链)

序章

事情还要从一只吃蝙蝠的臭弟弟说起(此处省略500字基本操作和1000字高端操作)
国内服务器巨头之一,阿里云推出了学生“在家实践”计划。这个计划是这么说的

因新冠肺炎疫情,学校延期开学。在家时间不浪费,提高技能好机会。阿里云弹性计算联合开发者社区,推出高校“在家实践”计划,全国高校学生,每人可免费领取一台云服务器ECS算力资源,在线实践课程等资源。

看到这条消息,手里握着三十多台服务器的我原本是拒绝的。可是没有办法,这个服务器的性能配置有点香(指寒酸的2c4g,还是性能突发t5),看马爸爸诚意这么足我就勉为其难的熬到0:00淡定的领了一波。
image.png
服务器到手以后,我就开启了祖传艺能:吃灰。直到某沙雕群友说闲置会导致回收资源,我才开始想如何处理。它,然后就有了接下来的故事

正文

准备条件

  1. 一台国内/低延迟地区的服务器,至少96M,建议128M以上。带宽无要求,1M即可。
  2. 正常的英文阅读及搜索资料的能力。本文已经提供了足够的资料以供沙雕网友们参考。
  3. Android P/O 手机,或 Firefox浏览器。其他设备需要额外的软件支持。(后文解释)

我在双人,三设备,4组规则列表同时使用时内存大约为60M,cpu,带宽占用极低。因此建议使用至少128M的主机。并且因为DNS查询影响网页速度,我强烈建议使用延迟低于50ms,至少低于100ms的服务器(说白了就是国内和香港)。

同时,由于在国内公开以53端口提供DNS服务可能会被认为非法行为,国外的53端口dns可能会被劫持/抢答,所以我们在这里不考虑基础UDP/TCP DNS。当然,你也可以把这个当作你路由器的DNS上游(如果路由器支持DoT/DoH的话),在家里提供加密&污染&有限去广告反跟踪的DNS。
gif

安装步骤

此部分请不要进行网页设置!!

  1. Ubuntu VPS用户请参考官方Wiki,CentOS,群晖用户请参考该链接。请注意服务器发行版架构的问题,这里默认使用非标准VPS安装教程的同学都知道 ARM/MIPSel/x86/amd64的区别,使用Docker的同学知道如何使用。因为安装Adguard Home并非教程重点并且我想摸鱼别人还写了很多轮子,所以在这里跳过!
  2. 上一步的同学请注意,VPS提供商存在“安全组防火墙设置”,请注意添加端口开放(0.0.0.0/0代表允许所有ip访问)。同时国内的80与443端口需要备案才能使用,53端口存在被水表的风险。
  3. 为了减少性能占用,我们要删除阿里云云盾/安骑士(为该功能付费的请跳过),参考链接如下

设置步骤

  1. 基本设置可以直接参考这篇链接来做。跳过安装部分,看到配置进阶之前就可以了(看看也无妨)
  2. 去广告规则可以自己找,在前文的参考文献里也有。
  3. 测试好普通DNS能用之后(非标准DNS可以使用dig 域名 @ip -p 端口测试(linux下)),开始设置DoH/DoT,开放DoT所需的853端口和你打算设置的HTTPS端口(不能和HTTP的3000端口重合,我是自己改的)。
  4. 去给自己的域名申请证书。如果你没有域名去就去给自己申请一个”.tk,.ml,.cf等免费域名”。申请证书可以使用Let’s Encrypt(如果你用过就直接跳过好了),也可以白嫖阿里云/腾讯云/华为云的为期一年的亚洲诚信证书。
    这里有一些限制,阿里云限制总共20个单域名证书,腾讯云是一个域名限制20个单域名,华为云自己动手丰衣足食不限量。前两个非常方便,后面要自己到云市场购买,再到管理页面下载之类的。此部分操作都很简单,网上也有很多教程。
  5. 下载Nginx格式的证书压缩包,里面包含有.crt.pem/.key文件。前者是证书,后者是密钥。再AdguardHome 的 “设置-加密设置”中进行设置完域名,端口等信息后。使用记事本打开文件并粘贴文件内容到对应的栏目里即可。(服务器名称没有https)
    image.png
    image.png

参数调优

  1. 设置上游DNS服务器。AH默认以Cloudflare作为上游DoH服务器,但是这个上游的延迟简直一言难尽。因此我们选择Google的DOT服务器作为我们的上游主服务器(443的DoH会被reset,只能853的DoT),选用cloud flare的DoH服务器作为备份上游。同时开启并行查询优化速度。
    image.png
  2. 开启E-DNS(edns-client-subnet)优化CDN节点的获取。因为在DNS服务器获取节点时,一般以自身所在地选择CDN节点解析(Anycast IP不算),所以经常解析到国内用起来不怎么爽的cdn上。开启EDNS支持可以令权威DNS以用户所在地的IP进行解析知乎人话
    image.png
  3. 设置过滤器,规则自己找,别加太多。DNS去广告的能力有限,而且有的规则甚至会干掉别的东西(
    image.png

如何使用

  1. IOS/MAC的祖传艺能我一点都不想管,因为我是果黑所以这两个平台的用户自求多福吧(D区)
  2. 安卓8.1及以下的用户需要额外软件才能享受DoT/DoH,9.0以上可以直接在“设置-无线/互联网”界面的“私人DNS”中设置DoH/DoT(MIUI等需要其他操作)。注意,直接输域名是DoT,输网址是DoH,记得指定端口号。额外软件一般会与Get Out Of Barrier的软件冲突,因为Get Out的软件使用socks DNS代理,所以
  3. 同时Firefox浏览器用户支持直接设置DoH,Chrome的话目前Google还不能自定义DoH服务器地址,需要用Windows的软件。
  4. Windows的话一般没必要全局,Firefox大法好。不过用Chrome和Edge的也大有人在,因此这里提供两个DNS代理应用 dnscrypt-proxySimple DNSCrypt。windows下的Get Out软件也都带有socks DNS proxy,所以可能DoT和DoH冲突(没测试,但是我觉得不会)。某酸牛奶软件不支持设置DoT/H服务器,而某带有危害的射线软件的版本支持设置DoH服务器。(我这里的Do TLS端口853,Do HTTPS端口3000)
    image.png

部分原理介绍

  1. DoH:DNS over HTTPS,HTTPS的标准端口为443。同时是用于网站访问的接口,DoH可以被理解成访问网站。而当使用非标准端口的时候(建站需要备案),需要以 https://host_url:port_number/query_path 的格式来访问,可以轻松使用nginx反代。
  2. DoT:DNS over TLS,DoT的标准端口为853。DoT的853端口目前还没有被封锁或关照,可以直接按照标准端口设置,访问直接以tls://host_url来访问。访问DoT是不经过HTTPS封装直接以TLS加密的。注意使用时请区分DoH和DoT。
  3. 为什么要使用DoH/DoT?无污染!现在各地运营商的DNS污染愈发猖獗,广告页面太一言难尽。而且DNS污染不可言。隐私!全程TLS加密,无法窥探目标地址(SNI问题另谈)安全!TLS加密具有不可篡改性和来源认证(除非你乱加别人的根证书),你不会再被劫持。
  4. 更多详情请查阅外链 DNS,DNSSEC,DoT,DoH对比DoT原理
  5. 为什么必须国内或者香港的主机?首先进行DNS查询是开网页的第一步,如果是境外的话会太慢。其次TLS流量可能会被认为是illegal proxy而被ban。还有就是境外53端口的流量会被DNS抢答,并无卵用。

关于AFF的PY交易

众所周知无污染的DNS也有另外一个作用(虽然作用效果很差),而现在达成这个作用一般需要一个双关词的帮助。这个双关词会吸取钱包的精华来发动能力,而发动能力是有强度和数量的限制的。如果你能看懂前面这句话并且对20/30/60的无限禁制感兴趣,欢迎给 [email protected] 发邮件 / Tg @Makiras / 直接私戳联系我。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇