Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【Feature Request】smartdns需求收集 #1236

Open
pymumu opened this issue Jan 10, 2023 · 163 comments
Open

【Feature Request】smartdns需求收集 #1236

pymumu opened this issue Jan 10, 2023 · 163 comments

Comments

@pymumu
Copy link
Owner

pymumu commented Jan 10, 2023

目前smartdns基本功能已经完善,后续还有什么需求请各位给建议。

需求收集包括:

需求功能:
   一句话描述功能。
需求描述:
  详细描述功能。
使用场景:
  使用的运营商,网络情况等。

如果有相同需求,请点赞,点赞数量多的需求实现优先级会相应的高。

@pymumu pymumu pinned this issue Jan 10, 2023
@wangjian1009
Copy link

需求功能:
兼顾主机dns配置
需求描述:

  1. 在配置有自定义上游服务器的情况下,能过加载主机dns配置 /etc/resolve.conf
  2. 能监听 /etc/resolve.conf 的变化自动更新
    使用场景:
    在公司内网使用时,有公司内部的一些配置,希望能够兼顾

@PikuZheng
Copy link
Contributor

稍微总结一下,可能有遗漏
#1143 将测速失败的(比如tcp rst,icmp reject)ip加入一个ipset
#1065 从一个上游查询结果中排除单个ip(在关闭测速的情况下)
#1034 仅在域名不提供ipv4结果时返回ipv6
#994 合并全部上游的结果
#839 server组支持测速方式配置(speed-check-mode
#763 对address记录(如address /www.google.com/192.168.1.31)提供ptr查询结果

@yuxuan0107
Copy link

yuxuan0107 commented Jan 11, 2023

作个死,X86平台来个统计展示和控制界面吧,类似AdGuardHome那样的哈哈

@PikuZheng
Copy link
Contributor

作个死,X86平台来个统计展示和控制界面吧,类似AdGuardHome那样的哈哈

#1154 #1163 #1214 没懂用来统计或控制啥 都x86了 稍微搭一个elastic多好。也可以简单的写一个界面来呈现审计日志的内容。

@LisonFan
Copy link

LisonFan commented Jan 13, 2023

#1211
#1022

关于分流解析功能增强的

@pymumu 大佬,考虑一下这个需求呗

@233lol
Copy link

233lol commented Jan 15, 2023

需求功能:
双栈网站,优先ipv4或者ipv6
需求描述:
某些网站有ipv4和ipv6,可以配置优先ipv4还是ipv6
使用场景:
1.校园网ipv6节省流量。
2.某些地区ipv6网络质量没有ipv4好,但是还需要访问某些纯ipv6网站。

@233lol
Copy link

233lol commented Jan 15, 2023

需求功能:
CDN网站ip重定向
需求描述:
国外很多网站都在使用 Cloudflare CDN,但分配给中国内地访客的 IP 并不友好(延迟高、丢包多、速度慢)。
https://github.com/XIU2/CloudflareSpeedTest
结合这软件,批量替换适合自己的ip地址
使用场景:
cloudflare在DNS上的ip地址未必是最适合的。通过CloudflareSpeedTest找出适合的ip地址后对修改域名的ip进行替换。

@PikuZheng
Copy link
Contributor

需求功能: CDN网站ip重定向 需求描述: 国外很多网站都在使用 Cloudflare CDN,但分配给中国内地访客的 IP 并不友好(延迟高、丢包多、速度慢)。 https://github.com/XIU2/CloudflareSpeedTest 结合这软件,批量替换适合自己的ip地址 使用场景: cloudflare在DNS上的ip地址未必是最适合的。通过CloudflareSpeedTest找出适合的ip地址后对修改域名的ip进行替换。

#1062 使用特定的ip替换某个ip段的结果

这个功能我目前是用路由器的dstnat实现的。修改dns结果可能会导致一些附加消息丢失,我建议还是用路由器的方法来做

@w22gb8
Copy link

w22gb8 commented Jan 17, 2023

