DNSCrypt / dnscrypt-resolvers

Lists of public DNSCrypt / DoH DNS servers and DNS relays
https://dnscrypt.info
1.21k stars 259 forks source link

OpenWrt https-dns-proxy #842

Closed stokito closed 10 months ago

stokito commented 1 year ago

The OpenWrt is an open source firmware for routers and RPi. There is a https_dns_proxy package with a GUI for Luci admin panel. And it needs for a list of servers to show to users. Currently they all are stored in JSON files https://github.com/openwrt/luci/tree/master/applications/luci-app-https-dns-proxy/root/usr/share/https-dns-proxy/providers

But ideally it would be great to just fetch the list from your repo. I already proposed this.

One of the problems is that here data is stored in Markdown files and not JSON. Maybe that's not a big deal and we can just parse them with few lines of JS but the md files must follow strict rules. I believe that the page https://dnscrypt.info/public-servers/ is generated automatically, right? Can we you make JSON files or write a JS function to parse the MD files that will not changed and used safelly.

Also some data may be missing here but already exists in the https-dns-proxy/providers. Could you please check and merge data?

CC @stangri

jedisct1 commented 1 year ago

The dnscrypt-proxy -list-all -json command outputs the entire server list from the configured sources as a JSON file.

That command is used to automatically update the file loaded to display the map, that can be downloaded here:

https://download.dnscrypt.info/dnscrypt-resolvers/json/

stokito commented 1 year ago

Thank you @jedisct1 this is really great! How stable is this link? Can we rely on it and use it in apps without being afraid that the link will disappear? I see that it has CORS headers so probably we can fetch the list just from UI. Also could you please mention this links in README or on the website?

Hi @tina-hello I see that you are maintaining the list https://github.com/curl/curl/wiki/DNS-over-HTTPS Maybe you can merge your efforts with this project?

Hi @saradickinson you are also maintaining a list of DoH providers https://github.com/dnsprivacy/dnsprivacy.github.io/tree/main/public_resolvers So you should be interested in the topic.

@dibdot you are also maintaining a list of DoH providers https://github.com/dibdot/DoH-IP-blocklists

tina-hello commented 1 year ago

@stokito Thanks for the info, but this project is more geared toward dnscrypt users, especially since the name & DNS stamps are only useful on apps that support them (aside from dnscrypt, I think AdGuard & Yandex is the only one that use them). The curl wiki meanwhile just list plain DoH URLs to be pasted on browsers or other app. It would also take more effort for me to check the log policy, location, generating stamps etc, while for curl wiki I just run a script to check if any servers are down and test if a new server I found has adult/ad filtering.

stokito commented 1 year ago

👍 thank you for the clarification

jedisct1 commented 1 year ago

This list of public encrypted resolvers has been maintained since 2011, and keeps being constantly updated. The liveliness of its entries is also actively monitored.

It's not specifically for DNSCrypt, as it also includes DoH/ODoH and soon DoOH servers and relays. DNS Stamps were made to represent the information needed for these different protocols.

The JSON URL is stable. It has never changed, it's used by the website to print the list and map, and I know that quite a few projects are using it directly, so it's not going to change.

Brueggus commented 1 year ago

One of the problems is that here data is stored in Markdown files and not JSON.

There's also an (auto-generated) list of dnscry.pt resolvers available at https://www.dnscry.pt/resolvers.json in case that's useful for anyone.