打造属于你自己的私人去广告DNS——AdGuard Home

DNS是啥子?

所谓DNS其实就是TCP/IP提供了通过IP地址来连接到设备的功能,但对用户来讲,记住某台设备的IP地址是相当困难的,因此专门设计了一种字符串形式的主机命名机制,这些主机名与IP地址相对应。在IP地址与主机名之间需要有一种转换和查询机制,提供这种机制的系统就是域名系统DNS(Domain Name System)。

啥啥啥,根本听不懂,我给大家解释一下就知道啦

我们在访问网站时其实都是访问它的IP地址,这个地址就像网购时自己填的地址一样,以IPV4为例,它通常是长这个样子的

xxx.xxx.xxx.xxx,那我们怎么知道网站的IP地址呢?很简单ping一下就知道了,我们打开终端,输入

1
ping baidu.com

image-20240125151642134

我们所看到的39.156.66.10就是baidu.com这个域名的IP地址啦(其实是CDN的)

但是为什么我们访问网站只需要输入baidu.com而不是39.156.66.10呢(其实输入也访问不了),这就是因为DNS的存在

当我们在浏览器输入一个域名时,它就会去向DNS服务器发送请求,就像下面这样

微信聊天

OK啊,你应该知道了DNS是什么了把,接下来正文开始

AdGuard Home是啥子

它其实就是一个开源的私人DNS,提供了强大的广告拦截功能,原话是这么说的

AdGuard Home 是一款全网广告拦截与反跟踪软件。在您将其安装完毕后,它将保护您所有家用设备,同时您不再需要安装任何客户端软件。随着物联网与连接设备的兴起,掌控您自己的整个网络环境变得越来越重要。

—— AdGuard Home

你应该知道广告拦截插件AdGuard吧就是这个

image-20240125153827519

这是一个十分强大的广告拦截插件,我们可以看一下开启前后访问hao123的样子

开启前:

image-20240125153950252

开启后:

image-20240125154016077

可以看到效果十分明显,但如果每台设备都要安装一遍插件的话那就显得很麻烦了,所以我们就可以是我们今天的主角AdGuard Home啦

安装AdGuard Home

接下来我们来演示一下如何安装它,首先我们应该有一件东西,那就是——一台服务器,无论是内网还是公网都可以,例如我就是将家里的电视盒子刷机后装入了海纳思系统系统

image-20240125154738641

首先我们登入服务器,可以使用ssh或者远程桌面的方式

image-20240125154835245

然后我们有2种方式进行安装

常规方法

下载源文件

1
2
3
4
5
6
7
8
9
10
11
#Linux x64
wget https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_amd64.tar.gz -O AdGuardHome.tar.gz

#Linux i386
wget https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_386.tar.gz -O AdGuardHome.tar.gz

#Linux ARMv7
wget https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_armv7.tar.gz -O AdGuardHome.tar.gz

#Linux ARMv6
wget https://static.adguard.com/adguardhome/edge/AdGuardHome_linux_armv6.tar.gz -O AdGuardHome.tar.gz

这里要根据自己设备的架构进行选择,查看架构使用uname -m命令

解压和安装

接下来我们进行解压操作,并将文件移动至 /usr/local/AdGuard_Home/ 文件夹中

1
2
3
4
5
6
7
8
9
10
#解压
tar xvf AdGuardHome.tar.gz

#移动文件
mkdir /usr/local/AdGuard_Home
mv AdGuardHome/AdGuardHome /usr/local/AdGuard_Home

#安装
cd /usr/local/AdGuard_Home
./AdGuardHome --service install

image-20240125160256429

当提示AdGuard Home is successfully installed and will automatically start on boot. 即表示 AdGuard Home 在当前系统上安装成功。在终端上会显示管理后台的地址与端口,默认为 http://IP:3000

image-20240125162417565

这里因为我已经安装过了所以显示的和你们不一样

docker安装

如果你的设备上安装了docker,那么你可以直接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#拉取 AdGuard Home Docker镜像
docker pull adguard/adguardhome

#设置 AdGuard Home 的配置文件存储位置
mkdir /etc/AdGuard_Home/

#创建 AdGuard Home 容器
docker run \
--name AdGuard_Home \
-v /etc/AdGuard_Home/:/opt/adguardhome/work \
-v /etc/AdGuard_Home/:/opt/adguardhome/conf \
-p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 70:68/tcp -p 70:68/udp -p 3000:80/tcp -p 446:443/tcp -p 853:853/tcp -p 3000:3000/tcp \
--restart=always \
-d adguard/adguardhome

ubuntu/depian53端口被占用

1、先停用 systemd-resolved 服务

1
2
systemctl stop systemd-resolved
1

2、编辑 /etc/systemd/resolved.conf 文件

1
2
vi /etc/systemd/resolved.conf
1

3、换下面说明更改,然后按一下“esc”键,再输入“:wq”(不要输入引号),回车保存即可。

1
2
3
4
5
6
7
8
9
10
[Resolve]
DNS=8.8.8.8 #取消注释,增加dns
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
DNSStubListener=no #取消注释,把yes改为no
123456789

4、最后运行下面命令即可。

1
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

配置AdGuard Home

进入配置界面

image-20240125162839888

这个建议保持53

然后一直下一步就可以了

image-20240125163431548

上游DNS服务器设置

这个可以使用GRC’s | DNS Nameserver Performance Benchmark

这个软件测试出最快的DNS,我分享一下我自己的

image-20240125163621394

通常来说当地的运营商DNS最快,但是湖南移动DNS我一直ping不通,所以就没用了

运营商DNS可以参考这个全国 DNS 服务器 IP 地址汇总-码农很忙 (coderbusy.com)

黑名单设置

这里建议使用half-life的规则

1
2
3
4
https://fastly.jsdelivr.net/gh/sbwml/halflife-list@master/ad-pc.txt

#手机端
https://fastly.jsdelivr.net/gh/sbwml/halflife-list@master/ad.txt

但是要注意规则越多但一般速度也会越慢

使用AdGuard Home

首先打开路由器后台,然后把DNS服务器设置为设置指导界面的IP就可以啦

image-20240125164317948

当然openwrt或者pandavan有直接使用AdGuard Home的插件

image-20240125164419614

OK啦

以上就是AdGuard Home的常规设置啦,等我买得起j1900再出一个openwrt或者黑群晖的教程啦