找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 8690|回复: 41

[ikuai] iKuai docker安装smratDNS和ADguardhome

  [复制链接]
发表于 2022-8-31 15:26 | 显示全部楼层 |阅读模式
本帖最后由 437147069 于 2022-12-12 00:16 编辑


iKuai-docker安装smartDNS和ADguardhome


一.这样搭建有什么好处

1.好处

1.1 smartDNS解析速度快。可以将smratDNS分为两组,国内一组、国外一组避免了DNS污染。
1.2 ADguardhome通过DNS来屏蔽广告,配置后可以过滤大部分广告。
1.3 我使用的是主路由+旁路由的模式,家里很多设备用不到科学环境。主路由负责稳,旁路由负责锦上添花。旁路由折腾坏了需要重装或者升级,openWRT的配置可能就不能保留下来,重新设置耗时耗力。而使用docker搭建这两个功能,就~很稳。


二.简介DNS
1.DNS是什么?

1.1 DNS也就是域名服务器。
1.1.1 例如访问baidu.com,是将baidu.com这个域名转换为这个网页所在的服务器IP地址。DNS就承担了这个转换的角色。
1.2 举例DNS劫持
1.2.1 例如在公司不让员工摸鱼,在公司的DNS将bilibili.com对应到一个不存在的IP,这个时候在公司的小明访问bilibili.com就被劫持到了一个错误的页面。这就是最简单的一个DNS污染。
1.2.2 这个时候小明在电脑设置里将DNS地址改为了其他地址,例如:114.114.114.114,小明再次访问bilibili.com得到了一个正确的IP地址,又可以开始愉快的冲浪了。
1.3 所以有些不存在的网站打不开是这些网站真的不存在吗?不是,只是被污染了。



三.iKuai和openWRT中各DNS的作用

1.iKuai

1.1 wan口设置-拨号得到的DNS
1.1.1 这是运营商分配的DNS,这个作为国内的上游DNS速度应该会很快,但是也最可能被劫持。

1.2 DHCP设置中的DNS
1.2.1 主路由作为唯一的DHCP服务器,在电脑接入路由器,DHCP给电脑下发IP的同时下发DNS地址,这个地方的DNS填写就要分为主路由和旁路由,在下面会讲到。

1.3 DNS设置
1.3.1 DNS设置的作用是将主路由作为一个DNS服务器,在用户请求某个网址的IP地址后,会将这一条记录保存下来,下次再次请求这个地址时,用缓存中的IP地址,这可以极大的缩短请求的时间。
1.3.2 DNS反向代理。用作将某个域名强制绑定至某IP。
1.3.3 在本教程中我们不使用DNS设置这个模块。

2.openWRT

2.1 LAN口设置中的自定义DNS服务器
2.1.1 这个是作为openWRT的上游DNS,通过openWRT请求的域名都会从这个DNS去查询,这里我们应该填写一会儿配置的ADguardhome或者是smartDNS。
2.1.2 这个地方的DNS填写错误的话,会导致经过openWRT上网的设备都打不开网页。

2.2 DHCP/DNS
2.2.1 DNS重定向这个要勾选。dnsmasq也是一个DNS服务器,可以看作iKuai的DNS设置模块。但是dnsmasq为开启会导致某些科学客户端中的直连域名规则/代理域名规则失效。
2.2.2 DNS转发可以看作iKuai的DNS反向代理,我们不需要配置。

2.3 科学客户端中的DNS配置
2.3.1 在使用科学客户端时,为了保证不被DNS劫持,所以要配置与国内DNS不同。如果这个地方配置错误会导致,经过科学客户端的网页全打不开。
2.3.2 以我的“师夷长技以制夷”客户端为例,前面4个过滤模式,均是通过已配置的上网节点去请求IP。而通过UDP请求DNS是直接使用UDP协议去请求。如果是请求我们本地搭建的DNS,那速度是非常快的。
2.3.3 china-dns-NG这个教程不使用,所以不勾选。


四.工作原理
1.主路由DNS查询

1.1 发起请求baidu.com至lan口、主路由、 由于DNS地址设置的是ADguardhome,所以接下来是ADguardhome,ADguardhome的上游DNS是填的smartDNS的国内组,所以最后到达smartDNS。smartDNS查看有没有缓存,没有缓存smartDNS通过设置的一组公共DNS同时查询,谁快就返回谁,最后就拿到了baidu.com的IP地址,就可以建立链接了。链接后如果有带广告的域名将会被ADguardhome的规则拦截,这样就返回了一个纯净的网页。

