smartdns icon indicating copy to clipboard operation
smartdns copied to clipboard

希望能新增定时检查doh的ip是否有变化

Open Yuan68 opened this issue 1 year ago • 28 comments

需求应用场景 doh/dot网址指向ip有可能会变动,之后请求的解析都会失效。

建议的方案 新增定期更新doh/dot的ip

设备信息

  1. 设备信息(CPU,厂家)

  2. 固件信息

Yuan68 avatar Oct 26 '22 00:10 Yuan68

证实,对于上游服务器的域名 cache ttl 永远是1,即使重查获取到新的ip后也不会更新cache,导致上游连接失败@pymumu

PikuZheng avatar Oct 26 '22 00:10 PikuZheng

我是专门写有解析DNS域名的配置

cresky-github avatar Oct 26 '22 03:10 cresky-github

我是专门写有解析DNS域名的配置

是这么干的 但是上游变了 它缓存不变

PikuZheng avatar Oct 26 '22 03:10 PikuZheng

https://1.12.12.12/dns-query https://1.1.1.1/dns-query https://dns.google/dns-query https://dns.opendns.com/dns-query https://dns.quad9.net/dns-query

address /dns.google/8.8.8.8 address /dns.quad9.net/9.9.9.9 address /dns.opendns.com/208.67.222.222

qwerttvv avatar Oct 26 '22 04:10 qwerttvv

我是专门写有解析DNS域名的配置

是这么干的 但是上游变了 它缓存不变

我这么干,很正常

server-tcp 8.8.8.8 -group GoogleDNS -exclude-default-group

server-tcp 8.8.4.4 -group GoogleDNS -exclude-default-group

nameserver /dns.google/GoogleDNS

cresky-github avatar Oct 26 '22 05:10 cresky-github

https://1.12.12.12/dns-query https://1.1.1.1/dns-query https://dns.google/dns-query https://dns.opendns.com/dns-query https://dns.quad9.net/dns-query

address /dns.google/8.8.8.8 address /dns.quad9.net/9.9.9.9 address /dns.opendns.com/208.67.222.222

dns.google 逻辑上,不一定是8.8.8.8 这么写可能有问题

cresky-github avatar Oct 26 '22 05:10 cresky-github

https://1.12.12.12/dns-query https://1.1.1.1/dns-query https://dns.google/dns-query https://dns.opendns.com/dns-query https://dns.quad9.net/dns-query address /dns.google/8.8.8.8 address /dns.quad9.net/9.9.9.9 address /dns.opendns.com/208.67.222.222

dns.google 逻辑上,不一定是8.8.8.8 这么写可能有问题

https://dig.ping.pe/dns.google:A:8.8.8.8

qwerttvv avatar Oct 26 '22 05:10 qwerttvv

哎你们这么搞都是基于dot/doh有固定ip的情形。但是如果是自建上游用ddns,或一些小众的上游服务器ip会不时的变一下

PikuZheng avatar Oct 26 '22 09:10 PikuZheng

哎你们这么搞都是基于dot/doh有固定ip的情形。但是如果是自建上游用ddns,或一些小众的上游服务器ip会不时的变一下

所以, 楼主的问题好奇怪。 用nameserver,就不会有此问题了

cresky-github avatar Oct 26 '22 12:10 cresky-github

哎你们这么搞都是基于dot/doh有固定ip的情形。但是如果是自建上游用ddns,或一些小众的上游服务器ip会不时的变一下

所以, 楼主的问题好奇怪。 用nameserver,就不会有此问题了

试了预期更新,但实际不更新

PikuZheng avatar Oct 26 '22 13:10 PikuZheng

哎你们这么搞都是基于dot/doh有固定ip的情形。但是如果是自建上游用ddns,或一些小众的上游服务器ip会不时的变一下

所以, 楼主的问题好奇怪。 用nameserver,就不会有此问题了

不是啊,smartdns似乎只会在启动解析一次doh网址,后面直接用第一次解析的ip连接了。我希望启动后能够定期重新解析。

Yuan68 avatar Oct 27 '22 00:10 Yuan68

哎你们这么搞都是基于dot/doh有固定ip的情形。但是如果是自建上游用ddns,或一些小众的上游服务器ip会不时的变一下

所以, 楼主的问题好奇怪。 用nameserver,就不会有此问题了

不是啊,smartdns似乎只会在启动解析一次doh网址,后面直接用第一次解析的ip连接了。我希望启动后能够定期重新解析。

你是怎么解析DNS域名的?

cresky-github avatar Oct 27 '22 07:10 cresky-github

哎你们这么搞都是基于dot/doh有固定ip的情形。但是如果是自建上游用ddns,或一些小众的上游服务器ip会不时的变一下

所以, 楼主的问题好奇怪。 用nameserver,就不会有此问题了

不是啊,smartdns似乎只会在启动解析一次doh网址,后面直接用第一次解析的ip连接了。我希望启动后能够定期重新解析。

你是怎么解析DNS域名的?

没有特别配置,就是按文件里写的server-https。根据debug日志,smartdns只会在启动时将域名解析为ip。后面只认ip了。

Yuan68 avatar Oct 27 '22 08:10 Yuan68

