pymumu / smartdns

A local DNS server to obtain the fastest website IP for the best Internet experience, support DoT, DoH. 一个本地DNS服务器,获取最快的网站IP,获得最佳上网体验,支持DoH,DoT。
https://pymumu.github.io/smartdns/
GNU General Public License v3.0
8.32k stars 1.07k forks source link

最新版本37.2.10设置6053端口运行正常,但断开wan口重连后并不会自动恢复为上游服务器导致可上网但smartdns失效 #1064

Closed 58285474 closed 8 months ago

58285474 commented 2 years ago

问题现象
最新版本37.2.10设置6053端口运行正常,但断开wan口重连后并不会自动恢复为上游服务器导致可上网但smartdns失效,另外最新版37.2.10和37.2.10-openwrt什么区别?

运行环境

  1. esir的openwrt夏季高大全

  2. 联通宽带

  3. smartdns版本37.2.10

  4. 涉及的配置(注意去除个人相关信息)

重现步骤

  1. 上游DNS配置。

  2. 访问的域名。

信息收集

  1. 将/var/log/smrtdns.log日志作为附件上传(注意去除个人相关信息)。
  2. 如进程异常,请将coredump功能开启,上传coredump信息文件,同时上传配套的smartdns进程文件。
    在自定义界面,开启设置->自定义设置->生成coredump配置,重现问题后提交coredump文件 coredump文件在/tmp目录下
58285474 commented 2 years ago

还有两个域名的doh

取决于具体配置。smartdns在启动时会使用系统dns把doh域名解析为ip。您系统dns指向dnsmasq,dnsmasq上游是smartdns,如果此时(有策略限制)无法用ip的dns解析返回,则导致死循环,服务不可用

不是这样

使用“作为dnsmasq的上游服务器”的时候并不会出现问题 我一直用这个选项

37版本之前的版本 使用“重定向53端口到SmartDNS”这个选项的时候就会出现无法解析的问题 必定是每次都是无法解析 怎么重启路由都没用

37版本 使用“重定向53端口到SmartDNS”这个选项会出现随机重启路由后的无法解析问题 不是每次都出现

在我这看来“重定向53端口到SmartDNS” 这个选项只是在37版本终于有效能用了但是有bug 而不是从之前的版本都一直都能用功能

37版本看了更新日志后设定了“重定向53端口到SmartDNS”,就一直出现半夜路由自动重启后我早上起来第一件事要检查能不能正常上网,不能就要去断电重启路由,折腾了两天就又改回“作为dnsmasq的上游服务器”这个选项了

不知道有一样字体为啥会变大 将就看吧

怎么样,换38.0版本吗?我还没弄先问问你

更啊 晚上回去就干 协助解决bug 我用起来就能更好 晚上回去试试 放弃吧,我刚更新试了,没用,用mosdns也一样,我这重连wan口和你重启一样的效果,dnsmasq会自动重启复原导致重启后dns转发失效

pymumu commented 2 years ago

@58285474 用下面命令看看

grep -n "dnsmasq" /etc -r | grep server
wyjtm commented 2 years ago

还有两个域名的doh

取决于具体配置。smartdns在启动时会使用系统dns把doh域名解析为ip。您系统dns指向dnsmasq,dnsmasq上游是smartdns,如果此时(有策略限制)无法用ip的dns解析返回,则导致死循环,服务不可用

不是这样

使用“作为dnsmasq的上游服务器”的时候并不会出现问题 我一直用这个选项

37版本之前的版本 使用“重定向53端口到SmartDNS”这个选项的时候就会出现无法解析的问题 必定是每次都是无法解析 怎么重启路由都没用

37版本 使用“重定向53端口到SmartDNS”这个选项会出现随机重启路由后的无法解析问题 不是每次都出现

在我这看来“重定向53端口到SmartDNS” 这个选项只是在37版本终于有效能用了但是有bug 而不是从之前的版本都一直都能用功能