需求功能:
根据客户端ip选择相应的dns服务器和不同的缓存
需求描述:
定义客户端ip集合,不同的集合使用不同的服务器查询并缓存到对应cache
使用场景:
有的客户端ip全部使用国内服务器查询,有的客户端ip需要使用国外服务器查询。
另能否edns-client-subnet添加选项32和128,然后smartdns自动添加客户端ipv4/32或ipv6/128为edns-client-subnet,这样当smartdns做前端时可将查询客户端ip传给后端判断。

@Trojanking123
Copy link

需求功能:一个dns request 包支持 多个query
需求描述:现在如果一个dns 请求 里面有 A 类型 和 AAAA类型query 类型,就是报不支持。支持对这种格式类型的dns 报文

@PikuZheng
Copy link
Contributor

另能否edns-client-subnet添加选项32和128,然后smartdns自动添加客户端ipv4/32或ipv6/128为edns-client-subnet,这样当smartdns做前端时可将查询客户端ip传给后端判断。

希望可以按上游分别配置 edns-client-subnet

@Auska
Copy link

Auska commented Jan 20, 2023

需求功能: CDN网站ip重定向 需求描述: 国外很多网站都在使用 Cloudflare CDN,但分配给中国内地访客的 IP 并不友好(延迟高、丢包多、速度慢)。 https://github.com/XIU2/CloudflareSpeedTest 结合这软件,批量替换适合自己的ip地址 使用场景: cloudflare在DNS上的ip地址未必是最适合的。通过CloudflareSpeedTest找出适合的ip地址后对修改域名的ip进行替换。

#1062 使用特定的ip替换某个ip段的结果

这个功能我目前是用路由器的dstnat实现的。修改dns结果可能会导致一些附加消息丢失,我建议还是用路由器的方法来做

我是使用浮动路由表实现的,目前运行良好。

@wzy105
Copy link

wzy105 commented Jan 20, 2023

需求功能: CDN网站ip重定向 需求描述: 国外很多网站都在使用 Cloudflare CDN,但分配给中国内地访客的 IP 并不友好(延迟高、丢包多、速度慢)。 https://github.com/XIU2/CloudflareSpeedTest 结合这软件,批量替换适合自己的ip地址 使用场景: cloudflare在DNS上的ip地址未必是最适合的。通过CloudflareSpeedTest找出适合的ip地址后对修改域名的ip进行替换。

我的需求和这兄弟差不多,就是希望增加 “dns优选” 功能,弄一个 “dns优选模式” 里面整理了各种“著名”dns,打开这个“dns优选模式”日常使用就会对所有dns进行查询测试,最终测试出最精准并最快的dns。
ps.小白说话比较通俗简陋。。

@enihcam
Copy link

enihcam commented Jan 20, 2023

Given two DNS servers A.A.A.A (local or domestic) and B.B.B.B (foreign), a domain name (for example, new.c.mi.com) can be resolved by B.B.B.B only. However, sometimes I still prefer A.A.A.A as primary. That means, results from the secondary B.B.B.B (or C.C.C.C and go on...) are taken only if A.A.A.A is unable to resolve the domain name.

How to specify this in configuration? Concretely, how to specify priorities of DNS servers (or groups of them)?

@cubercsl
Copy link

cubercsl commented Jan 22, 2023

  1. 既然现在可以用 SmartDNS 解析本地域名,那是否也应该考虑如 dnsmasq 一样可以设置本地域名 (lan)。
  2. 读取已分配的 DHCPv6 租约 /var/hosts/odhcpd 用于给出内网 IPv6 地址。

@Hill-98
Copy link
Contributor

Hill-98 commented Jan 22, 2023

需求功能:https 验证模式
需求描述:SmartDNS 向解析到的 IP 发送 https 请求,验证 SSL 证书是否合法,如果查询到多个结果 IP,那么优先返回合法的 IP。可以同时测试 IPv4 和 v6,如果只有 v4 合法,那么只返回 v4。如果有多个合法 IP,再进行测速。
使用场景:同时配置多个国内外 DNS 服务器时避免 DNS 污染,主要是针对不存在与 GFWList 的域名,GFWList 的域名可以通过配置走特定 DNS 服务器,但是还没有被添加的域名还是会被污染。