2.旁路由DNS查询

2.1 发起请求baidu.com至lan口、网关填的旁路由,所以经过主路由、到达旁路由,在分流后,发现是国内域名,由于DNS地址设置的是ADguardhome,所以接下来是ADguardhome,ADguardhome的上游DNS是填的smartDNS的国内组,所以最后到达smartDNS。smartDNS查看有没有缓存,没有缓存smartDNS通过设置的一组公共DNS同时查询,谁快就返回谁,最后就拿到了baidu.com的IP地址,就可以建立链接了。链接后如果有带广告的域名将会被ADguardhome的规则拦截,这样就返回了一个纯净的网页。

3.旁路由国外网络DNS查询

3.1 发起请求google.com至lan口、网关填的旁路由,所以经过主路由、到达旁路由,在分流后,发现是国外域名,由于“师夷长技以制夷”的DNS地址指向的是smartDNS的国外组,请求来到smartDNS。smartDNS查看有没有缓存,没有缓存smartDNS通过设置的国外组公共DNS同时查询,谁快就返回谁,最后就拿到了google.com的正确IP地址,就可以建立链接了。



五.ADguardhome的搭建

1.新增映射目录

1.1 新增目录adguardhome
1.2 进入目录adguardhome,在新增work和conf

2.获取镜像

2.1 搜索镜像库adguardhome,选择adguard/adguardhome并下载

3.配置ADguardhome容器

3.1 添加一个新容器

3.2 映射目录

源路径
目标路径
/d/adguardhome/work
/opt/adguardhome/work
/d/adguardhome/conf
/opt/adguardhome/conf

源路径为刚刚在ikuai创建的路径;目标路径为固定的。

4.配置ADguardhome

4.1 访问刚刚配置的容器ip:3000说明安装成功,更具提示完成配置。配置完成后就可以通过容器 ip进行访问了。

4.2 ADguardhome可以暂时放在一边,我们接下来搭建samrtDNS


六.smartDNS搭建
1.新增映射目录

1.1 新增目录smartdns

2.获取镜像

2.1 搜索镜像库smartdns,选择ghostry/smartdns并下载

3.配置smartDNS容器

3.1 添加一个新容器

3.2 映射目录

源路径
目标路径
/d/smartdns
/smartdns/

源路径为刚刚在ikuai创建的路径;目标路径为固定的。

3.3 配置完成首先停用此容器

4.编辑smartDNS的配置文件

4.1 下载我整理好的smartdns.conf。[点击下载]

也可以在pymumu/smartdns项目下载纯正的配置文件模板。
4.2 了解smartDNS配置文件的分组

参数
说明
-group guonei
/国内分组
-group guowai
国外分组
-exclude-default-group
从默认分组中排除
server
默认DNS类型 UDP
server-tcp
DNS为TCP
server-tls
DNS为tls
server-https
DNS为https

4.3 如何获得可使用的DNS上游服务器
4.3.1 通过网上搜索公共DNS服务器,再使用刚刚搭建的ADguardhome进行测试是否能连接。
配置ADguardhome的Bootstrap DNS 服务器(它的作用是解析配置在上游DNS列表中的域名,所以我们填写一个快速稳定的DNS服务器地址即可)
这里填写ikuai中获取到的服务商提供的DNS地址

4.3.2 这里分享我整理的DNS上游服务器,复制到ADguardhome的上游DNS服务器列表中,点击测试上游DNS服务器,如果测试不可用,则在smartdns.conf中将条目删除。

记录不可用的DNS服务器地址在smartdns.conf中将条目删除后,我们就得到了一个适合自己的smartdns.conf配置文件。



  1. <div>#国内
  2. #阿里
  3. 223.5.5.5
  4. tcp://223.5.5.5
  5. 223.6.6.6
  6. tcp://223.6.6.6
  7. https://dns.alidns.com/dns-query
  8. # 腾讯
  9. 119.29.29.29
  10. https://doh.pub/dns-query
  11. # 360
  12. 101.226.4.6
  13. 218.30.118.6
  14. tcp://218.30.118.6
  15. # 百度 不稳定
  16. 180.76.76.76
  17. #114
  18. 114.114.114.114
  19. tcp://114.114.114.114
  20. 114.114.115.115
  21. tcp://114.114.115.115
  22. # 国外
  23. # CloudflareDNS
  24. 1.1.1.1
  25. tcp://1.1.1.1
  26. tls://1.1.1.1/dns-query
  27. # Google DNS
  28. 8.8.8.8
  29. tcp://8.8.8.8
  30. 8.8.4.4
  31. tcp://8.8.4.4
  32. # Norton ConnectSafe
  33. 199.85.126.10
  34. tcp://199.85.126.10
  35. 199.85.127.10
  36. tcp://199.85.127.10
  37. # 威瑞信
  38. 64.6.64.6
  39. tcp://64.6.64.6
  40. 64.6.65.6
  41. tcp://64.6.65.6
  42. # Comodo安全DNS
  43. 8.26.56.2
  44. tcp://8.26.56.2
  45. # DNS Watch
  46. 84.200.69.80
  47. tcp://84.200.69.80
  48. 84.200.70.40
  49. tcp://84.200.70.40
  50. # freenom
  51. 80.80.80.80
  52. 80.80.81.81
  53. tcp://80.80.80.80
  54. tcp://80.80.81.81
  55. # OneDNS
  56. 112.124.47.27
  57. 114.215.126.16</div>