37版本看了更新日志后设定了“重定向53端口到SmartDNS”,就一直出现半夜路由自动重启后我早上起来第一件事要检查能不能正常上网,不能就要去断电重启路由,折腾了两天就又改回“作为dnsmasq的上游服务器”这个选项了

不知道有一样字体为啥会变大 将就看吧

怎么样,换38.0版本吗?我还没弄先问问你

更啊 晚上回去就干 协助解决bug 我用起来就能更好 晚上回去试试 放弃吧,我刚更新试了,没用,用mosdns也一样,我这重连wan口和你重启一样的效果,dnsmasq会自动重启复原导致重启后dns转发失效

我昨天试了 连“作为dnsmasq的上游服务器”这功能好像也有问题会不停的掉线,公网IP地址不停变动,而且DHCP功能都出问题了,本地设备会出现不停地出现断线\连上,重新分配内网ip,关掉或者不用SmartDNS后恢复正常

PikuZheng commented 2 years ago

我昨天试了 连“作为dnsmasq的上游服务器”这功能好像也有问题会不停的掉线,公网IP地址不停变动,而且DHCP功能都出问题了,本地设备会出现不停地出现断线\连上,重新分配内网ip,关掉或者不用SmartDNS后恢复正常

用mosdns也一样,我这重连wan口和你重启一样的效果,dnsmasq会自动重启复原导致重启后dns转发失效

无论是要哪个app去自动配置dnsmasq,必须先证实没有其他app也去动dnsmasq。目前我看到的问题都是多个ip都在争先修改dnsmasq,而且触发条件各不相同。考虑到smartdns最近更新频繁,也很难区别究竟是不是smartdns的bug。

我一直主张 DO NOT TOUCH MY DNSMASQ!,在所有app都不会去乱动的情况下,dnsmasq应完全遵从我手动设置。虽然首次设置勾选填写可能还要写一些额外的iptables命令,但这是一劳永逸的事,无论网怎么通怎么断怎么重启都不会错。

要证实是smartdns的功能问题,请务必先确定没有其他app在争先修改dnsmasq。建议先不启用smartdns的自动设置功能并调整好dnsmasq的设置,看看dnsmasq的设置会不会被其他app修改。

wyjtm commented 2 years ago

smartdns

我路由上只有一个smartdns是额外装的,除了装了一个系统自带的UPnP没有任何其他东西,而且也不存在IP冲突,我所有设备都有绑定mac地址进行静态分配ip不会存在ip冲突,系统也是下的OpenWrt官方编译的OpenWrt 21.02.2 r16495-bf0c965af0 / LuCI openwrt-21.02 branch git-22.046.85957-59c3392 smartdns的配置和所有对路由的修改都是在smartdns的ui里完成的,没有手动去修改dnsmasq配置,dnsmasq全都是装好系统默认配置

PikuZheng commented 2 years ago

我路由上只有一个smartdns是额外装的,除了装了一个系统自带的UPnP没有任何其他东西,而且也不存在IP冲突,我所有设备都有绑定mac地址进行静态分配ip不会存在ip冲突,系统也是下的OpenWrt官方编译的OpenWrt 21.02.2 r16495-bf0c965af0 / LuCI openwrt-21.02 branch git-22.046.85957-59c3392 smartdns的配置和所有对路由的修改都是在smartdns的ui里完成的,没有手动去修改dnsmasq配置,dnsmasq全都是装好系统默认配置

问下是哪个版本的smartdns,哪个版本的luci-app-smartdns,是js版还是lua版

wyjtm commented 2 years ago

我路由上只有一个smartdns是额外装的,除了装了一个系统自带的UPnP没有任何其他东西,而且也不存在IP冲突,我所有设备都有绑定mac地址进行静态分配ip不会存在ip冲突,系统也是下的OpenWrt官方编译的OpenWrt 21.02.2 r16495-bf0c965af0 / LuCI openwrt-21.02 branch git-22.046.85957-59c3392 smartdns的配置和所有对路由的修改都是在smartdns的ui里完成的,没有手动去修改dnsmasq配置,dnsmasq全都是装好系统默认配置

