本内容来源于什么值得买APP,观点仅代表作者本人作者:纵笔浮生 写在前面1。iKuaiOpenWRT做旁路由网络拓扑 前面几篇文章写完了,基本上折腾完了,以ESXi8。0虚拟机为基础,安装作为iKuai主路由,负责拨号及DHCP,OpenWRT做旁路由。 今天搞定SmartDNSAdGuardHome设置分流与去广告。SmartDNS作为DNS管理并提供DNS缓存,实现国内国外DNS分流,彻底解决DNS污染问题、实现秒开网页。同时搭配AdGuardHome实现整个局域网去广告。 2。【AdGuardHome】有什么用? 作为著名广告拦截与反跟踪软件,可以将广告与追踪相关的域名屏蔽,同时不再需要安装任何客户端,包括Windows、Mac、Android、iOS,下面我们说的是OpenWrt安装AdGuardHome设置全局广告拦截,教程开始之前,我先介绍一下AdGuardHome的工作原理。 AdGuardHome的工作原理是在DNS的域名解析过程中拦截网页上的广告,目前支持DNSoverTLS和DNSoverHTTPS,本教程讲解讲解如何配置OpenWRT的AdGuardHome实现DNS防污染加快网站解析速度和广告拦截。3。什么是DNS? 开搞之前先搞清楚几个概念,便于折腾: 【客户端(client)】:指在本地的电脑或者软件,而服务器(server)就是在网上为客户端提供服务的电脑。client是发出请求(request)的一方,而服务器(server)响应它的请求并为其提供服务。 img 【域名系统(DomainNameSystem,缩写:DNS)】是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,是Internet上解决网上机器命名的一种系统,能够使人更方便地访问互联网。就像拜访朋友要先知道别人家怎么走一样,Internet上当一台主机要访问另外一台主机时,必须首先获知其地址。4。域名解析: 域名解析就像我们初次拜访朋友一样,首先要知道人家的门牌号,然后按照地址去找。在Internet上只知道某台机器的域名还是不够的,还要有办法去找到那台机器。寻找这台机器的任务由网上一种被称为域名服务器的设备来完成的,而完成这一任务的过程就称为域名解析。 可以用IP地址标识,并且可以通过IP地址被访问,但即使是将32位的二进制IP地址写成4个0255的十位数形式,也依然太长、太难记。因此,人们发明了域名(DomainName),域名可将一个IP地址关联到一组有意义的字符上去。用户访问一个网站的时候,既可以输入该网站的IP地址,也可以输入其域名,对访问而言,两者是等价的。例如:微软公司的Web服务器的IP地址是207。46。230。229,其对应的域名是www。microsoft。com,不管用户在浏览器中输入的是207。46。230。229还是www。microsoft。com,都可以访问其Web网站。5。【53端口】 53端口是为(DomainNameServer(DNS域名服务器)服务器所开放的端口,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。6。DNSMASQDNS服务器 OpenWrt默认使用的是DNSMASQ来管理DNS默认监管的53端口。我们这些上网的设备发出的DNS请求都是先到这里,然后再通过DNS转发(在常规设置中可以更改)送到网关,最后到运营商等DNS服务器进行查询。 DNSMASQ是一个轻量级的DNS和DHCP服务器,大约200多KB,并且完整的包含了DNS服务器和DHCP服务器功能,非常适合flash空间有限的嵌入式系统。DNSMASQ作为OpenWrt默认的DNS服务器和转发器,接收Client的DNS查询请求,并回复DNS查询结果。查询的结果可以来自本地缓存和公共DNS服务器,如果本地缓存没有记录,DNSMASQ会将请求转发到公共的DNS服务器,并将公共的DNS解析的结果回复到请求的设备。 那SmartDNS和DNSMASQ有什么区别?我们为何又这么折腾呢? SMARTDNS在设计上并不是替换DNSMASQ的,SMARTDNS主要功能集中在DNS解析增强上,增强部分有:多上游服务器并发请求,对结果进行测速后,返回最佳结果; address,ipset域名匹配采用高效算法,查询匹配更加快速高效,路由器设备依然高效。 域名匹配支持忽略特定域名,可单独匹配IPv4,IPV6,支持多样化定制。 针对广告屏蔽功能做增强,返回SOA,屏蔽广告效果更佳; IPV4,IPV6双栈IP优选机制,在双网情况下,选择最快的网络通讯。 支持最新的TLS,HTTPS协议,提供安全的DNS查询能力。 ECS支持,是查询结果更佳准确。 域名TTL可指定,使访问更快速。 高速缓存机制,使访问更快速。 第二DNS支持自定义更多行为。 7。拟实现的DNS转发流程 设置最核心的部分就是DNS转发端口的衔接,而我们要做的就是把DNSMASQ、Adguardhome、SmartDNS三个插件里的DNS服务器功能分成三个层级,实现层层转发。依次是第一级DNSMASQ,第二级Adguardhome,第三级SmartDNS。 客户端DNS请求流程简单来说就是: 【客户端(client)】国内请求】 192。168。1。1:53192。168。2。1:53(DNSMASQ)192。168。2。1:5351(Adguardhome)192。168。2。1:6053(SmartDNS缓存)上游国内DNS公共服务器返回最快DNS给客户端 【客户端(client)】国外请求 192。168。1。1:53192。168。2。1:53(DNSMASQ)192。168。2。1:5351(Adguardhome)192。168。2。1:5335(SmartDNS缓存)上游国外DNS公共服务器返回最快DNS客户端 经过设置之后,openWrt的默认DNS服务器为DNSMASQ,本地的DNS由openWrt的SmartDNS负责解析缓存,DNSMASQ作为最底层的DNS服务器,只担任转发功能。 一、OpenWrt基本设置1。配置OpenWrt的lan口设置 IPv4地址:为OpenWrt的网关,也是我们管理OpenWrt的地址,这里设置为192。168。50。2。 子网掩码:和ikuai一致保证同一个网段。 IPv4网关:指向ikuai的网关。保证OpenWrt的上网数据传输到ikuai再传输到外网。 使用自定义的DNS服务器:首先设置一个自定义的DNS,这里我们先设置一个能用的DNS即可,保证我们在设置过程中可以上网,后面设置好了,可以将DNS改为由OpenWrt代理,即输入OpenWrt的网关改成192。168。50。2。 2。关闭DHCP服务,统一由ikuai分配 楼主的电信网络没有IPv6服务,全部使用的是IPv4的服务,禁用掉IPv6服务。 3。lan高级设置 lan口高级设置里不勾选IPv6,勾选【开启开机自动运行】和【强制链路】: 4。TurboACC加速 开启【TurboACC加速】,如果前面已经开启了,检查网络内的【TurboACC加速】设置是否正确: 只开启前三个即可,DNS缓存后面由SmartDNS来管理。如果开启了会产生冲突,冲突了就会不生效,关闭TurboACC网络加速设置的DNS加速。 5。防火墙设置基本设置 打开openwrt的防火墙,SYNflood防御、丢弃无效数据包起不起用都可。下面启用FullConeNAT、入站数据、出站数据、转发都设置为接受。 下面lan口开启:IP动态伪装。 防火墙自定义规则 一般openwrt防火墙默认有以几条规则,若没有,加上iptablestnatAPREROUTINGpudpdport53jREDIRECTtoports53 iptablestnatAPREROUTINGptcpdport53jREDIRECTtoports53 〔n(commandvip6tables)〕ip6tablestnatAPREROUTINGpudpdport53jREDIRECTtoports53 〔n(commandvip6tables)〕ip6tablestnatAPREROUTINGptcpdport53jREDIRECTtoports53加入回程旁路由统一转发代码 自定义规则里再加入下面一条规则,如果现在使用的网卡是eth1或者eth2,这里同样修改为eth1或者eth2。 iptablestnatIPOSTROUTINGoeth0jMASQUERADE 如果不加会导致我们广告屏蔽等功能失效,原理大概如下: 家里的上网设备对外发送一个上网请求数据包,向外发一个包,先发到旁路由openwrt(192。168。50。2),如果不加这条规则,旁路由并没有修改这个包的源地址(192。168。50。XX),这个包由旁路由openwrt转发给ikuai主路由(192。168。50。1)再到外网。外网回应的数据包,到了ikuai主路由(192。168。50。1),主路由一查NAT表,发现是设备(192。168。50。XX)的,就直接发给设备了,这个数据(包含广告),没有经过openwrt(192。168。50。2)处理。我们加上这条命令后,回程返回的数据包会先回到openwrt进行处理,再返给设备。 需要设置情况:ikuai主路由开DHCP(未指向openwrt旁路由网关),openwrt旁路由关DHCP,旁路由只有LAN口工作,其他设备需设置静态网关为旁路由,需要设置。 ikuai主路由开DHCP(未指向openwrt旁路由网关),openwrt旁路由开DHCP(强制模式开),旁路由只有LAN口工作,其他设备通过强制DHCP获取旁路由网关,需要设置。 ikuai主路由开DHCP(指向openwrt旁路由网关),openwrt旁路由关DHCP,旁路由只有LAN口工作,需要设置。 ikuai主路由关DHCP,openwrt旁路由开DHCP,openwrt旁路由只有LAN口工作,需要设置。 不需要设置的情况:openwrt旁路由WANLAN共用eth0,不用设置。 ikuai单臂路由情况,openwrt作为拨号路由(有拨号就有WAN口),不用设置。二、ikuai的DNS设置 回到ikuai进行简单设置,这一步将ikuai的DNS设置为openwrt代理: 网关:设置为openwrt的网关:192。168。50。2 这样上网设备发出的数据,到达ikuai,ikuai会发送到openwrt进行一番处理,然后在发送到外网。回程的数据,ikuai也会发送到openwrt进行一番处理,然后转发到各个设备。 DNS:设置为openwrt代理:192。168。50。2 三、安装SmartDNS 安装:在istore中输入SmartDNS,查找软件包安装即可,一般openwrt都带有这个服务,这个就不多说了。 在服务中打开SmartDNS: 四、SmartDNS设置1。SmartDNS基础设置 基本设置SmartDNS勾选启用服务器组名称:china端口默认【6053】开启TCP服务器勾选双栈IP优选勾选域名预加载勾选缓存过期服务重定向默认无缓存大小设为:1000000域名TTL最大值设为:3600勾选启动保存应用。 【双栈IP优选】:应注意自己的设备是否完全支持IPv6,尤其是网络运营商是否支持 【重定向】:一定不要选择,后面我们用AdguardHome进行重定向。还有就是一些版本的SmartDNS,没有重定向功能,改成了自动设置DNSMASQ,如果是这个版本注意不要点自动设置DNSMASQ。因为我自己是用的IPV4公网,这里IPV6的两项设置不勾选,如果用IPV6勾选此两项。 【停用HTTPS地址解析】:如果下面上游路由器添加HTTPS协议的话,停用HTTPS地址解析这一项不要勾选。 【缓存大小】:可根据需求填入,这里填入的数字是指缓存的条数,楼主写了个十万100000,自己可以多写几条。 【域名TTL】:是指缓存的时间,也就是DNS在本地保留生效的时间,留空则根据上游服务器告知的时间缓存,但是如果低于最小值,则按照最小值在缓存之内防止短时间多次查询,如果时间过长则按照最大值缓存防止失效。域名TTL可根据自己需求需求填入,最小值填入300、域名TTL最大值填入3600。域名TTL最大值如果我们这里填入3600,意思是缓存一个小时。同样如果填入864000,意思就是系统会帮我们缓存十天。 2。SmartDNS配置上游服务器 配置参考规则 smartdns提供了域名缓存机制:对查询的域名,进行缓存,缓存时间符合DNSTTL规范。 为提高缓存命中率,适当增大cache的记录数、通过cachesize来设置缓存记录数。内存大的情况下,可适当调大。可以提高cache效率,加快访问速度 适当设置最小TTL值:通过rrttlmin将最低DNSTTL时间设置为一个合理值,延长缓存时间。建议是超时时间设置在1030分钟,避免服务器域名变化时,查询到失效域名。 开启域名预获取功能:通过来启用域名预先获取功能,提高查询命中率。 配合上述ttl超时时间,smartdns将在域名ttl即将超时使,再次发送查询请求,并缓存查询结果供后续使用。频繁访问的域名将会持续缓存。此功能将在空闲时消耗更多的CPU。 数量方面:SmartDNS有测速机制,在配置上游服务器时,建议配置多个上游DNS服务器,包含多个不同区域的服务器,但总数建议在10个左右。 隐私方面:默认情况下,SmartDNS会将请求发送到所有配置的DNS服务器,若上游DNS服务器使用DNS,或记录日志,将会导致隐私泄漏。所以在配置的时候要考虑:配置使用可信的DNS服务器。 优先使用TLS查询。 设置上游DNS服务器组。 IOS系统解析缓慢问题怎么解决? IOS14开始,苹果支持了DNSHTTPS(TYPE65)记录的解析,此功能用于快速DNS查询和解决HTTPS链接相关的问题,但当前还是草案,另外会导致广告屏蔽等功能失效,建议通过如下配置关闭TYPE65记录查询。 forceqtypeSOA65 按照以上规则我们开始进行配置 这里将DNS分别进行分组,当浏览国内网页时使用国内DNS,在访问国外网站时自动使用国外DNS。点新增开始下一步: 添加国内DNS服务器 按照以下设置分别将下面的国内DNS插入进去,注意这里我们使用了国内国外分流,国内国外不宜添加过多,添加之前可以在网上测试下DNS的速度,国内国外各添加十条就够了。DNS测试网站 DNS服务器名称:自己随便定义 服务器组:china(自己随便定义,这个是国内组的意思) 端口:default(默认端口) 类型:udp(国内统一填写)添加添加运营商的DNS(隶属于国内组) 首先添加电信运营商给的DNS。这样在查询的时候会优先查询。打开ikuaiwan口拨号页面,查看供应商给的DNS,可以看到电信供应商给了两个DNS: 将两个DNS复制出来,在SmartDNS分别添加上去。116。228。111。118 180。168。255。18 添加完成,将上面的DNS删掉,尽量保证电信供应商的排在第1、2位置。 关于DNS,可以到dns。ip。cn查询:添加国内DNS服务器:阿里公共DNS:223。5。5。5,223。6。6。6类型选择:UDP 阿里加密DNS:aliDNSipDNSquery类型选择:https 阿里加密DNS:DNS。aliDNS。comDNSquery类型选择:https 腾讯公共DNS:119。29。29。29类型选择:UDP 腾讯加密DNS:doh。pubDNSquery类型选择:https 腾讯加密DNS:sm2。doh。pubDNSquery类型选择:https 百度公共DNS:180。76。76。76类型选择:UDP 华为云公共DNS:122。112。208。1,139。9。23。90类型选择:UDP 114公共DNS:114。114。114。114,114。114。115。115类型选择:UDP OpenerDNS:42。120。21。30类型选择:UDP DNS派电信移动铁通:101。226。4。6,218。30。118。6类型选择:UDP DNS派联通:123。125。81。6,140。207。198。6类型选择:UDP 添加完成: 添加国外DNS服务器 下面进行添加国外DNS,国外DNS协议要添加UDP、TCP和TLS三种协议。 服务器组选择:guowai 添加一项额外的服务器参数(从默认服务器组排除),填入: excludedefaultgroup 下面搜集了这些常见的国外DNS:GoogleDNS:8。8。8。8,8。8。4。4类型选择:tls(UDPTCP也可以加入) Google加密DNS:dns。googlednsquery类型选择:https Google加密DNS:dns。google类型选择:tls CloudFlare:1。1。1。1类型选择:tls(UDPTCP也可以加入) IBMQuad9:9。9。9。9类型选择:tls(UDPTCP也可以加入) IBMQuad9:doh。opendns。comdnsquery类型选择:https NortonConnectSafe:199。85。126。10199。85。127。10类型选择:UDP 威瑞信:64。6。64。664。6。65。6类型选择:UDP Comodo安全DNS:8。26。56。268。20。247。20类型选择:UDP DNSWatch:84。200。69。8084。200。70。40类型选择:UDP OpenDNS:208。67。222。222,208。67。220。220类型选择:tls(UDPTCP也可以加入) 韩国电信DNS:168。126。63。1,168。126。63。2类型选择:tls(UDPTCP也可以加入) V2EXDNS:199。91。73。222,178。79。131。110类型选择:tls(UDPTCP也可以加入) 有的版本的SmartDNS是有从默认服务器组排除这个选项的,如果有这个选项,国外的DNS服务器在添加的时候,勾选就可以了。这样就可以把国内组进行分开,访问国内网站的时候使用国内DNS,使用国外网站的时候,选择国外的DNS服务器。 添加完成: 设置第二DNS服务器 启用第二DNS服务器,端口默认5335,因为很多插件的DNS服务中用的就是5335端口,这里设置后好了之后,直接选用即可。 服务器组我们选择上面的国外分组,其他的对照设置。 启用开启TCP服务器本地端口设为5335服务器组:guowa勾选跳过测速勾选跳过address规则勾选跳过双栈优选勾选跳过cache启用保存应用 下面四项勾选,第二DNS服务器设置完毕。 SmartDNS自定义设置 在SmartDNS自定义中添加下面两项分组信息,其他的删掉即可,只保留主体部分: bind:6053groupchina bind:5335groupguowai SmartDNS自定义备份Addcustomsettingshere。 setloglevel loglevel〔level〕,levelfatal,error,warn,notice,info,debug loglevelerror logsizek,m,g logsize128k logfilevarlogsmartDNS。log lognum2 ListofhoststhatsupplybogusNXdomainresults bogusnxdomain〔ipsubnet〕 bind:6053groupchina bind:5335groupguowai五、配置AdGuardHome1。AdGuardHomeWEB端设置 在服务里打开AdGuardHome,可以看到基本设置、日志、手动设置三个选项。前两个是wed端可视设置,手动设置就是通过命令进行设置。 首先看第一项基础设置 更新核心 首先更新核心版本,现在可以看到红色的状态是未运行和未重定向,如果特殊上网正常的话是可以更新的,点击检查更新,更新核心: 手动更新核心 如果因为网络问题无法更新,那只能手动更新了。打开AdGuardHome,找到点击右下角,作者编译好的最新的版本。 打开列表,找到自己对应的版本,一般X8664位平台选择换个版本即可。 下载打开压缩包,第一个AdGuardHome就是核心文件,我们只用到这一个就可以了。 我们打开winSCP,电脑上没有的可以去下载安装下: 安装完成后,新建连接。输入主机名,openwrt的IP地址,端口号不用该,输入用户名和密码,连接。 点击【打开目录】,路径输入usrbinAdGuardHome,确定打开。 将刚才下载的复制粘贴进来: 右击属性,分配权限,权限和下面一样就可以了。 这时可以看到核心已经有了。 2。重定向方式: 更新完核心之后可以看到,重定向选项,重定向方式有【作为DNSMASQ的上游服务器】、【重定向53端口到Adguardhome】、【使用53端口替换DNSMASQ】3种选择,这里先选择无,就是先不重定向,等到后面设置好了,我们再开启。 先来捋一下,AdGuardHome的上级DNS服务器是SmartDNS,这点是肯定的,我们主要是要理清DNSMASQ和Adguardhome之间的关系。而DNSMASQ和Adguardhome的上下级关系关系就是通过重定向来实现的。 关于三种重定向方式的区别。从下面luciappadguardhome的作者注释来看,【作为DNSMASQ的上游服务器】是最稳定的方式,就采用这个就好了,效果其实都一样,不要折腾,越折腾莫名其妙的问题越多。作为dnsmasq的上游服务器(在AGH中统计到的ip都为127。0。0。1,代价就是没法统计局域网客户端,都显示127。0。0。1了,无法统计客户端及对应调整设置,基本上无影响,但是酸酸乳plus正常) 重定向53端口到AdGuardHome(ipv6需要开启ipv6natredirect否则如果客户端使用ipv6过滤无效,不以dnsmasq为上游酸酸乳plus失效) 使用53端口替换dnsmasq(需要设置AGH的dnsip为0。0。0。0,AGH和dnsmasq的端口将被交换,不以dnsmasq为上游酸酸乳plus失效) 然后勾选【详细日志】、【开机后网络准备好时重启】、【在关机时备份工作目录文件】所有的选项,保存启动AdGuardHome。 3。AdGuardHomeweb端配置 这时可以看到,AdGuardHome已经运行,但是还有一个红色的未重定向,这是正常的。 后打开下面框选的位置,打开AdGuardHome的web配置页面。 也可以直接输入旁路由地址:端口号,楼主旁路由地址是192。168。50。2,可以直接输入192。168。50。2:3000进行配置。会出来个网页。点击开始配置进入下一步: 端口设置 网页管理界面监听接口所有接口,端口号设置为默认的3000。也可以设置成其他的,这个只要不和现用的其他端口冲突即可。 DNS服务器监听接口所有接口,端口号设置为5351。(这个可以随便设置一个,同样也是不冲突就行) 网页管理界面登录密码 配置AdGuardHome的网页管理界面登录密码,输入常用的账户密码即可。 点击进入下一步,检查有没有问题,可以把这些内容保存下来,省的以后忘记或者后面设置忘记了。为保证AdGuardHome可以开始正常工作,您需要在设备上对其进行配置。AdGuardHomeDNS服务器正在监听以下地址: 127。0。0。1:5351 172。17。0。1:5351 192。168。50。2:5351 〔::1〕:5351 〔fe80::62be:b4ff:fe09:c9fbrlan〕:5351设置AdGuardHome的上游DNS服务器 首先【常规设置】 常规设置里【使用过滤器和Hosts文件以拦截指定域名】勾选开启,其他选择关闭。不要问为什么,问就是稳定优先,已经够用,开了会出bug,网页崩溃、显示不全、打不开等种种问题。 日志和统计大家根据自己的喜好设置就可以了,这个没多大影响。 再打开【DNS设置】页面,设置AdGuardHome的上游DNS服务器: 前面我们已经在在SmartDNS设置了国内DNS端口为端口默认【6053】 SmartDNS第二DNS服务器(国外DNS)的端口为【5335】 这时候我们就要将AdGuardHome的上游DNS服务器设置为SmartDNS,将AdGuardHome过滤后的DNS请求再转发给SmartDNS。 上游DNS服务器设置为:127。0。0。1:6053 127。0。0。1:5335 至于为何是127。0。0。1? 127。0。0。1是一个特殊用途的IPv4地址,称为localhost或环回地址。所有计算机都使用此地址作为自己的地址,但它不会像真实IP地址那样让计算机与其他设备通信。 。的任何数据包都不应该离开计算机(主机),发送它而不是被发送到本地网络或互联网,它只是被自己环回,并且发送数据包的计算机成为接收者。localhost只是默认情况下引用127。0。0。1的简写,就是当做本地主机的总127。0。0。1来用。 下面DNS的查询方式有负载均衡、并行请求、最快的IP地址三种,楼主还是建议选择并行请求,上面我们设置过了DNS全部放到了smartdns里面缓存,Adguardhome会向smartdns缓存库里并行查询,smartdnsDNS本身具有返回最快dns的功能,也会向Adguardhome返回最快的DNS。 列一下三种方式的区别(恩山大佬的分享):负载均衡:一次查询一台服务器。AdGuardHome将使用加权随机算法来选择服务器,以便更频繁地使用最快的服务器。具体使用感受是,去视频app广告迅速,微博国际版登陆5秒广告可以去除,图片加载速度较快。存在的问题是,仪表盘平均处理时间较长,80120ms之间。 并行请求:通过同时查询所有上游服务器,使用并行请求以加速解析。最老的模式,在添加本地DNS地址的情况下,去视频app广告迅速,微博国际版登陆5秒广告可以去除,仪表盘平均处理时间较短,可以保持在58ms之间。存在问题是,图片加载速度受影响,偶尔会加载慢,存在些许不稳定因素。 最快的IP地址:查询所有DNS服务器并返回所有响应中速度最快的IP地址。因必须等待全部DNS服务器均有所回应,因而会降低DNS查询的速度,但同时此举将会改善总体的连接。本模式据说是SmartDNS的功能一样。对比上述模式没有区别,和并行模式并无态度啊去吧。存在问题是,仪表盘处理时间超长,1000ms以上 接下来到Adguardhome的网页控制面板中,将BootstrapDNS服务器设为127。0。0。1:6053。 DNS服务配置 速度限制:0 DNS缓存配置 这里都空着即可,采用上游DNS服务器,也就是让SmartDNS来管理这些,如果设置会产生冲突。 3。DNS黑名单设置 将阻止匹配DNS拦截清单的域名,这里添加的清单就是一种在线的TXT文件,而且是有专人维护的。可能是公司或者是大神来维护。而TXT文件里面就是一条一条网站信息。 添加黑名单,这里可以从列表中添加,也可以添加自定义名单,列表中是Adguardhome收集和维护的一些名单,可以直接使用。自定义名单是从网上找一些大神为爱发电分享的名单。 其中列表名单里这一条推荐使用,其他的可以去找一些网络大神分享的名单,搜索Adguardhome规则。 4。黑名单推荐 AdGuard默认的内置规则里很多选择,规则一定不要搞太多,一两个综合性的规则列表就已足够覆盖大部分情况,如果同时使用,这些规则可能会冲突,出现很多莫名其妙的问题,使用几个自己用的顺手的就可以了。有的规则带有两个或者两个以上的源头,可以留着以后失效之后使用。【】后面就是规则地址,使用前请自行在列表地址前面加上https:前缀。 1。【EasyListChinaEasyList去除国际国内网页中大多数广告,包括不需要的框架、图像和对象】easylistdownloads。adblockplus。orgeasylistchinaeasylist。txt 2。【EasyList去除国际网页中大多数广告,包括不需要的框架、图像和对象】easylistdownloads。adblockplus。orgeasylist。txt 3。【EasylistChina针对国内的补充规则】easylistdownloads。adblockplus。orgeasylistchina。txt 4。【HalfLife合并规则,合并自EasylistChina、EasylistLite、CJX’sAnnoyance】cdn。jsdelivr。netgho0HalfLife0olistmasteradpc。txt 5。【HalfLife合并规则,合并自EasylistChina、EasylistLite、CJX’sAnnoyance】raw。githubusercontent。como0HalfLife0olistmasteradpc。txt 6。【adpc。txt推荐桌面端,合并自乘风视频广告过滤规则、Easylist、EasylistChina、EasyPrivacy、CJX’sAnnoyance,以及补充的一些规则】cdn。jsdelivr。netgho0HalfLife0olistmasteradpc。txt 7。【adpc。txt推荐桌面端,合并自乘风视频广告过滤规则、Easylist、EasylistChina、EasyPrivacy、CJX’sAnnoyance,以及补充的一些规则】raw。githubusercontent。como0HalfLife0olistmasteradpc。txt 8。【admo。txt合并自Easylist、EasylistChina、EasyPrivacy、CJX’sAnnoyance】cdn。jsdelivr。netgho0HalfLife0olistmasteradmo。txt 9。【admo。txt合并自Easylist、EasylistChina、EasyPrivacy、CJX’sAnnoyance】raw。githubusercontent。como0HalfLife0olistmasteradmo。txt 10。【ad1合并自乘风视频广告过滤规则、EasylistChina、EasylistLite、CJX’sAnnoyance,以及补充的一些规则】cdn。jsdelivr。netgho0HalfLife0olistmasterad。txt 11。【ad1合并自乘风视频广告过滤规则、EasylistChina、EasylistLite、CJX’sAnnoyance,以及补充的一些规则】raw。githubusercontent。como0HalfLife0olistmasterad。txt 12。【ad2。txt合并自乘风视频广告过滤规则、EasylistChina、EasylistLite、CJX’sAnnoyance】cdn。jsdelivr。netgho0HalfLife0olistmasterad2。txt 13。【ad2。txt合并自乘风视频广告过滤规则、EasylistChina、EasylistLite、CJX’sAnnoyance】raw。githubusercontent。como0HalfLife0olistmasterad2。txt 14。【ad3。txt合并自乘风视频广告过滤规则、EasylistChina、EasylistLite、CJX’sAnnoyance、EasyPrivacy】cdn。jsdelivr。netgho0HalfLife0olistmasterad3。txt 15。【ad3。txt合并自乘风视频广告过滤规则、EasylistChina、EasylistLite、CJX’sAnnoyance、EasyPrivacy】raw。githubusercontent。como0HalfLife0olistmasterad3。txt 16。【adedentw。txt合并自AdblockWarningRemovalList、ABPfilters、antiadblockkillerfilters】cdn。jsdelivr。netgho0HalfLife0olistmasteradedentw。txt 17。【adedentw。txt合并自AdblockWarningRemovalList、ABPfilters、antiadblockkillerfilters】raw。githubusercontent。como0HalfLife0olistmasteradedentw。txt 18。【antiAD规则目前中文区命中率最高的广告过滤列表,实现了精确的广告屏蔽和隐私保护,屏蔽广告域名、电视广告、APP内置广告,同时屏蔽了一些日志收集、大数据统计等涉及个人隐私信息的站点,能够保护个人隐私不被偷偷上传】raw。githubusercontent。comprivacyprotectiontoolsantiADmasterantiadeasylist。txt 19。【antiAD规则目前中文区命中率最高的广告过滤列表,实现了精确的广告屏蔽和隐私保护,屏蔽广告域名、电视广告、APP内置广告,同时屏蔽了一些日志收集、大数据统计等涉及个人隐私信息的站点,能够保护个人隐私不被偷偷上传】raw。githubusercontent。comprivacyprotectiontoolsantiADmasteradblockforDNSMASQ。conf 20。【AntiADCDN加速】antiad。neteasylist。txt 21。【AntiADCDN加速】cdn。jsdelivr。netghprivacyprotectiontoolsantiADmasterantiadeasylist。txt 22。【adgk手机去广告规则】raw。githubusercontent。combanbendalaoADgkmasterADgk。txt 23。【Youtube去广告】sdwz。icuTQtFq 24。【大圣净化】cdn。jsdelivr。netghjdlingyuadwarsmasterhosts 25。【澳门皇家赌场及恶意广告主机列表】raw。githubusercontent。comGoooler1024hostsmasterhosts 26。【adgk手机去广告规则】raw。githubusercontent。combanbendalaoADgkmasterADgk。txt 27。【EasyPrivacy去跟踪从网络上完全删除所有形式的跟踪,包括Web错误、跟踪脚本和信息收集,从而保护您的个人数据】easylistdownloads。adblockplus。orgeasyprivacy。txt 28。【Adbyby】raw。githubusercontent。comadbybyxwhycrulesmasterlazy。txt 29。【AdbybyCDN加速】cdn。jsdelivr。netghadbybyxwhycrulesmasterlazy。txt 30。【Adbybyvideo】raw。githubusercontent。comadbybyxwhycrulesmastervideo。txt 31。【CDN加速列表】cdn。jsdelivr。netghadbybyxwhycrulesmastervideo。txt 32。【ADH去广告拦截】raw。githubusercontent。comBlueSkyXNAdGuardHomeRulesmasterall。txt 33。【其他大神推荐,3个随便选一个即可】 链接:catsteam。github。ioAdRulesDNS。txt 链接:gitlab。comcatsteamadrulesrawmainDNS。txt 链接:adrules。topDNS。txt5。白名单推荐 有误杀可尝试使用白名单,添加到Adguardhome的允许清单(不保证一定能解决问题),下面的地址请自己加上https:前缀。catsteam。github。ioAdRulesallowdomainslist。txt gitlab。comcatsteamadrulesrawmainallowdomainslist。txt adrules。topallowdomainslist。txt 6。自定义规则 也可以添加你的规则列表,在允许清单里加上这个网址,这个网站就可以使用了,相当于给这个网站开了一个特权。 ADGUARD过滤语法规则,一行一回车,常用的就是第一二条。手动添加和接触拦截。直接复制,然后将里面的网址替换掉就可以了。 example。org拦截example。org域名及其所有子域名 example。org放行example。org及其所有子域名 比如我们要放行值得买网站及其子域名,只要添加一行代码就可以了,用于访问个别网站时候有BUG时快速添加。 post。smzdm。com 7。Adguardhome重定向【作为DNSMASQ上游服务器】 回到基本设置,会看到Adguardhome运行中、已重定向。 【作为DNSMASQ上游服务器】,可以看到前面的重定向变成了5351重定向,这个也就是AdGuardHome的DNS监听端口,如果你设置成8336、8338或者其他,这里显示的就是你设置的端口值。选择【作为DNSMASQ的上游服务器】,这样设置之后Adguardhome变成了DNSMASQ的上级DNS服务器。 六、DNSMASQ设置 最后一步设置DNSMASQ。打开网络DHCPDNS,可以看到DNSMASQ服务,主要是解除DNSMASQ的DNS功能,只保留转发功能,让DNSMASQ作为AdGuardHome的下级服务生效。 我们到DNSMASQ看下目前的状态,在【网络】【DHCPDNS】DNS转发,可以看到,DNS转发内已经自动设置成了127。0。0。15351。如果转发路径不对,就强制改成127。0。0。15351。 2。HOSTS和解析文件 这里忽略掉解析文件,不用DNSMASQ的解析。 【etchosts】是记录本地配置的域名和IP的映射的文件,是域名解析(如ping,http访问)时域名的第一解析方式。DNSMASQ可以选择加载etchosts到本地缓存,也可以选择不加载。 如果选择加载:当客户端(client)设备的DNS请求的域名正好在etchosts中的情况下,DNSMASQ直接回复etchosts域名对应的IP地址。 如果选择不加载:DNSMASQ则会将请求转发到公共的DNS服务器去解析,而不是使用etchosts中的记录,通过nohosts选项可以选择是否加载etchosts内容作为DNSMASQ的DNS的本地缓存。 【etcresolv。conf】该文件主要记录DNS的NameServer,对于没在etchosts记录的域名,系统向NameServer发起DNS请求,从而解析域名。 3。高级设置 前半部分保持默认即可: 同样在在【网络】【DHCPDNS】高级设置里面DNSMASQ还是在监听53端口。DNS查询缓存的大小设置为0。不使用DNSMASQ的DNS缓存。点击保存生效。 到这里整个设置完成了,从DNSMASQAdGuardhomeSmartDNS设置好了。DNSMASQ监听本地【53端口】,将请求转发到AdGuardHome监听的【5351端口】,然后AdGuardHome再转发到SmartDNS查询最快的DNS,然后提交给DNSMASQ,然后发送到ikuai主路由。回程数据首先发送到ikuai,然后经过SmartDNS交给AdGuardhome进行处理,返回到DNSMASQ,然后发送回设备。 查询流程: 进入配置网页,仪表盘里你会发现已经开始DNS查询和广告拦截了。这里我们看到客户端拦截列表里看到的全部都是127。0。0。1的数据。我们前面在重定向模式中选择了【作为DNSMASQ上游服务器】,DNS请求第一步经过DNSMASQ,然后才到Adguardhome,所以Adguardhome接受到的都是53端口的DNS请求,这时候Adguardhome自是无法区分是哪个客户端发过来的请求,所以才出现了后台拦截的全都是127。0。0。1的数据。这里小伙伴不需要纠结,影响不大,稳定第一。 4。AdGuardHome手动设置代码: 如果懒得设置也可以使用别人的代码,不过容易出问题,最好的方法就是自己花个十几分钟设置一下。本次设置的代码如下: bindhost:0。0。0。0bindport:3000users:name:rootpassword:2a10HUb1IkETLPcb。pgaWHQoeV5NplfVauthattempts:5blockauthmin:15httpproxy:language:theme:autodepprof:falsewebsessionttl:720dns:bindhosts:0。0。0。0port:5351statisticsinterval:1querylogenabled:truequerylogfileenabled:truequeryloginterval:2160hquerylogsizememory:1000anonymizeclientip:falseprotectionenabled:trueblockingmode:defaultblockingipv4:blockingipv6:blockedresponsettl:10parentalblockhost:familyblock。dns。adguard。comsafebrowsingblockhost:standardblock。dns。adguard。comratelimit:0ratelimitwhitelist:〔〕refuseany:trueutreamdns:127。0。0。1:6053127。0。0。1:5335utreamdnsfile:bootstrapdns:127。0。0。1:6053allservers:truefastestaddr:falsefastesttimeout:1sallowedclients:〔〕disallowedclients:〔〕blockedhosts:version。bindid。serverhostname。bindtrustedproxies:127。0。0。08::1128cachesize:0cachettlmin:0cachettlx:0cacheoptimistic:falsebogusnxdoin:〔〕aaaadisabled:trueenablednssec:trueednsclientsubnet:truexgoroutines:300handleddr:trueiet:〔〕ietfile:filteringenabled:truefiltersupdateinterval:24parentalenabled:falsesafesearchenabled:falsesafebrowsingenabled:falsesafebrowsingcachesize:1048576safesearchcachesize:1048576parentalcachesize:1048576cachetime:30rewrites:〔〕blockedservices:〔〕utreamtimeout:10sprivatenetworks:〔〕useprivateptrresolvers:truelocalptrutreams:〔〕usedns64:falsedns64prefixes:〔〕servehttp3:falseusehttp3utreams:falsetls:enabled:falseservername:forcehtt:falseporthtt:443portdnsovertls:853portdnsoverquic:853portdnscrypt:0dnscryptconfigfile:allowunencrypteddoh:falsecertificatechain:privatekey:certificatepath:privatekeypath:strictsnicheck:falsefilters:enabled:trueurl:htt:raw。githubusercontent。como0HalfLife0oliststeradpc。txtname:【adpc。txt】推荐桌面端,合并自乘风视频广告过滤规则、Easylist、EasylistChina、EasyPrivacy、CJXsAnnoyance,以及补充的一些规则;id:1676121231enabled:trueurl:htt:raw。githubusercontent。combanbendalaoADgksterADgk。txtname:【adgk手机去广告规则】id:1676121232enabled:trueurl:htt:sdwz。icuTQtFqname:【Youtube去广告】id:1676121233enabled:trueurl:htt:cdn。jsdelivr。netghjdlingyuadwarssterhostsname:【大圣净化】id:1676121234enabled:trueurl:htt:raw。githubusercontent。comGooolerhostssterhostsname:【host及澳门皇家赌场及恶意广告主机列表】id:1676121235enabled:trueurl:htt:adguardteam。github。ioHostlistsRegistryassetsfilter21。txtname:CHN:antiADid:1676121236whitelistfilters:〔〕userrules:jd。comsmzdm。compost。smzdm。comdhcp:enabled:falseinterfacename:localdoinname:landhcpv4:gatewayip:subnetsk:rangestart:rangeend:leaseduration:86400icmptimeoutmsec:1000options:〔〕dhcpv6:rangestart:leaseduration:86400raslaaconly:falseraallowslaac:falseclients:runtimesources:whois:truearp:truerdns:truedhcp:truehosts:truepersistent:〔〕logfile:logxbacku:0logxsize:100logxage:3logcompress:falseloglocaltime:falseverbose:falseos:group:user:rlimitnofile:0scheversion:145。如何修改Adguardhome密码 如果直接使用上面的代码可能导致主页登录不上去,可以看到代码里面是有一段加密的密码的,这里就需要我们去改一下密码,然后保存生效。 在Adguardhome的基础设置页面,翻到最下面,可以看到有一个功能框,选择改变网页登录密码,点添加。 可以看到网页上出现了一个改变网页登录密码的框,这里输入密码点载入计算模块,点计算即可生成新密码。 将生成的新密码复制到自定义设置里去粘贴一下就可以用新密码登录了。 七、验证已经生效? 采用命令测试最快IP,如果返回多个说明没有设置成功。 nslookupwww。taobao。com127。0。0。1:6053返回的是国内最快的IP nslookupwww。taobao。com127。0。0。1:5335返回的是国外最快的IP nslookupwww。baidu。com127。0。0。1:6053返回的是国内最快的IP nslookupwww。baidu。com127。0。0。1:5335返回的是国外最快的IP 小结 好了今天《OpenWrt旁路由模式下的SmartDNSAdGuardHome设置分流与去广告》就完成了。下一篇会继续折腾《个人域名、DDNS动态解析、公网IP:通过ikuai软路由端口映射高速访问内部网络