smartdns icon indicating copy to clipboard operation
smartdns copied to clipboard

openwrt设备如果系统时间未校正较旧,查询dns不返回给客户端

Open galaxyskyknight opened this issue 4 years ago • 4 comments

问题现象
如题,smartdns设置为dnsmasq的上游,openwrt设备刚刷完固件起来后,时间没有校正(可能时间是错的),分别观察openwrt上audit.log和smartdns.log, 发现smartdns.log收到了来自客户端的查询包,但并没有返回给客户端查询结果,在audit.log里看到有向外部dns查询到返回结果。btw: smartdns里配置的全是doH doT的server,国内国外均是(不想使用非doH/doT的server),不知道是不是因为查询证书不在有效时间里导致的。

主要问题是:设备起来的时候,如果没法解析dns,就不能用ntp去解析时间服务器去同步时间,如果时间不能同步,那上面这个问题就导致dns一直解析不了,就形成死循环了。

运行环境

  1. 固件型号
    lede 分支最新版

  2. 运营商
    中国电信

重现步骤

  1. 上游DNS配置。
    跟配置没关系
  2. 访问的域名。
    所有域名

信息收集

  1. 将/var/log/smrtdns.log日志作为附件上传。
  2. 如进程异常,请将coredump功能开启,上传coredump信息文件。
    在自定义界面,开启设置->自定义设置->生成coredump配置,重现问题后提交coredump文件 coredump文件在/tmp目录下

galaxyskyknight avatar Aug 18 '21 01:08 galaxyskyknight

试试配置ntp服务器为 182.92.12.11 202.112.29.82

PikuZheng avatar Aug 22 '21 09:08 PikuZheng

本地时间不准会导致 TLS/SSL 握手失败,DoH 和 DoT 的上游自然不能连接。

aa65535 avatar Aug 25 '21 06:08 aa65535

解决办法是openwrt本身的DNS设置为114或者光猫的IP 然后启动以后就会自动同步时间了

不要把路由器本身的DNS改为127.0.0.1,这个做法是错的

chainofhonor avatar Aug 30 '21 00:08 chainofhonor

把时间同步服务器不要设置域名就行了,直接填时间同步服务器的IP就行了

anybody-one avatar Jul 09 '22 10:07 anybody-one

最新版本验证,有问题reopen issue

pymumu avatar Oct 20 '22 12:10 pymumu