问下是哪个版本的smartdns,哪个版本的luci-app-smartdns,是js版还是lua版

昨天下的38版一直在断线重连那种状态 然后又装回了37.2 37.2就之前说的那些问题 不过我注意了一天,也会出现那种断线重连那种状态 但不频繁一天三四次左右,我开着bt下载一直看着网络状态的log,一出现报错直接就去看光猫的灯,光猫没问题我是用的路由拨号,报错那一下前后十几秒的时间网页也打不开游戏也会掉线,但是我观察路由的指示灯也没有在重启状态进路由也能进去 smartdns.1.2022.08.28-1734.arm-openwrt-all.ipk luci-app-smartdns.1.2022.08.28-1734.all-luci-all.ipk 目前用的这俩安装

对了 我本地安装有流量检测 当能连上路由的时候会自动出现没有连到路由就会自动消失,True Launch Bar的桌面辅助插件 每次出现断网状态这个插件显示就会消失一下 过几秒再出现 这个断网和我拔路由网线时候的情况一样

PikuZheng commented 2 years ago

昨天下的38版一直在断线重连那种状态 然后又装回了37.2 37.2就之前说的那些问题 不过我注意了一天,也会出现那种断线重连那种状态 但不频繁一天三四次左右,我开着bt下载一直看着网络状态的log,一出现报错直接就去看光猫的灯,光猫没问题我是用的路由拨号,报错那一下前后十几秒的时间网页也打不开游戏也会掉线,但是我观察路由的指示灯也没有在重启状态进路由也能进去 smartdns.1.2022.08.28-1734.arm-openwrt-all.ipk luci-app-smartdns.1.2022.08.28-1734.all-luci-all.ipk 目前用的这俩安装

对了 我本地安装有流量检测 当能连上路由的时候会自动出现没有连到路由就会自动消失,True Launch Bar的桌面辅助插件 每次出现断网状态这个插件显示就会消失一下 过几秒再出现 这个断网和我拔路由网线时候的情况一样

由于测速产生大量并发连接,网络在上层被阻断,参考 #936 。关闭测速应该可以缓解

wyjtm commented 2 years ago

昨天下的38版一直在断线重连那种状态 然后又装回了37.2 37.2就之前说的那些问题 不过我注意了一天,也会出现那种断线重连那种状态 但不频繁一天三四次左右,我开着bt下载一直看着网络状态的log,一出现报错直接就去看光猫的灯,光猫没问题我是用的路由拨号,报错那一下前后十几秒的时间网页也打不开游戏也会掉线,但是我观察路由的指示灯也没有在重启状态进路由也能进去 smartdns.1.2022.08.28-1734.arm-openwrt-all.ipk luci-app-smartdns.1.2022.08.28-1734.all-luci-all.ipk 目前用的这俩安装 对了 我本地安装有流量检测 当能连上路由的时候会自动出现没有连到路由就会自动消失,True Launch Bar的桌面辅助插件 每次出现断网状态这个插件显示就会消失一下 过几秒再出现 这个断网和我拔路由网线时候的情况一样

由于测速产生大量并发连接,网络在上层被阻断,参考 #936 。关闭测速应该可以缓解

看了下 我和他情况不大一样我这边是瞬间断掉 然后又连上隔几秒或者十几秒,而且就算你在开机电脑什么都不开也不做也会偶发性出现,没什么规律,去查系统日志发到群里,都说是重新拨号联网和分配内网ip了,但是路由也没有重启,和前面说的我自己的设备都是绑定mac也不可能会出现分配过期的问题

而且这半年我用的是“重定向53端口到SmartDNS” 也一样会出现上面这问题 最初我怀疑是这个ac58u是二手会有暗病? 于是在看到OpenWrt官方支持ACRH17以后果断去买了个新的回来装好用了一星期还是出现一样的问题,但这个问题在我的老的AC51U上就没出现过,区别只是那个是mtk的cpu,这俩新买的路由都是arm的cpu,我也不知道有没有关联反正这问题都一年多了,我没看到有人问也就没问,这次看到类似问题才来回了一贴

