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

打造属于你自己的私人去广告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 或者黑群晖的教程啦