服务器安装AdGuard Home 配置DNSCrypt

chenyajun  2021-09-09 11:12:32  阅读 5086 次 评论 0 条

AdguardHome目前还不支持在前端直接配置DNSCrypt协议,需要你在后台手动改写配置文件,配置文件中将会提供证书名称,私钥公钥等其他信息。

这份配置需要使用dnscrypt工具生成DNSCrypt的密钥对

1:下载解压安装

# 获取release并解压
wget https://github.com/ameshkov/dnscrypt/releases/download/v2.2.1/dnscrypt-linux-amd64-v2.2.1.tar.gz
tar xf dnscrypt-linux-amd64-v2.2.1.tar.gz
# 直接复制安装
mv linux-amd64/dnscrypt /usr/bin/
# 删除残余文件
rm -rf dnscrypt-linux-amd64-v2.2.1.tar.gz linux-amd64/

2:生成一对密钥,使用 --provider-name 指定证书名,--out 指定输出文件

dnscrypt generate --provider-name '5.dnscrypt-cert.55.com' --out /opt/AdGuardHome/dnscrypt.yaml

3:查看生成的内容dnscrypt.yaml,在/opt/AdGuardHome目录下,内容基本如下

服务器安装AdGuard Home 配置DNSCrypt 陈亚军博客

4:编辑AdGuardHome的配置文件AdGuardHome.yaml,将 port_dnscrypt 从0改为5443(也可以是其他自定义端口),dnscrypt_config_file 填入刚刚生成的配置文件路径,比如我用7443端口,如下

port_dnscrypt: 7443
dnscrypt_config_file: /opt/AdGuardHome/dnscrypt.yaml

5:重新载入AdGuardHome

systemctl restart AdGuardHome

备注:如果成功开启支持了DNSCrypt,那系统的TCP与UDP的7443端口将被AdGuardHome占用,上面设置的哪个端口,就占用哪个端口的TCP与UDP。

6:开放端口 和 添加端口外部访问权限,就是上面设置的端口,开放其TCP和UDP

# 开放端口
firewall-cmd --zone=public --add-port=7443/tcp --permanent
firewall-cmd --zone=public --add-port=7443/udp --permanent
# 添加端口外部访问权限(这样外部才能访问,有的服务器不需要)
firewall-cmd --add-port=7443/tcp
firewall-cmd --add-port=7443/udp
# 重启防火墙
firewall-cmd --reload

在使用时,需要用到IP地址及端口号 公钥 证书名称 这三个数据,从生成的 /opt/AdGuardHome/dnscrypt.yaml 文件中可以拿到这些信息,其中公钥为 public_key 内容,证书名称为 provider_name。

接着,我们需要把这些信息打包成DNS Stamp格式,在线生成sdns链接点击进入,填入服务器IP和端口、公钥、证书名称即可,复制右端生成的sdns链接。

服务器安装AdGuard Home 配置DNSCrypt 陈亚军博客

备注:上面修改一处错误,上面DNSSEC后面的Provider public key这里是dnscrypt.yaml文件里面的public_key后面的内容

7:到AdGuardHome 上游DNS服务器粘贴sdns链接进去保存就可以了


本文地址:https://chenyajun.net/index.php/post/73.html
版权声明:本文为原创文章,版权归 chenyajun 所有,欢迎分享本文,转载请保留出处!

评论已关闭!