最后 请问怎么关闭测速? 我去试试

PikuZheng commented 2 years ago

重新拨号联网和分配内网ip

这两个现象我觉得应该分开侦查。如果是移动网,晚上9点到11点频繁重新拨号且没有什么时间上的规律,很有可能。 重新分配内网ip这个,如果你内网有ipv6,prefix和ra超时时间不匹配会导致这个现象(由于ipv6优先)。ipv4 的dhcp重新分配ip非常快的,基本上不会有感知。

可以在断的时候做路由跟踪测试确定是哪个环节断的,例如tracert 119.29.29.29

怎么关闭测速

speed-check-mode none

wyjtm commented 2 years ago

speed-check-mode none

哦 可能我没说清楚 会出现下面两种情况 1、这种情况是本地电脑看到网络连接突然消失,然后又连上,马上登录路由能进路由 但是要等几秒或者十几秒重新拨号才能打开网页 2、这种是突然会出现网络连接突然消失,然后又连上、网络连接突然消失,然后又连上,这样重复四五次的断开和连接,这种情况下连路由都登陆不进去的,路由登录界面都打不开的

我的是联通的

我把speed-check-mode none加在ui里的自定义设置里最下面一行 这样对吗?

PikuZheng commented 2 years ago

貌似只听说过江苏联通有这个现象。 电脑是有线连接吗?电脑断的话,手机等无线设备会不会同时断?ac58u是128M内存的(US款)还是256M内存的?感觉有点像内存耗尽

PikuZheng commented 2 years ago

我把speed-check-mode none加在ui里的自定义设置里最下面一行 这样对吗

正确。 但联通没有这个限制,没必要试了

wyjtm commented 2 years ago

貌似只听说过江苏联通有这个现象。 电脑是有线连接吗?电脑断的话,手机等无线设备会不会同时断?ac58u是128M内存的(US款)还是256M内存的?感觉有点像内存耗尽

58u是128m的北美款,ACRH17是国行款的 测试的电脑是有线连接的 用的超七类网线 内存耗尽应该不大可能吧 我观察过即便是我两台有线设备全速下载占满带宽也只占用80m左右的内存 网络是200m的联通

全部设备是日常1PC有线 3手机无线 1TV无线 日常家里看电视刷手机感觉不到网络断掉,估计是有缓冲?但是在有线连接的pc上能明显感受到网络断开的波动,会观察到网络连接到路由突然消失了 然后又突然回来了 中间隔了几秒

PikuZheng commented 2 years ago

会观察到网络连接到路由突然消失了 然后又突然回来了 中间隔了几秒

编辑 /etc/sysctl.d/11-nf-conntrack.conf ,修改 net.netfilter.ip_conntrack_max=65536。默认应该是16384 这个要是还不行,我就没什么想法了。总之还是应该调查网络问题,或者换个固件试试。应该不是smartdns的bug(但smartdns的一些行为会触发(或加速)网络故障产生)

wyjtm commented 2 years ago

会观察到网络连接到路由突然消失了 然后又突然回来了 中间隔了几秒

编辑 /etc/sysctl.d/11-nf-conntrack.conf ,修改 net.netfilter.ip_conntrack_max=65536。默认应该是16384 这个要是还不行,我就没什么想法了。总之还是应该调查网络问题,或者换个固件试试。应该不是smartdns的bug(但smartdns的一些行为会触发(或加速)网络故障产生)

好的 我试试 这样修改会对路由产生什么副作用吗?

PikuZheng commented 2 years ago

好的 我试试 这样修改会对路由产生什么副作用吗?

有益(建议一切openwrt都这么改 如果默认没有就新增一行

wyjtm commented 2 years ago

好的 我试试 这样修改会对路由产生什么副作用吗?

有益(建议一切openwrt都这么改 如果默认没有就新增一行

好的 谢谢 我用一段时间再来回报情况