{"id":19336909,"url":"https://github.com/technitiumsoftware/dns-over-https","last_synced_at":"2025-08-29T14:22:38.538Z","repository":{"id":94817701,"uuid":"156525225","full_name":"TechnitiumSoftware/DNS-over-HTTPS","owner":"TechnitiumSoftware","description":"An implementation of RFC 8484 - DNS Queries over HTTPS (DoH).","archived":false,"fork":false,"pushed_at":"2023-07-09T10:18:51.000Z","size":108,"stargazers_count":37,"open_issues_count":0,"forks_count":16,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-02T06:12:12.007Z","etag":null,"topics":["dns","dns-over-https","dns-server","doh","doh-service","dotnet5"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TechnitiumSoftware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-07T09:52:56.000Z","updated_at":"2025-03-30T08:11:44.000Z","dependencies_parsed_at":"2024-11-10T03:12:56.632Z","dependency_job_id":"9ffe1b32-296e-4154-ae0e-89cedb470384","html_url":"https://github.com/TechnitiumSoftware/DNS-over-HTTPS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechnitiumSoftware%2FDNS-over-HTTPS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechnitiumSoftware%2FDNS-over-HTTPS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechnitiumSoftware%2FDNS-over-HTTPS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TechnitiumSoftware%2FDNS-over-HTTPS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TechnitiumSoftware","download_url":"https://codeload.github.com/TechnitiumSoftware/DNS-over-HTTPS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250352185,"owners_count":21416454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dns","dns-over-https","dns-server","doh","doh-service","dotnet5"],"created_at":"2024-11-10T03:12:51.265Z","updated_at":"2025-04-23T01:30:53.304Z","avatar_url":"https://github.com/TechnitiumSoftware.png","language":"C#","funding_links":["https://www.patreon.com/technitium"],"categories":[],"sub_categories":[],"readme":"# DNS-over-HTTPS\nAn 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.\n\n# System Requirements\n- Requires [.NET 7](https://dotnet.microsoft.com/download) installed. Install [Hosting Bundle](https://dotnet.microsoft.com/en-us/download/dotnet/7.0) for running on Microsoft IIS web server.\n- Windows, Linux and macOS supported.\n\n# Download\n- **Cross-Platform**: [doh-aspnetcore.zip](https://download.technitium.com/doh/doh-aspnetcore.zip)\n\n# Install Instructions\n- **Windows**:\n1. Download the `doh-aspnetcore.zip` zip file.\n2. Edit the `appsettings.json` file in notepad to set the DNS server of your choice.\n3. 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.\n4. Configure SSL certificate on IIS for the website so that the service works over HTTPS.\n\nNote: You can also run the `DNS-over-HTTPS.exe` to directly run the DoH console app with built in web server for quick testing.\n\n- **Linux**:\n1. Download and extract `doh-aspnetcore.zip` zip file to `/var/aspnetcore/doh`\n```\nsudo mkdir -p /var/aspnetcore/doh\ncd /var/aspnetcore/doh\nsudo wget https://download.technitium.com/doh/doh-aspnetcore.zip\nsudo unzip doh-aspnetcore.zip\n```\n\n2. Edit the `appsettings.json` file in nano to set the DNS server of your choice.\n```\nsudo nano appsettings.json\n```\n\n3. Install the DoH app as a systemd daemon:\n```\nsudo cp systemd.service /etc/systemd/system/doh.service\nsudo systemctl enable doh\nsudo systemctl start doh\n```\n\n4. Make sure that the DoH daemon is running without issues by running:\n```\njournalctl --unit doh --follow\n```\n\n5. 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:\n```\nsudo apt-get -y install nginx\n```\n\nCreate 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. \n```\nserver {\n    listen 443 ssl;\n    server_name doh.example.com;\n\n    ssl_certificate /etc/nginx/ssl/doh-server.crt;\n    ssl_certificate_key /etc/nginx/ssl/doh-server.key;\n\n    location / {\n        proxy_pass http://127.0.0.1:8053;\n    }\n}\n```\n\nReload nginx web server to finish the configuration.\n```\nsudo service nginx reload\n```\n\nNote: You can also run `dotnet DNS-over-HTTPS.dll` command to directly run the DoH console app for quick testing.\n\nThe 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.\n\n# Blog Posts\n[Configuring DNS-over-TLS and DNS-over-HTTPS with any DNS Server](https://blog.technitium.com/2018/12/configuring-dns-over-tls-and-dns-over.html)\n\n# Support\nFor support, send an email to support@technitium.com. For any issues, feedback, or feature request, create an issue on [GitHub](https://github.com/TechnitiumSoftware/DNS-over-HTTPS/issues).\n\n# Become A Patron\nMake contribution to Technitium by becoming a Patron and help making new software, updates, and features possible.\n\n[Become a Patron now!](https://www.patreon.com/technitium)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechnitiumsoftware%2Fdns-over-https","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechnitiumsoftware%2Fdns-over-https","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechnitiumsoftware%2Fdns-over-https/lists"}