今天突然看到原来大名鼎鼎的AdGuard开源了一个AdGuard Home,原理就是在dns查询的层面就拦截了广告域名,达到不加载广告就拦截广告的目的,而且因为是dns,所以只需要给设备配置dns就可以,简单方便。

由于是dns,所以大家尽量采用国内的服务器来搭建,因为我们这个还需要配置上游dns,上游dns查询的结果是根据服务器的位置来的,所以如果你用国外的服务器,要查询的网站使用的全球cdn,那么查询到的就是国外cdn的地址,这无形中会减慢网页加载的速度。

亲身实践,不要买腾讯云,腾讯云会检测你是否开放了53端口(dns端口),如果开放了并且有流量通过则会发出警告。

下面我们开始操作

我这里以Centos7演示

Shell

#下载AdGuard Home

wget https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.102.0/AdGuardHome_linux_amd64.tar.gz

#解压

tar -zxvf AdGuardHome_linux_amd64.tar.gz

#进入AdGuardHome目录

cd AdGuardHome

1

2

3

4

5

6

#下载AdGuard Home

wgethttps://github.com/AdguardTeam/AdGuardHome/releases/download/v0.102.0/AdGuardHome_linux_amd64.tar.gz

#解压

tar-zxvfAdGuardHome_linux_amd64.tar.gz

#进入AdGuardHome目录

cdAdGuardHome

解压完之后你需要开通3000、53、以及80端口,如果你的服务器已经有网站占了80端口就换成其他自定义的端口。

注意:宝塔面板开的端口经测试,只是开了tcp的端口,而udp则没有开,dns查询默认使用udp,所以53端口需要命令开通udp。

#firewalld放行53端口udp

firewall-cmd --zone=public --add-port=53/udp --permanent

firewall-cmd --reload

1

2

3

#firewalld放行53端口udp

firewall-cmd--zone=public--add-port=53/udp--permanent

firewall-cmd--reload

ok,开通了端口之后在AdGuardHome目录下将AdGuardHome注册成服务

Shell

./AdGuardHome -s install

1

./AdGuardHome-sinstall

之后你就可以用以下命令控制AdGuardHome

Shell

#启动

systemctl start AdGuardHome

#开机自启

systemctl enable AdGuardHome

#重启

systemctl restart AdGuardHome

#停止

systemctl stop AdGuardHome

1

2

3

4

5

6

7

8

#启动

systemctlstartAdGuardHome

#开机自启

systemctlenableAdGuardHome

#重启

systemctlrestartAdGuardHome

#停止

systemctlstopAdGuardHome

运行AdGuardHome后会提示打开http://ip:3000来初始化AdGuardHome

只需要根据自己需要修改后台80端口,其他一路默认。

如果你步骤都是对的,那么你应该可以打开AdGuardHome的后台了。

点击设置、DNS设置,这里可以设置上游dns,也就是你的服务器要请求的公共dns,你可以填写诸如腾讯、阿里、114等公共dns地址

dns服务设定中限制修改为0,并且禁用ipv6

然后点击过滤器,dns封锁清单,里面内置了AdGuard的基础拦截规则,但在中国可能水土不服,所以我们需要添加自定义规则。下面是我推荐的3个规则,至少可以拦截99%的广告。点击添加阻止列表添加它们。

1、adgk去广告规则:https://gitee.com/banbendalao/adguard/raw/master/ADgk.txt

2、乘风规则:https://raw.githubusercontent.com/xinggsf/Adblock-Plus-Rule/master/ABP-FX.txt

3、乘风规则2:https://gitee.com/xinggsf/Adblock-Rule/raw/master/rule.txt

最后就是设置你自己的dns,AdGuard Home很贴心的给我们很多设备的设置方式。

下面就是测试dns是否生效,我这里以windows为例,在设置好dns后打开cmd

nslookup www.baidu.com

1

nslookupwww.baidu.com

如果能够成功查询到baidu的ip,再返回AdGuard Home后台刷新状态就可以看到dns查询+1了。

