西区代码小仓库 - pihole
type: channel
link: https://www.lisper517.top/tag/pihole/
items: 自建DNS与广告过滤-adguardhome与pihole

自建DNS与广告过滤-adguardhome与pihole
type: item
date: 2024-01-29T12:25:00+00:00
description: 步骤/目录： 1.背景介绍 2.adguardhome （1）安装 （2）配置 3.pihole （1）安装 （2）配置 附录： （1）macvlan （2）macvlan下的网段 （3）macvlan的其它操作 （4）pihole配置详解本文首发于个人博客https://lisper517.top/index.php/archives/476/，转载请注明出处。本文的目的是介绍自建DNS、过滤广告的两款软件。本文写作日期为2024年1月29日，在Ubuntu 22.04LTS系统演示。1.背景介绍在用电脑、手机平板浏览网页时，经常能看到网页上各种广告。这些广告最常见的形式是一些图片或视频，而图片和视频资源一般是通过网址加载的。如果在路由器中屏蔽这些广告网址，就能实现去广告。路由器默认设置下，会自动选择本地运营商的DNS，而运营商有时候会劫持DNS，情节轻时在返回的内容中加上广告，严重时则返回错误的内容。在这种情况下也有必要自建DNS。2.adguardhomeadguardhome最初应该是国人做的一款去广告DNS。（1）安装根据其 docker网址 的引导，在Ubuntu上如下操作：mkdir -p /docker/adguardhome/data/adguardhome mkdir -p /docker/adguardhome/conf/adguardhome cd /docker/adguardhome vim docker-compose.yml写入如下内容：version: '3.8' services: adguardhome: image: 'adguard/adguardhome' container_name: adguardhome ports: - '53:53' #DNS端口 - '3000:3000' #网页UI，初始配置端口 - '8500:80' #网页UI，后续配置端口 volumes: - ./data/adguardhome:/opt/adguardhome/work - ./conf/adguardhome:/opt/adguardhome/conf restart: unless-stopped以上设置仅将adguardhome作为DNS服务器使用，其实它还可用用来做DHCP服务器（动态分配内网ip）、HTTPS/DNS-over-HTTPS服务器（DNS的过程用HTTPS加密）、DNS-over-TLS服务器（用TLS加密DNS）、DNS-over-QUIC服务器（QUIC加密DNS）、DNSCrypt服务器（不太清楚，应该也是加密），详见原文，需要注意的是HTTPS、TLS、QUIC好像都需要公网ip+域名+HTTPS证书（所以需要在云服务器部署adguardhome），而DNSCrypt虽不需要证书、却需要客户端（电脑，手机平板等使用adguardhome进行DNS的设备）配置软件。另外需要注意，3000端口是adguardhome初始配置的端口，后续WebUI则会在80端口，已被占用的话可以改到其它端口（此处改到8500端口）。最后打开端口，运行即可（其实docker会自动打开，笔者用ufw是为了方便查看）：ufw allow 53 comment "DNS-adguardhome" ufw allow 3000 comment "WebUI-adguardhome-initial" ufw allow 8500 comment "WebUI-adguardhome" docker-compose config docker-compose up如果提示53端口被占用，可以把53改到其它端口，前提是你的路由器支持DNS服务器使用非53端口；或者使用笔者更推荐的macvlan，见附录。（2）配置访问 本地ip:3000 端口，设置登录用户名密码，其它一路默认，完成初始化配置；然后到8500端口进行进一步配置。在adguardhome配置前，或者配置完成后，到你的路由器管理页面，将ipv4的DNS改到adguardhome的ipv4地址。以下配置参考了 这篇文章 。a.DNS服务器在 设置 - DNS设置 - 上游 DNS 服务器 中，填入cloudflare和google的DNS：1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001 8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844后备 DNS 服务器 使用adguardhome提供的DNS：94.140.14.14 94.140.15.15 2a10:50c0::ad1:ff 2a10:50c0::ad…