我用固定ip,不涉及变化的情况。测试的话,

server abc.lan
server 192.168.1.10  -group test -exclude-default-group
nameserver /abc.lan/test

在192.168.1.10 上写静态记录 abc.lan 192.168.1.11 启动smartdns后,用smartdns查询可以将abc.lan 解析为192.168.1.11,其他查询也是向 192.168.1.11发起。 此时改写192.168.1.10上的静态记录,比如改成12。用smartdns查询可以将abc.lan 解析为192.168.1.12,但其他查询仍在试图连接到11

PikuZheng avatar Oct 27 '22 08:10 PikuZheng

哎你们这么搞都是基于dot/doh有固定ip的情形。但是如果是自建上游用ddns,或一些小众的上游服务器ip会不时的变一下

所以, 楼主的问题好奇怪。 用nameserver,就不会有此问题了

不是啊,smartdns似乎只会在启动解析一次doh网址,后面直接用第一次解析的ip连接了。我希望启动后能够定期重新解析。

你是怎么解析DNS域名的?

没有特别配置,就是按文件里写的server-https。根据debug日志,smartdns只会在启动时将域名解析为ip。后面只认ip了。

我这么干,很正常

server-tcp 8.8.8.8 -group GoogleDNS -exclude-default-group

server-tcp 8.8.4.4 -group GoogleDNS -exclude-default-group

nameserver /dns.google/GoogleDNS

cresky-github avatar Oct 27 '22 10:10 cresky-github

当前域名类型的服务器只在初始化的时候解析,后面就不再解析了。

原因是,作为dns服务器,IP地址是不应该频繁变化的,这部分要实现的话机制也要一些代码。

pymumu avatar Oct 27 '22 13:10 pymumu

image

cresky-github avatar Oct 29 '22 14:10 cresky-github

image

cresky-github avatar Oct 29 '22 14:10 cresky-github

我是专门写有解析DNS域名的配置

是这么干的 但是上游变了 它缓存不变

我这么干,很正常

server-tcp 8.8.8.8 -group GoogleDNS -exclude-default-group

server-tcp 8.8.4.4 -group GoogleDNS -exclude-default-group

nameserver /dns.google/GoogleDNS

其他域名doh也能像你这样用nameserver来解析吗

8.8.8.8和8.8.4.4 换成阿里的dns行不行

wzy105 avatar Jan 02 '23 15:01 wzy105

8.8.8.8和8.8.4.4 换成阿里的dns行不行

大多数可以。阿里和腾讯的都可以。其他的需要看服务商文档

PikuZheng avatar Jan 02 '23 22:01 PikuZheng

我是专门写有解析DNS域名的配置

是这么干的 但是上游变了 它缓存不变

我这么干,很正常

server-tcp 8.8.8.8 -group GoogleDNS -exclude-default-group

server-tcp 8.8.4.4 -group GoogleDNS -exclude-default-group

nameserver /dns.google/GoogleDNS

其他域名doh也能像你这样用nameserver来解析吗

8.8.8.8和8.8.4.4 换成阿里的dns行不行

可以, 我把常见的DoH域名解析专门写成一个文件,然后加载这个文件。 最好用自家DNS解析自家的域名。

cresky-github avatar Jan 02 '23 23:01 cresky-github

DNS服务器的IP就不应频繁变化,所以没必要多次请求

pymumu avatar Jan 05 '23 09:01 pymumu

DNS服务器的IP就不应频繁变化,所以没必要多次请求

但是全用域名dns的话(因为用ipv6 所以用域名dns方便) 用什么dns来解析域名dns

wzy105 avatar Jan 11 '23 15:01 wzy105

没必要走极端,确保有一个可信的,是IP地址的上游就可以了,其他域名的上游,都会自动使用这个IP的上游解析。

pymumu avatar Jan 11 '23 16:01 pymumu

没必要走极端,确保有一个可信的,是IP地址的上游就可以了,其他域名的上游,都会自动使用这个IP的上游解析。

例如域名 dot.pub ipv4和ipv6共4个ip,那smartDNS会解析出并保留这四个ip,一直用来测速吗?还是说解析出来后,只保留最快的ip。

wzy105 avatar Jan 11 '23 17:01 wzy105

只会使用最快的那个IP。

pymumu avatar Jan 11 '23 17:01 pymumu

其实还有一种情况,比如这个 DNS.SB 的 DoH ,文档: https://dns.sb/doh/

如果使用 Global CDN 的地址:https://doh.dns.sb/dns-query

当你出口节点发生变化时,对应的 DoH 不仅域名变了,地址也变了。 @PikuZheng

CallMeR avatar Dec 26 '23 07:12 CallMeR

其实还有一种情况,比如这个 DNS.SB 的 DoH ,文档: https://dns.sb/doh/

如果使用 Global CDN 的地址:https://doh.dns.sb/dns-query

当你出口节点发生变化时,对应的 DoH 不仅域名变了,地址也变了。 @PikuZheng

这个sb我在用,不过时灵时不灵的(GFW?),回头试试不同域名的情况。

由于需要定时更新域名列表并重启。ip变化对我影响不打

PikuZheng avatar Dec 26 '23 09:12 PikuZheng