空
空
而且,能否在第二次请求的时候返回所有dns服务器返回的ip
> 请在lede上用dig测试一下 ``` root@LEDE:~# dig www.qq.com +trace ; DiG 9.18.1 www.qq.com +trace ;; global options: +cmd . 10 IN NS m.root-servers.net. . 10 IN NS a.root-servers.net. . 10 IN NS...
> 配置里面应该有其他地方设置了speed-check-mode ,排查下。 > > 还有,如果要返回多IP地址,要确保开启cache,并且开启过期缓存。 cache和过期缓存功能一直是开启的 排查过了没有额外的speed-check-mode设置 ``` bind [::]:6053 bind-tcp [::]:6053 dualstack-ip-selection no prefetch-domain yes serve-expired yes cache-size 50000 rr-ttl 60 rr-ttl-min 10 rr-ttl-max 60 rr-ttl-reply-max 10 log-size...
log ``` [2022-07-04 21:35:49,384][DEBUG][ dns_server.c:4013] recv query packet from 127.0.0.1, len = 38, type = 0 [2022-07-04 21:35:49,384][DEBUG][ dns_server.c:4022] request qdcount = 1, ancount = 0, nscount = 0, nrcount...
> 显然您用nslookup 并不是smartdns在应答了 请仔细看我刚刚贴上去的日志 ``` [2022-07-04 21:35:49,396][DEBUG][ dns_server.c:1343] reply message.bilibili.com qtype: 1, rcode: 0, reply: 0 [2022-07-04 21:35:49,396][DEBUG][ dns_server.c:694 ] result: message.bilibili.com, rtt: -0.1 ms, 183.131.147.24 [2022-07-04 21:35:49,396][DEBUG][ dns_server.c:934 ]...
https://github.com/pymumu/smartdns/issues/975#issuecomment-1173819844 > max-reply-ip-num 设置大于1的数 设置的是50 ``` max-reply-ip-num 50 ```
最新代码经过测试问题已经修复,待我用2天看下,有没有其他问题 ``` nslookup www.qq.com 非权威应答: 名称: ins-r23tsuuf.ias.tencent-cloud.net Addresses: 101.91.22.57 101.91.42.232 Aliases: www.qq.com ``` ``` nslookup message.bilibili.com 非权威应答: 名称: a.w.bilicdn1.com Addresses: 61.147.236.44 183.131.147.24 183.131.147.48 61.147.236.45 183.131.147.30 183.131.147.29 61.147.236.43 183.131.147.27 183.131.147.25 61.147.236.39...
> 修改了一下,用最新代码看看。 @pymumu 好像还是有个小问题,就是第二次请求并不会返回所有dns服务器返回的结果的集合,只返回了一个dns服务器的结果 打个比方 ``` DNS1(最快): 返回 1.1.1.1和1.1.1.2 DNS2: 返回 1.1.2.1和1.1.2.2 DNS3: 返回 1.1.3.1和1.1.3.2 期望情况: 第一次请求返回: 1.1.1.1和1.1.1.2 第二次请求返回: 1.1.1.1和1.1.1.2和1.1.2.1和1.1.2.2和1.1.3.1和1.1.3.2 现在是无论如何请求都会返回1.1.1.1和1.1.1.2, 后面两个DNS的结果并不会插入到后续的请求中 ```
> > 现在是无论如何请求都会返回1.1.1.1和1.1.1.2, 后面两个DNS的结果并不会插入到后续的请求中 > > 能确定后续请求的结果 是从cache来的还是从预先获取(prefetch-domain)来的? `prefetch-domain` 会造成这种现象吗? 按照我的理解 `prefetch-domain` 应该是在smartdns启动时将历史域名重新请求一遍并放入 `cache` 中吗? 理应向所有dns服务器发起请求
> 当前设计就是关闭测速后,仅会使用响应最快的DNS结果,并不会将所有结果合并。 > > 目前看来,将所有结果合并没有太多意义。 将所有结果合并是有意义的,比如说我访问国外使用的是国外dns,但是国外dns并不会是最快的返回结果,但是确是最应该访问的. 顺带提一下我关闭所有测速的原因,我认为测速无论是ping还是tcp都会造成请求侧漏,一但开启测速,我对于国外的服务器的连接会再某个阈值超过后被全部掐断一段时间,且延迟增高.关闭后就没有这个现象了