找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 45222|回复: 772

openwrt中的DNS设置及富强插件配合去广告等设置原理心得

 火... [复制链接]
本帖最后由 whave 于 2022-2-5 19:47 编辑

对于经常在海洋中遨游的人们来说,搭建一艘坚固和舒适的大船是很有必要的。在经过踩了无数次坑的经验以后,总算是搞明白了其中的原理,现在就将本人的一些心得和经验分享各位,本方适合初学的小白,也适合拥有了一定经验的非网络专业的专业人士

一、前言
DNS和网关,是OP(OPENWRT)设置上网中必不可少的东西,网关就像是高速公路的入口,只有进去了才能到达目的地,而DNS的话就像高速公路上的各种指标牌,指引你到达目的地。而只要明白了这两个基本概念,那就可说你应该已经学会一半了,而另一半就是,这两样东西都要求必须畅通,就是要求你设置的这两个值要能直通你的运营商,就像你上了高速,可以根据指示牌到达任何通高速的地方,如果有地方修路或断路,那你就去不了,也就不通了,也就不能上网了,明白这两点,基本原理你就全懂了,接下来就是实操部分。

二、设置方法

1,对于OP来说,DNS的设置方法有两种,一是在LAN口设置的地方使用自定义DNS(不同固件,有的能填写端口,有的不能,本人都遇到过,不设置的情况下系统是默认使用53端口),修改了这里,那就是相当于修改了DHCP/DNS中的解析文件,也就是图中的/TMP/XXXX文件。二是在DHCP/DNS的转发处填写,这里就可以填写带端口的解析地址(127.0.0.1#1234),一般用带#号隔开,设置错误了是保存不了的。设置DNS转发端口的,就相当于启用了XXX插件中的“做为dnsmasq的上游服务器”的选项,两者是等价的。


2,无论你如何设置DNS,最终的DNS一定是要能通过网关,而你设置的网关地址是一定要能连接到运营商,下面实操说明;


三、实操部分

1,对于干净新装的OP系统,先设置好IP地址,要求和主路由或光猫的LAN口IP地址同一网段(也就是IP的前三组数xxx.xxx.xxx.abc字要完全一样),接下来就是设置DNS了,先用方法一,直接在LAN设置自定义,你可以设置成任何公开的DNS地址,也可不设置(主路由拨号上网的可自动获得),还可以设置为主路由的IP地址(旁路由模式),设置完保存出退,就能正常上网了。方法二,直接在端口转发处填上想设置的DNS地址,保存后就能正常上网了,切记,两者不要同时设置。这里要强调的是,不同的固件有的用第一种方法设置端口后不能保存,所以建设直接用第二种方法。


2,使用smartdns插件,它的本质其实就是增加几DNS服务器,同时还拥有dnsmasq没有的一些功能,它本身启用不会对系统的dnsmasq做任何的修改(不启用重定向),假设启用两组服务器,并设置好国内国外的上游服务器。主端口号是6053,二组为6553(为了配合XXXplus,你可以自行改成5335或其他),再用bind :6054 -group cn,bind :6554 -group en,绑定两个端口并指定服务器组。接着我用上述的第二种方法设置路由器本身的DNS,这时,无论你设置成主路由IP地址(可不带端口号),还是设置成127.0.0.1#(6053/6054),都能正常上网,其实,第二组en服务器也能正常上网的,也就是用国外的DNS解析国内的网站地址,但是因为有些地址被墙了,所以解析不了。而更简单的是,假设你的smartdns国内的上游服务器只设一个,且设置成光猫或主路由的IP地址(192.168.2.1),也一样能正常上网,现在,聪明的小伙伴应该明白其中的原理了吧,是的,其实本质上smartdns就是一个DNS转发插件,只要你设置的DNS 的IP能通过网关最终通过运营商,你就能正常上网。

DNS的请求流程如下,系统dnsmasq通过默认的53端口查询----------转发端口或自定义地址查询(smartdns或自定义的其他插件)-------网关---光猫---运营商,用IP地址表示  127.0.0.1#53-----127.0.0.1#6053/6054-----192.168.2.1(223.5.5.5等其他事先设置好的上游dns)-----营运商,注意,再次强调下,能上网的前提一定是设置了正确的网关。因为DNS本身也只是一组IP地址,数据最终是要通过网关连接到外网的。


3,使用adguardhome+XXXX插件,基本原理和上面的完全一样,想要adguardhome正确的显示访问的客户端IP,要求所有的客户必须直接通过adguardhome进行DNS解析;所以,把adguardhome设置为dnsmasq的上游服务的,只能显示127.0.0.1,因为所有的dns解析请求都是首先通过dnsmasq来申请的。但是如果你直接用重定向或替换端口的方法,又会导致XXXX失效,我猜测,应该是XXX插件劫持了系统的dnsmasq解析工作;所以,难点就在这里了,而我们要做的就是在dnsmasq解析之前先通过adguardhome接管解析,再让adguardhome通过dnsmasq解析。而这个方法其实非常的简单,第一,修改dhcp/dns的DNS服务器端口(高级设置里面,假设改为5321),第二,配置adguardhome监听53端口,并设置它的上游服务器地址为修改后的DHCP/DNS的地址端口,它本身的bootstrap服务器地址设为127.0.0.1,然后就没有然后了,完美了,是不是很简单?只要理解了原理,其实就是这么简单。

DNS的请求流程如下,adguardhome接管系统默认的53端口查询-----XXX插件使用dnsmasq查询(5321)-----转发端口或自定义地址查询(smartdns或自定义的其他插件)-----网关---光猫---运营商。用IP地址表示  127.0.0.1#53-----127.0.0.1#5321-----127.0.0.1#6053/6054-----192.168.2.1(223.5.5.5等其他服务器组的dns)-----光猫-----营运商。


四、常见问题

1,为什么我按照教程修改后还是不行呢?注销OP自带防火墙自带的自定义规则(所有涉及到53端口和你上述设置中使用到的端口,规则前面加#)以及你网络中的其他设备中的涉及到上述端口的防火墙规则(如果有多台OP系统的情况);刷新DNS缓存,刷新DNS缓存,刷新DNS缓存。WINDOWS平台,ipconfig /flushdns和浏览器清空缓存。openwrt平台,service dnsmasq restart,手机平台,开关WIFI,AP,重起一次。

2,adguardhome已经初始化过了,还能修改吗?当然可以,一是用WINSCP之类的SSH软件,登录上后台,找到该文件就可以修改了,文件路径在主界面的“配置文件路径”,二是直接在路由器后台的命令行模式修改,用nano或vi命令修改。记得修改文件之前,停止运行adguardhome。

3,怎么确定完美呢?实现正常上网后,重启路由器后,仍然能正常访问,防止因为DNS缓存或插件冲突等原因导致的无法上网,如果还是不行,请确认你使用的插件中所有的重定向都选了“”;忽略解析文件的这项要选吗?随意,你高兴就好。

4,smartdns用bind绑定的两个端口有什么作用?这个参数的功能就是增加两组监听的端口号,再配合你设置的端口转发,实现国内外的DNS解析分流。具体的差异请看下面的差异测试。

5,终极故障排查方法,在设置完以后,想要测试设置的端口是否生效,可以使用nslookup和dig命令进行测试,直接在OP的命令行模式下(也可以使用其他的SSH软件,手机上的也有,叫JuiceSSh)运行,可以指定端口,格式如下:nslookup www.google.com 127.0.0.1:6053,dig @127.0.0.1 -p 5053 www.google.com,如果你运行出错,那说明你的固件没有安装该命令,在OP软件包中搜索安装就行。你也可以每设置一步,就测试一次,这样就能马上验证设置的正确与否。

6,为什么adguardhome客户端中还有127.0.0.1(::1)显示?这个127.0.0.1的客户端其实就是你路由器本身的DNS解析请求,::1是本地的IPV6地址。比如说XXX插件更新数据啊,路由器升级软件包啊之类的访问请求。

7,能正常上网了,可是为什么上XXX网站看视频很慢或者根本就打不开呢?简单的做法就是在smartdns和adguarhome中禁用IPV6解析,又或者你的光猫或拨号的主路由关闭IPV6 DNS服务器。


   

五、smartdns差异测试


1,看图说话,adguardhome中的日志可以看出国外广告测试网站checkadblock.ru,记录中有四分钟的间隔时间,这是因为在DHCP/DNS处转发端口填写的是smartdns的主端口6053,则adguardhome过滤的是所有的网站解析广告,如果填写的是国内端口6554,则只能过滤6554端口的解析网站数据。

2,通过用nslookup对不同端口的解析测试,可以看出:

baidu网站用主端口6053和国内6054端口解析,返回的IP是一样的,用国外6553和绑定国外6554解析,6553的有两个IP,且两个IP都有效(因为6553端口设置了跳过测速等参数),6554和国内的一样。

google网站用主端口6053和国外6553端口解析,返回结果不一样,用绑定国内6054和绑定国外6554解析,返回的IP一样,且和主端口的解析结果一样。说明如果用主端口解析国外网站,存在DNS污染的情况。而绑定国外6554和国外6553的返回值不一样,是因为6553端口中的设置参数,绑定端口6554解析应该是默认使用自定义设置中的参数。一个有返回IPV6地址,一个没有。自定义设置的参数对所有端口生效,具体的参数作用,大家可以去大神的网站查询:https://github.com/pymumu/smartdns


六、结语

断断续续写了两三天,总算是写完了,不容易啊,以前是网上看各种教程教你怎么设置,总是不明白为什么,实际使用中一但更换固件或插件,总是遇到各种各样的问题,现在总算是弄明白了,不过本人水平有限,欢迎各位吐槽。因为有太多的大神曾经说过,不要去弄DNS,用系统或插件自带的就好,对于国内网站,DNS的最优解就是运营商自己的DNS,0.001秒和0.01秒虽然说是10倍差异,但也已经超过了人类的感知范围了。附上测试图一张;


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 7恩山币 +7 收起 理由
雨*** + 1 强大的恩山!(以下重复1万次)
11732*** + 1 感谢你的分享,无论怎样,你都是最无私的人.
vvx*** + 1 强大的恩山!(以下重复1万次)
wk*** + 1 不要怂、就是干!
m32*** + 1 一看就是觉得高端、大气、上档次!
ar*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
SkyT*** + 1 风清云淡、飘逸悠然……极爽!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
谢谢楼主分享,信息量还是挺大的,慢慢消化了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感觉是好文,等待作者更新。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
说得很清楚了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

OPENWRT的DNS详解,收藏~
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感觉smartdns里的端口和后面介绍的端口没有对应

点评

已经修改,感谢提醒  详情 回复 发表于 2022-2-5 16:11
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

好文,感谢分享!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
funison 发表于 2022-2-5 00:06
感觉smartdns里的端口和后面介绍的端口没有对应

已经修改,感谢提醒
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

通俗简洁的基础教程,感谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

dns设置是一个很复杂的内容,你搞得那么清楚。牛!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

说得很清楚了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
我一直用默认的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

谢谢分享了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

学习一下,谢谢分享。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

这种教科书式的帖子正是我需要学习内容,谢谢lz无私的分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

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

GMT+8, 2024-4-28 14:48

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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