特此声明,本教程使用了以下开源项目:
DNS服务器AdGuardHome:https://github.com/AdguardTeam/AdGuardHome
反代服务器XIU2/SNIProxy:https://github.com/XIU2/SNIProxy
1-Stream的流媒体域名库:https://github.com/1-stream/1stream-public-utils
安装AdGuardHome
AdGuardHome的安装对VPS没有特殊要求,随便找一台VPS即可,离你想上DNS解锁的VPS(非DNS解锁服务器)越近越好,为了方便,也可以在一台VPS上同时部署DNS服务和反代服务
参照官方的安装教程进行安装,这里放一个官方的一键脚本
1 | curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v |
安装完成后,进入AdGuardHome的页面,首次登录需要进行用户名、密码的设置,这里就不再赘述了(懒癌发作)
成功登录后,跟着我来一步一步设置
点击设置
-常规设置
,确保
使用过滤器和Hosts文件以拦截指定域名
是被勾选的
点击设置
-DNS设置
,在上游 DNS 服务器
中输入你常用的DNS服务器,例如我习惯使用1.1.1.1
和8.8.8.8
测试上游,没问题后应用保存
按需设置过滤器
中的DNS黑名单、DNS白名单
中的规则,这两个设置主要用来去广告,不在本文讨论范围
打开DNS解锁配置生成器,输入拟用来进行DNS解锁的服务器(例如Akile、Acck、Alice这类DNS解锁机或者LegendVPS这类原生解锁机)的IPv4和IPv6地址(两者至少输入一个)后,点击生成 AdguardHome 自定义规则
按钮,复制生成的规则到剪贴板备用
点击过滤器
-自定义规则
,输入刚才复制的AdGuardHome规则,点击应用,此时AdguardHome就能够正常进行工作了
但是我们还需要做一些安全上的设置
点击设置
-DNS设置
,把页面拉到最下边,找到访问设置,输入允许进行DNS解析的IP地址,点击应用保存
安装SNIProxy
SNIProxy服务器的选择就有讲究了,必须在能够进行多媒体解锁的服务器(例如Akile、Acck、Alice这类DNS解锁机或者LegendVPS这类原生解锁机)上安装 这里直接照搬官方教程
1 | # 如果是第一次使用,则建议创建新文件夹(后续更新时,跳过该步骤) |
对于懒人,我也写了个一键脚本 1
curl -sSL https://raw.githubusercontent.com/hkfires/DNS-Unlock-Server/main/install_sniproxy.sh | sudo bash
为了安全,运行SNIProxy的服务器建议使用防火墙进行源IP的限制,这一块就不在本文讨论了(懒癌发作x2),为了方便是用UFW的用户,我写了个UFW规则生成器,可以用这个方便地进行防火墙的设置
配置DNS解锁
这一块大家都很熟悉了吧,就不写了(懒癌发作x3)
推荐使用DNS 流媒体一键分流脚本
效果
使用阿里的脏IP,使用自建DNS服务器解锁的效果(DNS解锁用了Akile的解锁机)