当前位置:首页 > 学习码农好榜样 > 正文内容

搭建Adguardhome+宝塔面板 DNS服务与宝塔面板共存

潇云2年前 (2021-11-28)学习码农好榜样2759

0.为什么要写这个

当然是因为自己折腾了个半死…网上现有的教程不涉及Adguardhome+宝塔面板情况下,443端口被重复占用的问题。 当然,如果你不需要使用doh服务,或者doh服务不用运行在443端口下,现有的教程都可以参考了。

0.5需要准备的东西

VPS一台、域名一个、SSL证书一张。
以及一颗聪明的小脑袋瓜子。

1.搭建Adguardhome服务

网上的教程都很详细惹…我就不说了。 注意在定义端口的时候避开80、443、8888等宝塔面板需要使用的端口。 如果在搭建在境内的VPS上,建议不要在53端口提供普通的DNS服务..要不然会被查水表。

2.进入Adguardhome后台进行DNS设置

输入http://服务器ip:3000,进入Adguardhome后台。

设置上游服务器:

tls://dns.pub
https://dns.pub/dns-query
tls://dns.alidns.com
https://dns.alidns.com/dns-query 


设置Bootstarp DNS服务器:

119.29.29.29
119.28.28.28
223.5.5.5
223.6.6.6

测试上游DNS并应用。

ENDS、DNSSEC、禁用IPV6建议勾选,速度设置调整成0。

DNS设置完成,保存并应用。

3.在Adguardhome后台进行加密设置

勾选启用加密,填入域名。
注意:HTTPS端口不能使用443端口,我使用了4443端口
填入证书,并保存设置。

Adguardhome后台设置完成,进入设置向导,应该可以看到:

4.安装宝塔面板,并进行基础配置

Centos安装命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

Ubuntu/Deepin安装命令:

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

等待安装完成,SSH界面会提示宝塔面板入口、账号、密码。
进入宝塔面板后台。
使用宝塔面板自动配置LNMP服务器环境。
在宝塔面板的安全–防火墙中放行Adguardhome需要使用的端口。

5.在宝塔面板中通过nginx设置反向代理,使DOH服务运行在443端口上

在宝塔面板后台添加站点,输入DNS服务器的域名。
PHP版本设置为纯静态。

进入SSL界面,在其他证书中填入在Adguardhome后台设置的SSL证书。
进入站点设置中的配置文件,修改

ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

之后的所有项,改为:

ssl_prefer_server_ciphers on;
ssl_early_data on;
ssl_ecdh_curve X25519:P-256:P-384;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 500 https://$host$request_uri;
location / {
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:1080; # 此处为程序运行时指定的端口,即adgh中的访问端口
}

location ~ .*.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
proxy_pass http://127.0.0.1:1080; # 此处为程序运行时指定的端口,即adgh中的访问端口
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}

location /dns-query {
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_buffering off;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://dns.laison.ltd:4443/dns-query; # 地址为adhg中监听的DOH服务地址
}
}

保存设置,并重启nginx。
本质上来说,是通过nginx反向代理,将adguardhome原本不运行在443端口上的DOH服务反向代理到443端口上。
好处是可以在一台VPS上同时跑网站、DOH服务,就像这个网站和后台的DOH服务一样。
坏处…可能是会增加一点点的延迟(?)

6.大功告成,可以测试DOH、DOT的服务是否能正常使用了

当然…如果你看到这里还是搞不明白or懒得搭建的话~
欢迎使用我的我自建的服务呐~
详细地址:https://www.laison.ltd/post/3.html

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。