@unicser
Copy link

unicser commented Jan 22, 2023

通过kill -HUP不重启smartdns进程,重新加载配置文件和domain-set list文件

@daxingplay
Copy link

命令行参数能增加一个 config test 的能力。
应用场景:定时更新 domain-set,重启 smartdns 进程之前希望能先校验一下配置文件的合法性。

@xianren78
Copy link

增加DNS rewrites功能,adguard home上这样实现
rewrites:
- domain: 'domainB'
answer: domainA

@rapdodge
Copy link

DNS64 features
https://www.rfc-editor.org/rfc/rfc6147

@showgood163
Copy link

Add a flag for ipv6 only environment, e.g. force-A-SOA which is like force-AAAA-SOA but discards all A records

@PikuZheng
Copy link
Contributor

Add a flag for ipv6 only environment, e.g. force-A-SOA which is like force-AAAA-SOA but discards all A records

force-qtype-SOA 1

@wolerine
Copy link

wolerine commented Feb 1, 2023

DoQ
https://www.rfc-editor.org/rfc/rfc9250

@mokeyish
Copy link
Contributor

mokeyish commented Feb 3, 2023

希望开个 discord.com 在线群聊的频道,方便沟通交流

@iamyangyiok
Copy link

可否测速后,返回结果不是一个,排序所有的结果都保留。这样多点下载能用到。

@PikuZheng
Copy link
Contributor

可否测速后,返回结果不是一个,排序所有的结果都保

目前开启缓存后,二次查询即返回所有结果。一次查询可以用 response-mode 控制

@zb737472783
Copy link

需求功能:
增加图形界面操作
需求描述:
增加图形化界面的参数配置,操作等
使用场景:
图形化操作

@iamyangyiok
Copy link

可否测速后,返回结果不是一个,排序所有的结果都保

目前开启缓存后,二次查询即返回所有结果。一次查询可以用 response-mode 控制
可以设每一次都返回全部排序不,不要二次才返回全部

@1000oaks
Copy link

1000oaks commented Apr 9, 2024

需求功能:
针对域名而非IP的IPv4/IPv6优选
需求描述:
目前我使用的网络IPv4和IPv6运营商不同, 考虑到SNI明文, 有可能出现IP通而域名不通的情况, 或者虽然延迟低但是限速, 导致我需要手动指定IPv4或IPv6.
使用场景:
特殊环境, IPv4/IPv6运营商不同, IPv6 QoS比IPv4好很多, SNI明文.

@GuangYu-yu
Copy link

需求功能:
增加DoQ的支持;增加使用指定域名批量测试添加的DNS服务器;增加解析效果展示,比如每个DNS服务器耗时、成功次数

@openips
Copy link

openips commented Apr 21, 2024

httping

@Potterli20
Copy link

需求功能:
增加DoQ的支持;增加使用指定域名批量测试添加的DNS服务器;增加解析效果展示,比如每个DNS服务器耗时、成功次数

doq有了,但是还没有更新

@zxc9173520
Copy link

第一次使用SMARTDNS但看了網上教學還是一直沒搞懂 想把SMARTDNS作為上游使用 但設定一直無法設定好 我只知道 上游伺服器可以指向ADGUARDHOME 但第二分組不知該如何設定 想把第二分組用來解析外網 現在SMARTDNS可以直接連外也可以通ADGUARDHOME但無法攔截 有完整教學嗎???

@yyysuo
Copy link

yyysuo commented May 20, 2024

需要上游服务器的超时时间设置,比如有时候上游5秒了还没有响应,实在太久了,希望2s甚至1s不响应就返回server fail的错误,然后浏览器报错,ttl可以短一些,等结果返回时再刷新,避免浏览器长时间转圈 。

@ShinkaiMakoto
Copy link

希望可以添加httpping,公司网络有墙中墙,有很多ip可以ping通但是访问不了,尤其是github的

