搭建Nginx+AdGuard Home | 防止DNS劫持 | 过滤广告

2023-10-07 01:59

本文主要是介绍搭建Nginx+AdGuard Home | 防止DNS劫持 | 过滤广告,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本教程转自我的博客搭建Nginx+AdGuard Home | 防止DNS劫持 | 过滤广告 - GoodBoyboy 's Blog|惬意小屋-点滴记忆

前言

DNS运营商劫持我相信大家都不陌生了,利用AdGuard Home我们不仅可以自建加密DNS来防止运营商劫持,还可以用来过滤那些垃圾的广告

开始

准备

首先你需要准备一下东西

  • 一台用于挂AdGuard Home的设备

  • 域名一枚

  • SSL证书一个

  • 脑子

开始

这里我们使用docker安装(貌似docker安装会导致无法正确获取到客户端IP),简单方便

下面是官方的docker安装命令

docker run --name adguardhome\

--restart unless-stopped\

-v /my/own/workdir:/opt/adguardhome/work\

-v /my/own/confdir:/opt/adguardhome/conf\

-p 53:53/tcp -p 53:53/udp\

-p 67:67/udp -p 68:68/udp\

-p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\

-p 853:853/tcp\

-p 784:784/udp -p 853:853/udp -p 8853:8853/udp\

-p 5443:5443/tcp -p 5443:5443/udp\

-d adguard/adguardhome

下面是端口的解释

  • -p 53:53/tcp -p 53:53/udp:纯 DNS。

  • -p 67:67/udp -p 68:68/tcp -p 68:68/udp:如果您打算使用 AdGuard 则添加 主页作为 DHCP 服务器。

  • -p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp:添加,如果您 将使用AdGuard Home的管理面板以及运行AdGuard Home作为 HTTPS/DNS-over-HTTPS 服务器。

  • -p 853:853/tcp:如果您打算将 AdGuard Home 运行为 TLS 上的 DNS 服务器。

  • -p 784:784/udp -p 853:853/udp -p 8853:8853/udp:如果要添加 将 AdGuard Home 作为 DNS-over-QUIC 服务器运行。您只能留下一个 或其中两个。

  • -p 5443:5443/tcp -p 5443:5443/udp:如果要运行 AdGuard 添加 Home 作为 DNSCrypt 服务器。

然鹅我们根本不需要开放那么多端口

实际上Windows11目前原生支持DOH,Android原生只支持DOT,但是国内服务器是不能架设DNS服务的,国外服务器则DOT端口被秒封。DHCP服务器用路由器上的就可以了,所以我们这里仅保留DOH以及面板所需的端口

我们将443映射到宿主机随便一个端口,这里是55556,下面是docker命令

docker run --name adguardhome\

--restart unless-stopped\

-v /my/own/workdir:/opt/adguardhome/work\

-v /my/own/confdir:/opt/adguardhome/conf\

-p 127.0.0.1:55555:3000/tcp\

-p 127.0.0.1:55556:443/tcp -p 127.0.0.1:55556:443/udp\

-d adguard/adguardhome

启动容器后利用Nginx代理本地55555端口,访问Adguard home,监听端口保持3000,配置管理员信息,完成后进入主界面

然后我们进入设置,在加密设置里配置好自己的SSL证书,然后勾选启用加密,保存。

最后更改Nginx反向代理端口,代理我们之前开的55556端口

访问即可进入主界面

配置DNS

点击设置中的DNS设置,设置上游DNS服务器

这是我配置的上游DNS

https://dns10.quad9.net/dns-query

tls://8.8.8.8

tls://8.8.4.4

tls://1.1.1.1

tls://1.0.0.1

https://doh.opendns.com/dns-query

https://doh.pub/dns-query

https://dns-unfiltered.adguard.com/dns-query

https://1.12.12.12/dns-query

https://223.5.5.5/dns-query

然后选择并发请求来提高解析速度

下面是我的Bootstrap DNS 服务器

1.1.1.1:53

1.0.0.1:53

9.9.9.10

149.112.112.10

2620:fe::10

2620:fe::fe:10

保存即可

后面的一些设置根据自己的实际需求设置即可,如果不知道也可以去网上搜索,下面的配置仅供参考

广告拦截

然后就是我们的重头戏!!!

点击“过滤器”-->“DNS黑名单”

在里面添加广告拦截规则

下面是我在网上收集的好用的集合

  • Xinggsf 乘风过滤 https://github.com/xinggsf/Adblock-Plus-Rule/blob/master/rule.txt

  • anti-AD https://raw.githubusercontent.com/privacy-protection-tools/anti-AD/master/anti-ad-easylist.txt

  • easylistchina https://easylist-downloads.adblockplus.org/easylistchina.txt

  • easyprivacy https://easylist-downloads.adblockplus.org/easyprivacy.txt

  • anti-AD-adguard https://anti-ad.net/adguard.txt

并不是添加的越多越好,过多规则只会减慢解析速度

上面的规则已经能屏蔽掉大部分广告了(包括Android恶心的开屏广告)

使用

一切配置完后我们就需要部署客户端这边了

Windows上以管理员身份打开cmd

netsh dns add encryption server=<resolver-IP-address> dohtemplate=<resolver-DoH-template> autoupgrade=yes udpfallback=no

其中<resolver-IP-address>是服务器的IP地址,<resolver-DoH-template>是模板,也就是像https://dns10.quad9.net/dns-query这样的

然后在设置中更改即可,详情可以去网上搜索

Android这边要用第三方软件辅助使用DOH,感觉Intra这款软件就很不错

后记

教程写得有点粗糙,如果有什么不会的地方可以在下方留言哦~

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GoodBoyboy 's Blog|惬意小屋-点滴记忆!

这篇关于搭建Nginx+AdGuard Home | 防止DNS劫持 | 过滤广告的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/155354

相关文章

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

Nginx添加内置模块过程

《Nginx添加内置模块过程》文章指导如何检查并添加Nginx的with-http_gzip_static模块:确认该模块未默认安装后,需下载同版本源码重新编译,备份替换原有二进制文件,最后重启服务验... 目录1、查看Nginx已编辑的模块2、Nginx官网查看内置模块3、停止Nginx服务4、Nginx

通过配置nginx访问服务器静态资源的过程

《通过配置nginx访问服务器静态资源的过程》文章介绍了图片存储路径设置、Nginx服务器配置及通过http://192.168.206.170:8007/a.png访问图片的方法,涵盖图片管理与服务... 目录1.图片存储路径2.nginx配置3.访问图片方式总结1.图片存储路径2.nginx配置

Nginx禁用TLSv1.0 1.1改为TLSv1.2 1.3的操作方法

《Nginx禁用TLSv1.01.1改为TLSv1.21.3的操作方法》使用MozillaSSL配置工具生成配置,修改nginx.conf的ssl_protocols和ssl_ciphers,通... 目录方法一:方法二:使用 MoziChina编程lla 提供的 在线生成SSL配置工具,根据自己的环境填充对应的

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

DNS查询的利器! linux的dig命令基本用法详解

《DNS查询的利器!linux的dig命令基本用法详解》dig命令可以查询各种类型DNS记录信息,下面我们将通过实际示例和dig命令常用参数来详细说明如何使用dig实用程序... dig(Domain Information Groper)是一款功能强大的 linux 命令行实用程序,通过查询名称服务器并输