复制代码



4.4 将配置好的smartdns.conf文件上传至samrtDNS映射的目录

4.5 启动smartDNS容器

4.6 回到ADguardhome将上游dns服务器配置为smartDNS的国内分组
设置-DNS设置-上游DNS服务器中填写smartDNS容器ip,端口53可以省略
测试上游DNS,测试通过则应用

然后在下方找到DNS缓存配置,将所有选项清空。因为我们不需要使用到ADguardhome的缓存,缓存我们已经交给smartDNS处理了。

4.7 配置ADguardhome广告过滤
删除原有规则,这里推荐一个国内广告屏蔽的规则:

  1. https://raw.githubusercontent.com/BlueSkyXN/AdGuardHomeRules/master/all.txt
复制代码

项目地址:BlueSkyXN/AdGuardHomeRules
github下载极慢,耐心等待

七.主路由和旁路由的配置
1.国内组DNS配置

1.1 国内组(例如家里的智能设备,不需要经过旁路由,就算旁路由挂了,家里的智能设备也不会掉线)是直接通过主路由访问,所以我希望国内组的设备获得的是国内组且屏蔽广告的DNS,所以我们在DHCP服务器中填写ADguardhome的DNS地址。

2.国外组DNS配置

2.1 国外组是使用旁路由的openWRT,所以给客户端分配网关和DNS服务器时均指向openWRT

2.2 openWRT配置
2.2.1 lan口设置中DNS服务器填写ADguardhome的地址。
国外组的设备流量虽然需要通过旁路由,但是大多情况还是访问国内网站,这样填写,访问国内网站也能获得最快的速度和广告屏蔽。

2.2.2 科学客户端的DNS服务器选择UDP请求方式,DNS地址填写smartDNS容器ip+国外组端口例如10.0.0.14:7053保存,测试国内外网络访问是否正常。



教程完毕!开始享受一个极速、纯净的网络世界吧。









评分

参与人数 2恩山币 +3 收起 理由
luoyu816 + 1 最喜欢这样详细的教程。
nnttm + 2 感谢你的分享,无论怎样,你都是最无私的人.

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2022-8-31 15:41 | 显示全部楼层
mark,有时间学习一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-8-31 16:15 | 显示全部楼层
很详细地学习了,谢谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-8-31 20:08 | 显示全部楼层
很用心了啊~  顶一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-9-1 00:50 | 显示全部楼层
感谢分享,学习一下!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-9-1 02:43 | 显示全部楼层
正想试试这个,收藏了,学习一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-9-1 09:05 | 显示全部楼层
学习一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-9-1 09:28 | 显示全部楼层
感谢大佬这么详细的指导!太厉害了!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-9-2 10:14 | 显示全部楼层
不错,学习了,感谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-9-6 14:55 | 显示全部楼层
介绍的很详细,教程很棒,支持一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-9-7 09:06 | 显示全部楼层
介绍非常详细了,感谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-9-21 22:38 | 显示全部楼层
楼主,有些图片load不出来,特别是第六节第2部分

点评

不知道是服务器被攻击了,还是运行太久卡住了。现在恢复了。  详情 回复 发表于 2022-9-22 23:07
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2022-9-22 23:07 | 显示全部楼层
xxwesley 发表于 2022-9-21 22:38
楼主,有些图片load不出来,特别是第六节第2部分

不知道是服务器被攻击了,还是运行太久卡住了。现在恢复了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-9-22 23:39 | 显示全部楼层
这个要顶起来。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-9-24 16:58 | 显示全部楼层
大佬,能出个主路由是软路由的+小猫咪的  方案
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-18 14:13

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表