安装AdGuardHome
AdGuardHome的安装对VPS没有特殊要求,随便找一台VPS即可,离你想上DNS解锁的VPS(非DNS解锁服务器)越近越好,为了方便,也可以在一台VPS上同时部署DNS服务和反代服务
参照官方的安装教程进行安装,这里放一个官方的一键脚本
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这类原生解锁机)上安装
这里直接照搬官方教程
# 如果是第一次使用,则建议创建新文件夹(后续更新时,跳过该步骤)
mkdir sniproxy
# 进入文件夹(后续更新,只需要从这里重复下面的下载、解压命令即可)
cd sniproxy
# 下载 sniproxy 压缩包(自行根据需求替换 URL 中 [版本号] 和 [文件名])
wget -N https://github.com/XIU2/SNIProxy/releases/download/v1.0.4/sniproxy_linux_amd64.tar.gz
# 如果你是在国内服务器上下载,那么请使用下面这几个镜像加速:
# wget -N https://ghp.ci/https://github.com/XIU2/SNIProxy/releases/download/v1.0.4/sniproxy_linux_amd64.tar.gz
# wget -N https://ghproxy.cc/https://github.com/XIU2/SNIProxy/releases/download/v1.0.4/sniproxy_linux_amd64.tar.gz
# wget -N https://ghproxy.net/https://github.com/XIU2/SNIProxy/releases/download/v1.0.4/sniproxy_linux_amd64.tar.gz
# wget -N https://gh-proxy.com/https://github.com/XIU2/SNIProxy/releases/download/v1.0.4/sniproxy_linux_amd64.tar.gz
# 如果下载失败的话,尝试删除 -N 参数(如果是为了更新,则记得提前删除旧压缩包 rm sniproxy_linux_amd64.tar.gz )
# 解压(不需要删除旧文件,会直接覆盖,自行根据需求替换 文件名)
tar -zxf sniproxy_linux_amd64.tar.gz
# 赋予执行权限
chmod +x sniproxy
# 编辑配置文件(根据下面的 配置文件说明 来自定义配置内容并保存(按下 Ctrl+X 然后再按 2 下回车)
nano config.yaml
# 运行(不带参数)
./sniproxy
# 运行(带参数示例)
./sniproxy -c "config.yaml"
# 后台运行(带参数示例)
nohup ./sniproxy -c "config.yaml" > "sni.log" 2>&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的解锁机)