@scruel
Copy link

scruel commented Jun 6, 2024

需求功能1:增加基于 ID 的日志追踪功能,每次收到域名请求,随机生成一个日志 ID,整个链路中传入并作为日志的前缀打出,支持自定义开关。
需求功能2:分流路径检测 CLI 工具,可以知道指定的域名会如何被解析,简单实现的话,就是实现需求1后,主动实际运行一遍,然后输出完整的追踪日志。

需求功能3:允许在 domain-set 指定的文件中使用临时注释 #

@ZqinKing
Copy link

功能需求:在不重启Smartdns的情况下,热更新域名规则(可以仅限于域名相关规则,不包含上游DNS及绑定端口等的限制)。
这个能实现吗?CLI或者API,甚至定期检查指定目录下规则文件是否更新。

@CallMeR
Copy link

CallMeR commented Jul 24, 2024

【功能需求】

  • 希望能在 SmartDNS 中新增 edns buffer size ( and / or max udp size ) 的可调参数来避免某些场景下 DNS 查询数据损坏

【相关文档】

Encountering new authoritative servers that have not been queried before and for whom the capabilities/support for EDNS and large buffer sizes by both the server and the network path between it and the resolver is unknown.

The reason why you want a large buffer size is to avoid getting a truncated response (TC flag), which triggers the client to retry the same query over TCP. Opening a TCP connection is comparatively slow, so it's beneficial in terms of performance when this can be avoided.

Recently, there was an paper and presentation Defragmenting DNS - Determining the optimal maximum UDP response size for DNS by Axel Koolhaas, and Tjeerd Slokker in collaboration with NLnet Labs that explored the real world data using the RIPE Atlas probes and the researchers suggested different values for IPv4 and IPv6 and in different scenarios. This is practical for the server operators that know their environment, and the defaults in the DNS software should reflect the minimum safe size which is 1232.

【同类开源产品的设置】

-P, --edns-packet-max=
Specify the largest EDNS.0 UDP packet which is supported by the DNS forwarder. Defaults to 1232, which is the recommended size following the DNS flag day in 2020. Only increase if you know what you are doing.

@Bitcion
Copy link

Bitcion commented Aug 7, 2024

http3支持,tls阻断太厉害了,加密dns等于没有

@yyysuo
Copy link

yyysuo commented Aug 8, 2024

公共dns都限速了,阿里提供了账户免费额度和新的接入方式,求支持,阿里免费流量是doh是200万,最好能设置一下额度。
TLS API
https://223.5.5.5/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳
https://223.6.6.6/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=
&ts=时间戳
https://dns.alidns.com/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳
非TLS API
http://223.5.5.5/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=
&ts=时间戳
http://223.6.6.6/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳
http://dns.alidns.com/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=
&ts=时间戳

帮助文档:
https://help.aliyun.com/zh/dns/json-api-for-doh?spm=5176.28197678_2080504283.help.dexternal.5be95b8elBZFbY

@libra1010
Copy link

在domain-rules里面增加 返回缓存数量为1 max-reply-ip-num
在ikuai的域名分流是,如果返回多个IP,或者返回IP不一致会导致域名分流失效
期望在domain-rules增加 max-reply-ip-num 选项,让指定域名使用缓存的同时,只返回一条IP。 而不是所有的域名都只返回一条IP

@zrr1999
Copy link

zrr1999 commented Aug 15, 2024

需求功能:
测速失败丢弃所有记录
需求描述:
在测速失败后,即目标网站无法连接,丢弃所有记录。
使用场景:
我想要通过smartdns判断一个网站是否被墙,大部分情况下通过内置的测速功能判断足够了,跟目前的自动写入 nfset 目标差不多,但是我希望直接通过dns去判断这件事,下游mosdns如果发现smartdns没有返回,就可以直接丢给clash的fakeip了,比较方便

@hululu1068
Copy link

