All Projects → TechnitiumSoftware → DNS-over-HTTPS

TechnitiumSoftware / DNS-over-HTTPS

Licence: GPL-3.0 license
An implementation of RFC 8484 - DNS Queries over HTTPS (DoH).

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to DNS-over-HTTPS

harddns
RFC8484 and DoH/JSON resolver
Stars: ✭ 35 (+29.63%)
Mutual labels:  dns-server, dns-over-https, doh
Smartdns
A local DNS server to obtain the fastest website IP for the best Internet experience, 一个本地DNS服务器,获取最快的网站IP,获得最佳上网体验。
Stars: ✭ 4,333 (+15948.15%)
Mutual labels:  dns-server, dns-over-https, doh
doh-server
Fast, mature, secure DoH and ODoH server proxy written in Rust. Previously known as doh-proxy and rust-doh.
Stars: ✭ 526 (+1848.15%)
Mutual labels:  doh, doh-service
q
A tiny command line DNS client with support for UDP, TCP, DoT, DoH, DoQ and ODoH.
Stars: ✭ 453 (+1577.78%)
Mutual labels:  dns-over-https, doh
gochinadns
Project archived: I believe Clash has provides a more elegant DNS & proxy solution. So there is no need to maintain this project. Have fun guys! ----- A drop-in replacement for ChinaDNS, with a better code implementation and several bugfixes.
Stars: ✭ 38 (+40.74%)
Mutual labels:  dns-server, dns-over-https
DNS-over-Discord
A 1.1.1.1 DNS resolver built for Discord
Stars: ✭ 228 (+744.44%)
Mutual labels:  dns-over-https, doh
dnsredir
Yet another seems better forward/proxy plugin for CoreDNS
Stars: ✭ 58 (+114.81%)
Mutual labels:  dns-over-https, doh
DoTH-DNS
Your server doth DNS the safe way if you use DoTH-DNS.
Stars: ✭ 26 (-3.7%)
Mutual labels:  dns-server, doh
dns-resolver-infra
Privacy DNS infrastructure
Stars: ✭ 39 (+44.44%)
Mutual labels:  dns-over-https, doh
ansible-cloudflared
Install cloudflared and systemd service for DNS-Over-HTTPS
Stars: ✭ 18 (-33.33%)
Mutual labels:  dns-over-https, doh
dns-server-setup
Ansible playbook to easily deploy new, fully configured, DNS servers.
Stars: ✭ 48 (+77.78%)
Mutual labels:  dns-server, dns-over-https
dcompass
A high-performance programmable DNS component aiming at robustness, speed, and flexibility
Stars: ✭ 260 (+862.96%)
Mutual labels:  dns-server, dns-over-https
dohjs
DNS over HTTPS client for use in the browser
Stars: ✭ 71 (+162.96%)
Mutual labels:  dns-over-https, doh
luci-app-dnscrypt-proxy2
LuCI support for dnscrypt-proxy version2 https://github.com/DNSCrypt/dnscrypt-proxy
Stars: ✭ 25 (-7.41%)
Mutual labels:  dns-over-https, doh
dnscrypt-proxy
dnscrypt-proxy 2 - A flexible DNS proxy, with support for encrypted DNS protocols.
Stars: ✭ 9,198 (+33966.67%)
Mutual labels:  dns-over-https, doh
fastdns
Fast DNS package for Go. Tuned for high performance. Zero memory allocations in almost paths. Up to 1M QPS on a single host.
Stars: ✭ 67 (+148.15%)
Mutual labels:  dns-server, doh
go-doh-client
A DNS over HTTPS client implementation written in Go
Stars: ✭ 45 (+66.67%)
Mutual labels:  dns-over-https, doh
prc-dns
对CDN友好的DNS服务器,区分国内外流量的必备工具。
Stars: ✭ 47 (+74.07%)
Mutual labels:  dns-server, dns-over-https
blocklists
An opinionated collection of blocklists for RethinkDNS.
Stars: ✭ 50 (+85.19%)
Mutual labels:  doh
mosdns-cn
A simple DNS forwarder that can make life easier.
Stars: ✭ 254 (+840.74%)
Mutual labels:  dns-over-https

DNS-over-HTTPS

An implementation of RFC 8484 - DNS Queries over HTTPS (DoH). Host your own DoH web service using ASP.NET 7 Runtime that can transform any DNS server to be accessible via the DoH standard protocol.

System Requirements

  • Requires .NET 7 installed. Install Hosting Bundle for running on Microsoft IIS web server.
  • Windows, Linux and macOS supported.

Download

Install Instructions

  • Windows:
  1. Download the doh-aspnetcore.zip zip file.
  2. Edit the appsettings.json file in notepad to set the DNS server of your choice.
  3. Install the DoH app on Windows IIS web server by creating a new website and extracting the doh-aspnetcore.zip zip file into the wwwroot folder of the website.
  4. Configure SSL certificate on IIS for the website so that the service works over HTTPS.

Note: You can also run the DNS-over-HTTPS.exe to directly run the DoH console app with built in web server for quick testing.

  • Linux:
  1. Download and extract doh-aspnetcore.zip zip file to /var/aspnetcore/doh
sudo mkdir -p /var/aspnetcore/doh
cd /var/aspnetcore/doh
sudo wget https://download.technitium.com/doh/doh-aspnetcore.zip
sudo unzip doh-aspnetcore.zip
  1. Edit the appsettings.json file in nano to set the DNS server of your choice.
sudo nano appsettings.json
  1. Install the DoH app as a systemd daemon:
sudo cp systemd.service /etc/systemd/system/doh.service
sudo systemctl enable doh
sudo systemctl start doh
  1. Make sure that the DoH daemon is running without issues by running:
journalctl --unit doh --follow
  1. Configure a reverse proxy using a web server like nginx that does the SSL termination for the DoH service. Install the nginx web server using:
sudo apt-get -y install nginx

Create a config file for your domain name at /etc/nginx/sites-enabled/doh.example.com with the config shown below. Save the certificate and key files to path given as in the config.

server {
    listen 443 ssl;
    server_name doh.example.com;

    ssl_certificate /etc/nginx/ssl/doh-server.crt;
    ssl_certificate_key /etc/nginx/ssl/doh-server.key;

    location / {
        proxy_pass http://127.0.0.1:8053;
    }
}

Reload nginx web server to finish the configuration.

sudo service nginx reload

Note: You can also run dotnet DNS-over-HTTPS.dll command to directly run the DoH console app for quick testing.

The DoH service is available on the /dns-query location on the web site that you are running. If you are running it directly as a console app then your DoH end point URL will be http://localhost:5000/dns-query. For Linux systemd daemon, the DoH end point will be http://localhost:8053/dns-query as per the argument provided in the systemd.service file.

Blog Posts

Configuring DNS-over-TLS and DNS-over-HTTPS with any DNS Server

Support

For support, send an email to [email protected]. For any issues, feedback, or feature request, create an issue on GitHub.

Become A Patron

Make contribution to Technitium by becoming a Patron and help making new software, updates, and features possible.

Become a Patron now!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].