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
7.92k stars 1.05k forks source link

切换WLAN导致DNS查询失败 #1752

Closed 1000oaks closed 2 weeks ago

1000oaks commented 3 weeks ago

问题现象
切换WLAN(在Linux下,比如:启动新的WLAN,关闭WLAN设置,打开WLAN设置,连接新的WLAN),通常所有域名查询失败。

其他本地DNS服务器软件表现正常,疑似是长连接的问题。

使用场景:下课了,笔记本电脑要换一间教室使用。然后DNS查询失败...

sudo systemctl restart smartdns 可以立刻“解决”问题,但不知何时问题会复现。

运行环境

  1. 固件型号
    似乎与固件无关。运行于我的笔记本电脑:Ubuntu 22.04

  2. 运营商
    似乎与运营商无关,但使用联通。

  3. smartdns来源以及版本 最新的commit(2024年6月),自行 git clone 编译。

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

server https://223.5.5.5/dns-query -blacklist-ip

...

# Enable IPV4, IPV6 dual stack IP optimization selection strategy
# dualstack-ip-selection-threshold [num] (0~1000)
# dualstack-ip-allow-force-AAAA [yes|no]
# dualstack-ip-selection [yes|no]
# dualstack-ip-selection no
dualstack-ip-selection no

# edns client subnet
# edns-client-subnet [ip/subnet]
# edns-client-subnet 192.168.1.1/24
# edns-client-subnet 8::8/56

...

如有必要,我将上传完整配置。但我觉得与其他字段无关...

重现步骤

  1. 上游DNS配置。

使用 223.5.5.5 的 DoH

  1. 访问的域名。
    域名无关,但使用 www.ithome.com 做测试。

信息收集

  1. 将/var/log/smrtdns.log日志作为附件上传(注意去除个人相关信息)。

(切换WLAN之后,通过 wget 223.5.5.5 确认新的WLAN网络连通)

[2024-06-07 23:23:35,854][DEBUG][     dns_server.c:7196] query www.ithome.com from 127.0.0.1, qtype: 1, id: 41976, query-num: 1
[2024-06-07 23:23:35,854][DEBUG][     dns_client.c:3855] send query to server 223.5.5.5:443
[2024-06-07 23:23:35,854][ INFO][     dns_client.c:4252] request: www.ithome.com, qtype: 1, id: 38844, group: default
[2024-06-07 23:23:36,430][DEBUG][     dns_client.c:4127] retry query www.ithome.com, type: 1, id: 38844
[2024-06-07 23:23:36,430][DEBUG][     dns_client.c:3855] send query to server 223.5.5.5:443
[2024-06-07 23:23:36,930][DEBUG][     dns_client.c:4127] retry query www.ithome.com, type: 1, id: 38844
[2024-06-07 23:23:36,930][DEBUG][     dns_client.c:3855] send query to server 223.5.5.5:443
[2024-06-07 23:23:37,430][DEBUG][     dns_client.c:4127] retry query www.ithome.com, type: 1, id: 38844
[2024-06-07 23:23:37,430][DEBUG][     dns_client.c:3855] send query to server 223.5.5.5:443
[2024-06-07 23:23:37,930][DEBUG][     dns_client.c:4124] retry query www.ithome.com, type: 1, id: 38844 failed
[2024-06-07 23:23:37,930][DEBUG][     dns_client.c:1600] result: www.ithome.com, qtype: 1, has-result: 0, id 38844
[2024-06-07 23:23:37,930][ INFO][     dns_server.c:2613] result: www.ithome.com, qtype: 1, rtt: -0.1 ms, 0.0.0.0
[2024-06-07 23:23:37,930][DEBUG][     dns_server.c:2336] reply www.ithome.com qtype: 1, rcode: 0, reply: 1
[2024-06-07 23:23:37,930][ INFO][     dns_server.c:1234] result: www.ithome.com, qtype: 1, rtcode: 2, id: 41976
[2024-06-07 23:23:37,930][ INFO][     dns_server.c:2391] result: www.ithome.com, client: 127.0.0.1, qtype: 1, id: 41976, group: default, time: 2076ms
[2024-06-07 23:23:37,930][DEBUG][     dns_server.c:2336] reply www.ithome.com qtype: 1, rcode: 0, reply: 0
[2024-06-07 23:23:37,930][ INFO][     dns_server.c:1234] result: www.ithome.com, qtype: 1, rtcode: 2, id: 41976
  1. 如进程异常,请将coredump功能开启,上传coredump信息文件,同时上传配套的smartdns进程文件。
    在自定义界面,开启设置->自定义设置->生成coredump配置,重现问题后提交coredump文件 coredump文件在/tmp目录下