{"id":18293997,"url":"https://github.com/ssrlive/dns-over-https","last_synced_at":"2026-03-02T07:02:45.650Z","repository":{"id":236424143,"uuid":"792286338","full_name":"ssrlive/dns-over-https","owner":"ssrlive","description":"A lightweight DNS-over-HTTPS (\"DOH\") proxy written in Rust.","archived":false,"fork":false,"pushed_at":"2024-06-01T13:18:30.000Z","size":51,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T11:34:32.521Z","etag":null,"topics":["dns","dns-over-https","dns-over-tls","doh","dot","https","tls"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ssrlive.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":"2024-04-26T11:02:46.000Z","updated_at":"2024-06-01T13:18:33.000Z","dependencies_parsed_at":"2024-04-28T05:41:14.138Z","dependency_job_id":"fed89e51-9e68-4877-aa0f-f87b41ddad97","html_url":"https://github.com/ssrlive/dns-over-https","commit_stats":null,"previous_names":["ssrlive/dns-over-https"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ssrlive/dns-over-https","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssrlive%2Fdns-over-https","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssrlive%2Fdns-over-https/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssrlive%2Fdns-over-https/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssrlive%2Fdns-over-https/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssrlive","download_url":"https://codeload.github.com/ssrlive/dns-over-https/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssrlive%2Fdns-over-https/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29994618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-over-tls","doh","dot","https","tls"],"created_at":"2024-11-05T14:26:54.604Z","updated_at":"2026-03-02T07:02:45.606Z","avatar_url":"https://github.com/ssrlive.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DNS-over-HTTPS\n\n[![Crates.io](https://img.shields.io/crates/v/dns-over-https.svg)](https://crates.io/crates/dns-over-https)\n![dns-over-https](https://docs.rs/dns-over-https/badge.svg)\n[![Documentation](https://img.shields.io/badge/docs-release-brightgreen.svg?style=flat)](https://docs.rs/dns-over-https)\n[![Download](https://img.shields.io/crates/d/dns-over-https.svg)](https://crates.io/crates/dns-over-https)\n[![License](https://img.shields.io/crates/l/dns-over-https.svg?style=flat)](https://github.com/ssrlive/dns-over-https/blob/master/LICENSE)\n\nA lightweight DNS-over-HTTPS (\"DOH\") proxy written in Rust.\n\nDNS-over-HTTPS is a lightweight proxy that will securely forward any requests to a DNS-over-HTTPS resolver such as [Cloudflare](https://developers.cloudflare.com/1.1.1.1/dns-over-https/).\n\n**Current version:** 0.2.0  \n**Supported Rust version:** 1.31\n\n## Install\n\nDownload the latest binary for your architecture from the [releases page](https://github.com/ssrlive/dns-over-https/releases).\n\n## Usage\n\n```\nUsage: dns-over-https [OPTIONS]\n\nOptions:\n  -b, --bind \u003cIP:port\u003e       Listen for DNS requests on the addresses and ports [default: 127.0.0.1:53]\n  -u, --upstream-urls \u003cURL\u003e  URL(s) of upstream DNS-over-HTTPS service [default: https://1.1.1.1/dns-query]\n  -v, --verbosity \u003clevel\u003e    Verbosity level [default: info] [possible values: off, error, warn, info, debug, trace]\n      --service              Windows only: Run as a service\n  -h, --help                 Print help\n  -V, --version              Print version\n```\n\n### Running on Windows\n\nTo use DNS-over-HTTPS to encrypt your DNS requests on Windows, download and install the latest [release](https://github.com/ssrlive/dns-over-https/releases).\n\nOr you can install it using `cargo`, assuming you have `Rust` installed:\n\n```bash\ncargo install dns-over-https\n```\nThe binary will be installed in `C:\\Users\\\u003cusername\u003e\\.cargo\\bin\\dns-over-https.exe`.\n\nOpen a `powershell` terminal with administrative privileges and input command `New-Service` to create a new service,\n- Name: `dns-over-https`\n- BinaryPathName: `C:\\Users\\\u003cusername\u003e\\.cargo\\bin\\dns-over-https.exe -b 127.0.0.1:53 -b [::1]:53 --service`\n\n![image](https://github.com/ssrlive/dns-over-https/assets/30760636/284e1063-179b-4ee9-8f85-1124769eb318)\n\nStart the service: Input command `services` from start menu, open `Services` window, start the service `dns-over-https`.\n\n![image](https://github.com/ssrlive/dns-over-https/assets/30760636/a66a038d-cc26-4b97-a762-977ff806e969)\n\nModify the DNS server address in the network adapter settings to `127.0.0.1`(IPv4) and `::1`(IPv6).\n\n![image](https://github.com/ssrlive/dns-over-https/assets/30760636/25505389-ff61-44e7-88b1-6117eb36c66c)\n\nDone.\n\n### Running on a Pi-Hole\n\nTo use DNS-over-HTTPS to encrypt your DNS requests on a Pi-Hole, download and install the latest [release](https://github.com/ssrlive/dns-over-https/releases):\n\n```bash\npi@raspberrypi:~ $ wget https://github.com/ssrlive/dns-over-https/releases/latest/download/dns-over-https-arm-unknown-linux-gnueabihf.zip\npi@raspberrypi:~ $ unzip dns-over-https-arm-unknown-linux-gnueabihf.zip\npi@raspberrypi:~ $ sudo mv dns-over-https /usr/local/bin/\n```\n\nYou can confirm dns-over-https is working properly by asking for the current version:\n\n```bash\npi@raspberrypi:~ $ dns-over-https --version\ndns-over-https 0.2.0\n```\n\nYou can then configure dns-over-https to run as a Systemd service that listens on port 5053 and forwards requests to [Cloudflare's DNS-over-HTTPS resolvers](https://developers.cloudflare.com/1.1.1.1/dns-over-https/).\n\nFirst, create a system user for dns-over-https:\n\n```bash\npi@raspberrypi:~ $ sudo adduser --system --no-create-home dns-over-https\n```\n\nThen write out a Systemd unit file:\n\n```bash\npi@raspberrypi:~ $ sudo tee /lib/systemd/system/dns-over-https.service \u003c\u003cEOF\n[Unit]\nDescription=dns-over-https\nAfter=syslog.target network-online.target\n\n[Service]\nType=simple\nUser=dns-over-https\nExecStart=/usr/local/bin/dns-over-https -b 127.0.0.1:5053 -u https://1.1.1.1/dns-query -u https://1.0.0.1/dns-query\nRestart=on-failure\nRestartSec=10\nKillMode=process\n\n[Install]\nWantedBy=multi-user.target\nEOF\n```\n\nYou can now start up dns-over-https and check it is running:\n\n```bash\npi@raspberrypi:~ $ sudo systemctl enable dns-over-https\npi@raspberrypi:~ $ sudo systemctl start dns-over-https\npi@raspberrypi:~ $ sudo systemctl status dns-over-https\n```\n\nFinally, you can change your Pi-Hole configuration to use `127.0.0.1#5053` as its sole upstream DNS server and confirm your requests are now secure by using [Cloudflare's connection information page](https://1.1.1.1/help).\n\n## References\n\n* https://developers.cloudflare.com/1.1.1.1/dns-over-https/\n\n## License\n\nCopyright © 2024-2024 @ssrlive\nCopyright © 2018-2019 Paul Mucur\n\nDistributed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssrlive%2Fdns-over-https","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssrlive%2Fdns-over-https","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssrlive%2Fdns-over-https/lists"}