Adguard home自建DNS防污染、去广告教程 1.安装(Docker)
前言
AdGuard Home 部署的方式有很多种,可以在服务器中直接部署,也可以部署在Docker中,这里采用 Docker 部署,主要是考虑到其更新维护成本低、玩法多样、配置灵活。就比如对于科学上网的需求而言,需要对 DNS 进行分流,那么就可能需要使用 Docker 进行多容器部署与管理。这篇文章除了 AdGuard Home 的部署,还有一些与 Docker 相关的网络知识,认真看完这篇教程你会收获大量的知识和启发。
安装部署 AdGuard Home
Docker 部署涉及到网络模式的选择,小伙伴们可以根据自己的实际情况选择适合自己的。
Bridge 网络模式
Bridge 网络模式部署,需要预先设定端口,考虑端口占用情况,且一旦固定后续只能通过重建容器进行更改,限制多、灵活度差。由于它是 Docker 默认的网络模式,且很多教程存在误导性质,所以还是简单说明一下部署方法,顺便科普一下 AdGuard Home 每个端口的作用。
官方提供的容器启动命令示例格式化后如下:
1 |
|
从示例中可以得知 AdGuard Home 所需要用到的端口,但实际情况并不是都会用到,这需要根据自身的需求来决定,以下是这些端口的作用:
53
:DNS 端口。即其他设备访问 AdGuard Home 进行 DNS 解析的默认端口。因为部分系统不支持自定义 DNS 端口,所以不建议自定义。部署前务必要查看是否有其它程序占用。67
,68
: DHCP 端口。除非想代替你路由上的 DHCP 服务器,否则用不到。80
: 管理页面默认 HTTP 端口。可忽略,在初始化页面设置管理端口为 3000 端口即可。443
:HTTPS 和 DoH 端口。本地内网环境不需要。853
:DoT 端口。不使用相关功能可忽略。3000
:初始化设置端口。除非通过配置文件去设置,否则必须开启。
如果只是本地局域网使用一般只需要映射 53
和 3000
端口:
1 |
|
macvlan 网络模式
TIPS: 准确来说应该叫“macvlan 网络下的 bridge 模式”,因为说起来太拗口,而且 macvlan 其他模式很少使用,同时也为了和默认的 bridge 网络模式做区分,所以习惯将它称之为“macvlan 网络模式”。
使用 macvlan 网络模式的好处是容器相当于是一个独立的设备,可以拥有一个独立且固定的 IP 和 MAC 地址,不需要理会任何端口的状态,所有端口都可以使用默认的,兼容性更好。你甚至可以部署多个 AdGuard Home ,用作不同的用途,灵活度非常高。非常适合在本地局域网下的使用,就比如你可以部署在 NAS 上。macvlan 网络模式唯一缺点是宿主机无法与容器直接通讯(Docker 为了安全性做了隔离处理),如果宿主机想要使用可能需要进行一些特殊的设置,或者通过路由器转发的方式使用。
创建 macvlan 网络(根据实际情况替换参数,并删除注释)
1
2
3
4
5
6docker network create \
-d macvlan \ # 使用 macvlan 网络驱动
--subnet=10.0.0.0/24 \ # 指定网段
--gateway=10.0.0.1 \ # 指定网关 IP
-o parent=eth0 \ # 指定网卡
network-macvlan # 网络名称,随意,自己记得就行TIPS: 据博主的了解,用 Docker 使用 OpenWrt 容器的小伙伴一般都创建过 macvlan 网络,还有 unRaid 会默认创建一个 macvlan 网络。那么很大概率网段就已经被使用了,就不需要再重复创建了。执行
docker network ls | grep macvlan
命令可以查看已有的 macvlan 网络。启动容器(根据实际情况替换参数,并删除注释)
1
2
3
4
5
6
7
8
9docker run -d \
--name adguardhome \
--restart unless-stopped \
--log-opt max-size=1m \
--network network-macvlan \ # 使用之前创建的 macvlan 网络
--ip 10.0.0.53 \ # 设置本容器的 IP
-v $PWD/adguardhome/work:/opt/adguardhome/work \
-v $PWD/adguardhome/conf:/opt/adguardhome/conf \
adguard/adguardhome
Host 网络模式
Host 网络模式直接使用宿主机的网络,没有网络隔离,不需要考虑容器端口的映射,在容器启动后可以自由调整被占用的端口。适合在本机使用 (localhost),或者直通外网的设备对外开放服务,就比如 VPS 、主路由。
1 |
|
AdGuard Home 初始化设置
使用网页浏览器访问 IP + 3000 端口即可进入到 AdGuard Home 的初始化界面,比如 IP 是 10.0.0.10
,那么就访问 http://10.0.0.10:3000
[!NOTE]
由于本人是在服务器上搭建,并且已经做了域名的绑定,因此只需要输入域名加端口号即可访问。
接着是监听接口(网卡)和端口设置,根据不同的网络模式和实际情况需要作出不同的修改:
- Bridge 网络模式:前面提到过在不映射
80
端口的情况下可以改管理界面端口为3000
。 - macvlan 网络模式:无需任何修改。
- Host 网络模式:在多 IP 的 VPS 环境可能需要选择监听接口。端口方面,当提示占用时需要根据实际情况进行调整,是更改端口还是关闭相关占用端口的服务取决于你的最终使用场景。
然后是设置管理用户名和密码,后面都是直接下一步。
完事之后输入用户名和密码登录,就来到了仪表盘页面。
至此 AdGuard Home 就部署完成了。
在设备上使用 AdGuard Home DNS
最后你可以在 AdGuard Home 的设置指导页面找到相应系统的 DNS 设置方法,先不要着急在路由器上使用,建议先设置电脑或手机,通过访问一些网站来测试是否能正常解析。正常的情况下在仪表盘界面会有统计信息,在查询日志界面你会看到解析的详细记录信息。