When upstream return a DNS resolved answer,could AdGuard try to connect all the ip and give the client the IP fastest?
This is because in China the “clean” always means slow.
You mean this?

You mean this?
This means the fastest result from DNS server.Sometimes,the DNS server will return serveral IP,if the AdGuard could try to connect these IP and give the fastest IP to client,the client could get the better experience
@ameshkov Any suggestion?
@Zxilly I got the idea, thank you!
Marked as a feature request, let's see how many people vote for it.
Meanwhile, do you have any examples of the software that actually does it?
@ameshkov
https://github.com/pymumu/smartdns
https://github.com/zwhFocus/Installtion/tree/master/DNS-choose/dnschooser
But both are not open-source and the document is in Chinese(Maybe because only China has such terrible network environment)
What I am interested in is how exactly do they check if IP is available.
Do they send ICMP (ping) the address, or do they actually try to connect to ports 80 or 443?
@ameshkov
According to the article of the second project,it choose to make TCP connect to 80 and 443 because ICMP sometimes is not not allowed by some server.
This means it can not make effort on those applications whick are not using standard http port,but it truly improve the experience of HTTP.
Well, let's see how many upvotes does this feature request collect.
It is doable, but it is not easy of course.
The Project "SmartDNS" 's document in English
https://github.com/pymumu/smartdns/blob/master/ReadMe_en.md
Sometimes, I use parallel queries, it return an IP address that have no access to it . Cause we use Chinese public DNS... Maybe you could according the GEOIP to judge which DNS Server we could use , Or give us a choice . thx
I also requested to increase the DNS resolution to return the fastest ip to the user, otherwise this will cause the page to open very slowly.
there are some downloads use muti cdn to speedup download,block slower ip may have bad influence,if you want to use,maybe you can set smartdns as the only upstream of AdGuardHome
Well, let's see how many upvotes does this feature request collect.
It is doable, but it is not easy of course.
SmartDNS is finally open source, can you refer to its source code? I think this will be helpful for this project.
@QiuSimons thank you, we'll take a look!
Is smartdns functionality going to be release in 0.102?
https://github.com/pymumu/smartdns/blob/master/ReadMe_en.md
Yes
Yes
This is a huge improvement, thanks a lot.
Please try to expose as much configuration settings as possible if not all through the interface, if this is too much put it somewhere more hidden under advanced settings but still available in the UI.
https://github.com/pymumu/smartdns/blob/master/ReadMe_en.md#configuration-parameter
Probably some of them doesn't make sense or are available somewhere else.
Having as well advanced settings for the cache avaialable in the interface would be nice.
Similar to what you can see in the right side of this screenshot.
https://forum.netgate.com/assets/uploads/files/1567263869587-settings.png
Any benefit in using this outside of China?
@sassansh regardless of your location, it can improve connection quality and make it more reliable as it will make sure that the IP addresses are really reachable from your location. Just don't use it with too many resolvers, 2-3 max.
@ameshkov cool! can it be used with just 1 resolver?
@sassansh sure, but in this case, it will simply filter out unreachable/slow IPs from domains with multiple IPs (different CDNs and such).
@ameshkov so is it best to use 2-3 resolvers when using this feature?
I set it up as such:

We'll see how it goes...
Scratching my head for a while before realizing the options "Fastest IP address" and "Parallel requests" are mutual exclusive :-(
Why not changing them to radio?
Yeah, we'll make it clear in the next update:)
Most helpful comment
Well, let's see how many upvotes does this feature request collect.
It is doable, but it is not easy of course.