搭建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

相关文章

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

pandas数据过滤

Pandas 数据过滤方法 Pandas 提供了多种方法来过滤数据,可以根据不同的条件进行筛选。以下是一些常见的 Pandas 数据过滤方法,结合实例进行讲解,希望能帮你快速理解。 1. 基于条件筛选行 可以使用布尔索引来根据条件过滤行。 import pandas as pd# 创建示例数据data = {'Name': ['Alice', 'Bob', 'Charlie', 'Dav

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

pico2 开发环境搭建-基于ubuntu

pico2 开发环境搭建-基于ubuntu 安装编译工具链下载sdk 和example编译example 安装编译工具链 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib 注意cmake的版本,需要在3.17 以上 下载sdk 和ex

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

Windows下Nginx的安装及开机启动

1、将nginx-1.16.1.zip解压拷贝至D:\web\nginx目录下。 2、启动Nginx,两种方法: (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。 (2)打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可。 3、检查nginx是否启动成功。 直接在浏览器地址栏输入网址 http://lo

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx:

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

C# 防止按钮botton重复“点击”的方法

在使用C#的按钮控件的时候,经常我们想如果出现了多次点击的时候只让其在执行的时候只响应一次。这个时候很多人可能会想到使用Enable=false, 但是实际情况是还是会被多次触发,因为C#采用的是消息队列机制,这个时候我们只需要在Enable = true 之前加一句 Application.DoEvents();就能达到防止重复点击的问题。 private void btnGenerateSh