前言

家里的宽带是广电&长宽,虽然二级宽带运营商不太建议改DNS,但面对乱七八糟的AD与劫持,电脑端倒可以通过浏览器插件屏蔽AD,手机端就拉闸了(此处@Chrome)

部分个人设备因无ROOT无法修改Hosts,且浏览器Chrome用习惯了。这边的漏油器是国内伪·御三家之一的高端大气上档次的低配普联,指望刷机装插件的路子没了。

考虑到安卓9的私人DNS功能,才发现可以用采用DoH/DoT协议且去广告的DNS来屏蔽花里胡哨的玩意儿。 无奈硬件不给力,就只能用VPS安装ADGuard Home将就着用了。

安装

网上一搜一大把的应该不用水了吧.jpg

1
2
3
4
wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz
tar -xzvf AdGuardHome_linux_amd64.tar.gz
cd AdGuardHome
./AdGuardHome -s install

安装完成后,浏览器访问 http://你的服务器ip:3000 后进入ADGuard Home配置。

网页管理界面

监听接口 - 端口 改成非80,这边我设置的是3000端口, DNS 服务器监听接口- 端口 理论上是53,但国内的政策是禁止个人用户自建DNS,所以自行考虑(

用户名密码和设定并记住,跳过没人会看的设置指导后,登录到控制台。

设置

DNS 设置

可参考下面我的设置

上游 DNS 服务器

1
2
3
4
5
tls://dns.google:853
https://1.1.1.1/dns-query
tls://1.1.1.1:853
https://doh.pub/dns-query
tls://dns.pub:853

Bootstrap DNS 服务器

1
2
3
223.5.5.5
119.29.29.29
1.0.0.1

DNS服务设定

速度限制0就行(基本上就你一个人用.jpg) 如果 上游 DNS 服务器 设置的是国外DNS的话,这里推荐打开EDNS

DNS缓存配置

通常默认即可

配置DoH/DoT

设置 - 加密设置

启动加密,服务器名称填写你的域名,全文以 dns.dns.dns 为例。

HTTPS端口设置成非 443 ,我这边的是 3443 DNS-over-TLS 端口默认 853 证书设置上,推荐acme.sh一套完事,也可以配合宝塔/Oneinstack/lnmp等面板的自动证书设置。

注:因为采用Nginx反向代理,故无须勾选HTTPS自动重定向

Nginx配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
server
{
    listen 80;
    server_name dns.dns.dns; # 填写对应域名
    return 301 https://$host$request_uri;
}

server
{
    listen 443 ssl http2;
    server_name dns.dns.dns; # 填写对应域名
    index index.html index.htm;

    # 证书路径配置
    ssl_certificate /var/nginx/ssl/fullchain.pem;
    ssl_certificate_key /var/nginx/ssl/privkey.pem; 
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers off;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    error_page 497  https://$host$request_uri;

    location / {
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:3000;
    }

    location /dns-query {
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_pass https://dns.dns.dns:3443/dns-query; #填写对应域名,注意填写的是https以及后面的端口
    }

    error_log  /var/log/nginx/adguard_error.log;
}

过滤规则

过滤器 - DNS封锁清单 自行添加规则,我这里用的是 Anti-AD ,基本上屏蔽了乱七八糟的广告

设备设定DNS

安卓机:设置 - 网络 - 私人DNS 输入你的地址即可

电脑端:

  • Chrome/Edge: 设置 - 隐私和安全性 - 安全性 - 进阶 - 使用安全DNS 包含自订 输入你的地址即可
  • FireFox:选项 - 常规 - 网络设置 - 启用基于 HTTPS 的 DNS 自定义 输入你的地址即可

最终成果大概就这

常用命令

1
2
3
4
5
6
7
8
#启动
systemctl start AdGuardHome
#开机自启
systemctl enable AdGuardHome
#重启
systemctl restart AdGuardHome
#停止
systemctl stop AdGuardHome

如果依旧无法使用,请检查端口是否监听/开放。