/encrypted-dns

Configuration profiles for DNS HTTPS and DNS over TLS for iOS 14 and MacOS Big Sur

The UnlicenseUnlicense

encrypted-dns-configs

Configuration profiles for DNS over HTTPS and DNS over TLS. Check out the article for more info: paulmillr.com/posts/encrypted-dns/ and info about contributing a new profile.

Caveats

DoH seems to work faster & better than DoT judging from the Google's article.

Starting from iOS 15.5, Wi-Fi captive portals in cafes, hotels, airports are exempted by Apple from eDNS rules; to simplify authentication. This is good news. There are still some other issues; we can't fix them, only Apple can:

Providers

Censorship=yes means the profile will not send true information about hostname=IP relation for some hosts.

Name Country Censorship Notes Install button
AdGuard Default ๐Ÿ‡ท๐Ÿ‡บ Yes Operated by AdGuard (Filters ads, tracking & phishing) HTTPS, TLS
AdGuard Family ๐Ÿ‡ท๐Ÿ‡บ Yes Operated by AdGuard (Filters Default + malware & adult content) HTTPS, TLS
AdGuard No Filter ๐Ÿ‡ท๐Ÿ‡บ No Operated by AdGuard (Non-filtering) HTTPS, TLS
AliDNS ๐Ÿ‡จ๐Ÿ‡ณ Yes Operated by Alibaba in China HTTPS, TLS
Alekberg ๐Ÿ‡ณ๐Ÿ‡ฑ No Independent hoster in Netherlands HTTPS
BlahDNS CDN Filtered ๐Ÿ‡บ๐Ÿ‡ธ Yes Independent HTTPS
BlahDNS CDN Unfiltered ๐Ÿ‡บ๐Ÿ‡ธ No Independent HTTPS
BlahDNS Finland Adsblock ๐Ÿ‡ซ๐Ÿ‡ฎ Yes Independent HTTPS
BlahDNS Germany Adsblock ๐Ÿ‡ฉ๐Ÿ‡ช Yes Independent HTTPS
BlahDNS Japan Adsblock ๐Ÿ‡ฏ๐Ÿ‡ต Yes Independent HTTPS
BlahDNS Singapore Adsblock ๐Ÿ‡ธ๐Ÿ‡ฌ Yes Independent HTTPS
BlahDNS Swiss Adsblock ๐Ÿ‡จ๐Ÿ‡ญ Yes Independent TLS
Canadian Shield Private ๐Ÿ‡จ๐Ÿ‡ฆ No Operated by the Canadian Internet Registration Authority (CIRA) HTTPS, TLS
Canadian Shield Protected ๐Ÿ‡จ๐Ÿ‡ฆ Yes Filters malware HTTPS, TLS
Canadian Shield Family ๐Ÿ‡จ๐Ÿ‡ฆ Yes Filters malware & adult content HTTPS, TLS
Cloudflare ๐Ÿ‡บ๐Ÿ‡ธ No Operated by Cloudflare 1.1.1.1 HTTPS, TLS
Cloudflare Malware ๐Ÿ‡บ๐Ÿ‡ธ Yes Filters malware HTTPS
Cloudflare Family ๐Ÿ‡บ๐Ÿ‡ธ Yes Filters malware & adult content HTTPS
DNSPod ๐Ÿ‡จ๐Ÿ‡ณ Yes Operated by DNSPod (Tencent) in China HTTPS, TLS
Google ๐Ÿ‡บ๐Ÿ‡ธ No Operated by Google HTTPS, TLS
OpenDNS ๐Ÿ‡บ๐Ÿ‡ธ No Operated by OpenDNS HTTPS
OpenDNS Family ๐Ÿ‡บ๐Ÿ‡ธ Yes Filters malware & adult content HTTPS
Quad9 ๐Ÿ‡จ๐Ÿ‡ญ Yes Operated by CleanerDNS, Inc. Filters malware HTTPS, TLS
Quad9 With ECS ๐Ÿ‡จ๐Ÿ‡ญ Yes Operated by CleanerDNS, Inc. Filters malware HTTPS, TLS
Tiar.app ๐Ÿ‡ธ๐Ÿ‡ฌ ๐Ÿ‡บ๐Ÿ‡ธ Yes "Privacy-first DNS provider" from SG, hosted on Digital Ocean. Filters malware HTTPS, TLS

Installation

To make settings work across all apps in iOS & MacOS, youโ€™ll need to install configuration profile. This profile would tell operating system to use DOH / DOT. Note: itโ€™s not enough to simply set server IPs in System Preferences โ€” you need to install a profile.

To install, simply open the file in GitHub by using Safari (other browsers will just download the file and won't ask for installation), and then click/tap on install button. The profile should download. On macOS, double click on the downloaded file to open it in settings, and approve instalation. On iOS, go to System Settings => General => Profile, select downloaded profile and tap the โ€œInstallโ€ button.

Signed Profiles

In the signed folder, we have slightly outdated signed versions of the profiles in this repository. These profiles have been signed by @Candygoblen123 so that when you install the profiles, they will have a verified check box on the installation screen. It also ensures that these profiles have not been tampered with. However, since they were signed by a third party, they may lag behind their unsigned counterparts a little.

To verify resolver IPs and hostnames, compare mobileconfig files to their documentation URLs. Internal workings of the profiles are described on developer.apple.com. In order to verify signed mobileconfigs, you will need to download them to your computer and open them in a text editor, because signing profiles makes GitHub think that they are binary files.

Contributing a new profile

Profiles are basically text files. Copy an existing one and change its UUID, for example, by generating a new one online. Make sure you update README with new profile's info.