adguard自定义_搭建AdGuard Home自定义dns,实现全设备拦截广告的目的相关推荐

  1. 鼠标图标怎么自定义_苹果ios14怎么自定义图标 图标位置自由排列换风格教程

    苹果ios14怎么自定义图标 图标位置自由排列换风格教程 iOS 14 发布后,自定义主屏幕图标成为了一种流行的趋势,一些用户通过「快捷指令」将默认的应用图标替换为自定义图标,然后将应用本来的图标隐藏 ...

  2. 用AdGuard Home搭建一个内部的DNS服务器,开启局域网内无广告和追踪的浏览体验

    为什么使用对象不喜欢广告? 我们在看电视的时候不开会员就有90秒的小广告,刷朋友圈的时候会有汽车.欧巴的互动广告,看新闻头条的时候有贴片广告,看抖音的时候也会有带货的广告,小网站上也还有 * 感荷官在 ...

  3. 从0到1搭建webpack2+vue2自定义模板详细教程

    前言 Webpack2和vue2已经不是新鲜东西了,满大街的文章在讲解webpack和vue,但是很多内容写的不是很详细,对于很多个性化配置还是需要自己过一遍文档.Vue官方提供了多个vue-temp ...

  4. 从 0 到 1 搭建 webpack2+vue2 自定义模板详细教程

    前言 webpack2和vue2已经不是新鲜东西了,满大街的文章在讲解webpack和vue,但是很多内容写的不是很详细,对于很多个性化配置还是需要自己过一遍文档.Vue官方提供了多个vue-temp ...

  5. 优化自定义函数_玩转reacthooks,自定义hooks设计模式及其实战

    前言 自从react16.8,react-hooks诞生以来,在工作中一直使用hooks,一年多的时间里,接触的react项目,渐渐使用function无状态组件代替了classs声明的有状态组件,期 ...

  6. 如何微信链接自定义_微信链接自定义

    微信在分享第三方网站是不显示缩略图和描述的,如下图所示 微信链接自定义_微信链接自定义 要解决这个问题必须调用微信JS-SDK接口,下面讲一下如何调用接口. 第一部分 准备步骤 注册微信公众号. 通过 ...

  7. hibernate自定义_如何自定义Hibernate脏检查机制

    hibernate自定义 介绍 在上一篇文章中,我描述了Hibernate自动脏检查机制. 尽管您应该始终喜欢它,但是有时您可能想添加自己的自定义污垢检测策略. 自定义脏检查策略 Hibernate提 ...

  8. 自定义_如何自定义协议

    前言 何为自定义协议,其实是相对标准协议来说的,这里主要针对的是应用层协议:常见的标准的应用层协议如http.ftp.smtp等,如果我们在网络通信的过程中不去使用这些标准协议,那就需要自定义协议,比 ...

  9. java 自定义形状按钮_制作自定义背景Button按钮、自定义形状Button的全攻略

    在Android开发应用中,默认的Button是由系统渲染和管理大小的.而我们看到的成功的移动应用,都是有着酷炫的外观和使用体验的.因此,我们在开发产品的时候,需要对默认按钮进行美化.在本篇里,笔者结 ...

  10. wordpress 自定义_如何在WordPress中添加自定义字体

    wordpress 自定义 Do you want to add custom fonts in WordPress? Custom fonts allow you to use beautiful ...

最新文章

  1. ARM3级流水和5级流水为什么都是PC=PC+8
  2. NLP | 医学AI又一突破,微软开源生物医学NLP基准:BLURB
  3. 总结之:CentOS6.5 LAMP的基本原理以及分主机架构解析
  4. MFC动态调用DLL
  5. layui --- [结构优化]参数优化
  6. Being a Good Boy in Spring Festival【博弈】
  7. java异常没有catch住_今天才真正了解Java的异常处理
  8. 大数据平台搭建_一文读懂数据平台、大数据平台、数据中台
  9. 前端 JavaScript 中 JSON.stringify() 的基本用法
  10. NYOJ 3(多边形重心)
  11. Spring-全面详解(学习总结)
  12. 解放生产力!20 个必知必会 VSCode 小技巧
  13. [笔记分享] [Display] MIPI屏调试及举例
  14. Tiled源码分析: 序
  15. IBM developerWorks 技术主题 Linux 文档库
  16. 使用BlueZ连接蓝牙手柄
  17. 春节消费观察:四种愉悦感,抓住女人心
  18. ImmunoChemistry艾美捷细胞内GSH测定试剂盒方案
  19. 嵌入式核心板研发之路_启动迅为4412核心板_稳定运行_超强扩展能力
  20. 月经是什么?经期护理保健要注意什么?作为男朋友可以做些什么?

热门文章

  1. 搭建cacti 期间问题总结
  2. Windows Server 2008 R2从低版本升级到高版本
  3. C++生成随机数:几何分布(geometric distribution)
  4. LV自动挂载,快照,删除等操作
  5. 12. 开发工具(make,makefile)
  6. 5.一个三维数组,如何根据最后一维的数字大小正序排列,当然同时要保证索引的关联
  7. 48. 减少 DNS 查找(9)
  8. c语言的真随机,怎样让c语言中的随机函数真正随机?
  9. jquery中的尺寸函数width(),height(),innerWidth(),outerWidth()等的用法
  10. 20190316 学习程序最重要的是思考,不是你会多少技能