公共dns都限速了,阿里提供了账户免费额度和新的接入方式,求支持,阿里免费流量是doh是200万,最好能设置一下额度。 TLS API https://223.5.5.5/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳 https://223.6.6.6/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳 https://dns.alidns.com/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳 非TLS API http://223.5.5.5/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳 http://223.6.6.6/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳 http://dns.alidns.com/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳

帮助文档: https://help.aliyun.com/zh/dns/json-api-for-doh?spm=5176.28197678_2080504283.help.dexternal.5be95b8elBZFbY

个人账户的DOH/DOT千万不要用,跟ISP的DNS一个德行

@geektheripper
Copy link

geektheripper commented Aug 20, 2024

需求功能:支持任意列表的维护,不局限于 ipset, nftset

需求描述:

anyset-new nfoversea nftable [#4:ip#table#set,#6:ipv6#table#setv6] -timeout -add-no-speed
anyset-new myipset iptable mycase -timeout
anyset-new ctable exec "/bin/ctable-smartdns-bridge.sh {ip} {timeout}"
anyset-new ros-oversea webhook "http://10.1.2.3:8080/api/routeros-bridge?address-list=oversea&address={ip}&timeout={timeout}" -add-no-speed
anyset-new ros-static webhook "http://10.1.2.3:8080/api/routeros-bridge?address-list=somelist&address={ip}&timeout=0"
anyset-new ros-aliyun webhook "http://10.1.2.3:8080/api/routeros-bridge?address-list=aliyun&address={ip}&timeout={timeout}"

anyset /domain-a/nfoversea
anyset /domain-b/ctable
anyset /domain-set:my-cloud-infra/ros-aliyun

使用场景:通过自行编写简单的脚本或http接口,实现对任意路由器系统 list/set 功能的维护

@yyysuo
Copy link

yyysuo commented Aug 20, 2024

公共dns都限速了,阿里提供了账户免费额度和新的接入方式,求支持,阿里免费流量是doh是200万,最好能设置一下额度。 TLS API https://223.5.5.5/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳 https://223.6.6.6/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳 https://dns.alidns.com/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳 非TLS API http://223.5.5.5/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳 http://223.6.6.6/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳 http://dns.alidns.com/resolve?name=域名&type=记录类型&uid=阿里ID&ak=AccessKey ID&key=&ts=时间戳
帮助文档: https://help.aliyun.com/zh/dns/json-api-for-doh?spm=5176.28197678_2080504283.help.dexternal.5be95b8elBZFbY

个人账户的DOH/DOT千万不要用,跟ISP的DNS一个德行

为什么。

@NNET-ELi
Copy link

NNET-ELi commented Sep 5, 2024

需求功能:
SmartDNS配置修改后的热加载
需求描述:
能够在修改本地的smartdns配置文件后不用重启生效,避免dns服务中断,参考可以采用一个别的命令去手工触发热加载,例如Prometheus这个修改配置后可以用这个命令在重新加载配置文件curl -X POST http://localhost:9090/-/reload
使用场景:
企业内网使用,修改内网的A记录那种指定解析后不想重启SmartDNS服务,避免重启过程影响员工正常的DNS解析

@CallMeR
Copy link

CallMeR commented Sep 5, 2024

需求功能: SmartDNS配置修改后的热加载 需求描述: 能够在修改本地的smartdns配置文件后不用重启生效,避免dns服务中断,参考可以采用一个别的命令去手工触发热加载,例如Prometheus这个修改配置后可以用这个命令在重新加载配置文件curl -X POST http://localhost:9090/-/reload 使用场景: 企业内网使用,修改内网的A记录那种指定解析后不想重启SmartDNS服务,避免重启过程影响员工正常的DNS解析

你说的是 CoreDNS 的类似的配置热加载吧,每 N 秒检查一次配置文件变化,若有变化则自动加载新配置,若加载后服务异常,还能回退到上个版本?

@NNET-ELi
Copy link

NNET-ELi commented Sep 5, 2024

需求功能: SmartDNS配置修改后的热加载 需求描述: 能够在修改本地的smartdns配置文件后不用重启生效,避免dns服务中断,参考可以采用一个别的命令去手工触发热加载,例如Prometheus这个修改配置后可以用这个命令在重新加载配置文件curl -X POST http://localhost:9090/-/reload 使用场景: 企业内网使用,修改内网的A记录那种指定解析后不想重启SmartDNS服务,避免重启过程影响员工正常的DNS解析

你说的是 CoreDNS 的类似的配置热加载吧,每 N 秒检查一次配置文件变化,若有变化则自动加载新配置,若加载后服务异常,还能回退到上个版本?

对的,如果可以这样实现那更好了

@invalidunit
Copy link

需求功能: SmartDNS配置修改后的热加载 需求描述: 能够在修改本地的smartdns配置文件后不用重启生效,避免dns服务中断,参考可以采用一个别的命令去手工触发热加载,例如Prometheus这个修改配置后可以用这个命令在重新加载配置文件curl -X POST http://localhost:9090/-/reload 使用场景: 企业内网使用,修改内网的A记录那种指定解析后不想重启SmartDNS服务,避免重启过程影响员工正常的DNS解析

你说的是 CoreDNS 的类似的配置热加载吧,每 N 秒检查一次配置文件变化,若有变化则自动加载新配置,若加载后服务异常,还能回退到上个版本?

重启过程中影响员工 dns 解析?smartdns 重启需要这么久吗,不是 1-2 秒

@NNET-ELi
Copy link

NNET-ELi commented Sep 6, 2024

需求功能: SmartDNS配置修改后的热加载 需求描述: 能够在修改本地的smartdns配置文件后不用重启生效,避免dns服务中断,参考可以采用一个别的命令去手工触发热加载,例如Prometheus这个修改配置后可以用这个命令在重新加载配置文件curl -X POST http://localhost:9090/-/reload 使用场景: 企业内网使用,修改内网的A记录那种指定解析后不想重启SmartDNS服务,避免重启过程影响员工正常的DNS解析

你说的是 CoreDNS 的类似的配置热加载吧,每 N 秒检查一次配置文件变化,若有变化则自动加载新配置,若加载后服务异常,还能回退到上个版本?

重启过程中影响员工 dns 解析?smartdns 重启需要这么久吗,不是 1-2 秒

通常部署2台分开重启就不会有影响,但是有些分支某些情况下只能部署1台,如果重启1~2秒过程中用户解析然后有问题了,可能会被投诉,为了尽可能避免可能出现的投诉风险,所以还是希望能做这种热加载的功能

@xhd1221
Copy link

xhd1221 commented Sep 6, 2024

想提一个文档的改进建议:

需求功能:
在配置文档中注明时间单位
需求描述:
建议在官网“配置选项”(https://pymumu.github.io/smartdns/configuration/)页面中,注明cache-checkpoint-time和tcp-idle-time的时间单位。
使用场景:
在参考文档时避免猜测。

@Vastxiao
Copy link

Vastxiao commented Nov 6, 2024

需求功能:
支持自定义解析的ip结果测速功能
需求描述:
针对 hosts-file address cname 等配置的自定义解析结果ip也能支持进入结果测速
使用场景:
可以直接将dns层作为一个较好的内部负载均衡器,在配置多个自定义解析地址的情况下,即时有某个ip挂掉也能在smartdns中被剔除。

@hululu1068
Copy link

需求功能:
增加DNSCrypt DNS的支持
需求描述:
目前常用的公共DNS限流的限流,阻断的阻断,严重影响体验。
希望考虑增加DNSCrypt 的支持
image

@Originalimoc
Copy link

需求功能: SmartDNS配置修改后的热加载 需求描述: 能够在修改本地的smartdns配置文件后不用重启生效,避免dns服务中断,参考可以采用一个别的命令去手工触发热加载,例如Prometheus这个修改配置后可以用这个命令在重新加载配置文件curl -X POST http://localhost:9090/-/reload 使用场景: 企业内网使用,修改内网的A记录那种指定解析后不想重启SmartDNS服务,避免重启过程影响员工正常的DNS解析

你说的是 CoreDNS 的类似的配置热加载吧,每 N 秒检查一次配置文件变化,若有变化则自动加载新配置,若加载后服务异常,还能回退到上个版本?

重启过程中影响员工 dns 解析?smartdns 重启需要这么久吗,不是 1-2 秒

通常部署2台分开重启就不会有影响,但是有些分支某些情况下只能部署1台,如果重启1~2秒过程中用户解析然后有问题了,可能会被投诉,为了尽可能避免可能出现的投诉风险,所以还是希望能做这种热加载的功能

我也觉得奇怪,一两秒downtime直接就现在的浏览器直接自动重试了用户哪能体验,配置是有多大吗

@Originalimoc
Copy link

新功能(?):
懒测试:
遇到新IP先直接返回给客户端,后台测试排序后续再返回优化结果。避免DNS卡很久。

@CallMeR
Copy link

CallMeR commented Dec 2, 2024

最近看到这个消息:
image
不确定现在 DoT 和 DoH 接入是不是转换成了 IP 接入的形式(如果我错了,请拿砖拍我),如果是的话,可能需要优化一下代码,以便能直接以域名接入 :)

@CallMeR
Copy link

CallMeR commented Dec 3, 2024

最近看到这个消息: image 不确定现在 DoT 和 DoH 接入是不是转换成了 IP 接入的形式(如果我错了,请拿砖拍我),如果是的话,可能需要优化一下代码,以便能直接以域名接入 :)

好像确实是有问题,今天看了一下日志,发现 dnspod 的 dot 和 doh 都在持续报错:

[2024-12-01 14:21:06,258][ WARN][     dns_client.c:3320] Handshake with 1.12.12.12 failed, Host is unreachable

[2024-12-01 14:21:09,520][ WARN][     dns_client.c:3320] Handshake with 120.53.53.53 failed, Host is unreachable

[2024-12-01 14:21:09,522][ WARN][     dns_client.c:3320] Handshake with 1.12.12.12 failed, Host is unreachable

[2024-12-01 14:21:13,042][ WARN][     dns_client.c:3320] Handshake with 120.53.53.53 failed, Host is unreachable

[2024-12-01 14:21:13,050][ WARN][     dns_client.c:3320] Handshake with 1.12.12.12 failed, Host is unreachable

[2024-12-01 14:21:16,304][ WARN][     dns_client.c:3320] Handshake with 120.53.53.53 failed, Host is unreachable

[2024-12-01 14:21:16,305][ WARN][     dns_client.c:3320] Handshake with 1.12.12.12 failed, Host is unreachable

[2024-12-01 14:21:19,504][ WARN][     dns_client.c:3320] Handshake with 120.53.53.53 failed, Host is unreachable

[2024-12-01 14:21:19,506][ WARN][     dns_client.c:3320] Handshake with 1.12.12.12 failed, Host is unreachable

[2024-12-01 14:21:22,704][ WARN][     dns_client.c:3320] Handshake with 120.53.53.53 failed, Host is unreachable

[2024-12-01 14:21:22,705][ WARN][     dns_client.c:3320] Handshake with 1.12.12.12 failed, Host is unreachable

[2024-12-01 14:21:26,224][ WARN][     dns_client.c:3320] Handshake with 120.53.53.53 failed, Host is unreachable

[2024-12-01 14:21:26,225][ WARN][     dns_client.c:3320] Handshake with 1.12.12.12 failed, Host is unreachable

[2024-12-01 14:21:29,552][ WARN][     dns_client.c:3320] Handshake with 120.53.53.53 failed, Host is unreachable

[2024-12-01 14:21:29,554][ WARN][     dns_client.c:3320] Handshake with 1.12.12.12 failed, Host is unreachable

[2024-12-01 14:21:32,816][ WARN][     dns_client.c:3320] Handshake with 120.53.53.53 failed, Host is unreachable

[2024-12-01 14:21:32,818][ WARN][     dns_client.c:3320] Handshake with 1.12.12.12 failed, Host is unreachable

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests