{"id":19956295,"url":"https://github.com/jamesduncombe/veild","last_synced_at":"2025-07-17T18:35:13.377Z","repository":{"id":50060649,"uuid":"147407417","full_name":"jamesduncombe/veild","owner":"jamesduncombe","description":"Stub resolver for routing DNS queries over TLS (DNS-over-TLS).","archived":false,"fork":false,"pushed_at":"2025-05-01T11:42:31.000Z","size":207,"stargazers_count":8,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-01T12:36:03.001Z","etag":null,"topics":["dns","dns-over-tls","go","privacy","privacy-tools","stub-resolver"],"latest_commit_sha":null,"homepage":"","language":"Go","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/jamesduncombe.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,"zenodo":null}},"created_at":"2018-09-04T19:59:11.000Z","updated_at":"2025-05-01T11:42:34.000Z","dependencies_parsed_at":"2025-04-23T11:23:01.868Z","dependency_job_id":"7ca0359d-ff93-49fc-8ece-a07bffb25fba","html_url":"https://github.com/jamesduncombe/veild","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesduncombe%2Fveild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesduncombe%2Fveild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesduncombe%2Fveild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesduncombe%2Fveild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamesduncombe","download_url":"https://codeload.github.com/jamesduncombe/veild/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252252873,"owners_count":21718767,"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-tls","go","privacy","privacy-tools","stub-resolver"],"created_at":"2024-11-13T01:32:56.415Z","updated_at":"2025-07-17T18:35:13.371Z","avatar_url":"https://github.com/jamesduncombe.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# veild\n\n[![Build Status](https://github.com/jamesduncombe/veild/actions/workflows/build.yml/badge.svg)](https://github.com/jamesduncombe/veild/actions) [![Go Report Card](https://goreportcard.com/badge/github.com/jamesduncombe/veild)](https://goreportcard.com/report/github.com/jamesduncombe/veild) [![godoc](https://img.shields.io/badge/godoc-reference-blue.svg)](https://godoc.org/github.com/jamesduncombe/veild)\n\nStub resolver for routing DNS queries over TLS (DNS-over-TLS).\n\nThanks to the following sites/RFCs:\n\n- [https://tools.ietf.org/html/rfc1035](https://tools.ietf.org/html/rfc1035)\n- [https://tools.ietf.org/html/rfc7858](https://tools.ietf.org/html/rfc7858)\n- [https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Test+Servers](https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Test+Servers)\n\n## Features\n\n- Roundrobin of requests over each DNS server\n- Caches responses and adhers to TTLs\n- Blacklist domains using a supplied file (txt file of domains to block)\n- Ability to define a list of resolvers in a YAML file\n\n## Install\n\n[Head on over to the latest releases page](https://github.com/jamesduncombe/veild/releases) to pick up your release of choice :)\n\n## Usage\n\nThe quickest and easiest way to get started, assuming you've extracted the archive and are in the directory:\n\n```sh\nsudo ./veild\n```\n\nThis will start `veild` with caching on and a resolvers set to [Quad9's](https://www.quad9.net/) 9.9.9.9 and [Mullvad's](https://mullvad.net/en/help/dns-over-https-and-dns-over-tls) 194.242.2.9 servers.\n\nWhy do I need sudo?! Well, by default veild listens on port `53` (UDP) which is within the privileged ports range... more on that [here](https://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html).\n\nHopefully you should see it startup with output similar to the following:\n\n```sh\n$ sudo ./veild\n2025/04/06 16:59:03 Starting Veil\n2025/04/06 16:59:03 [main] Outbound port set to 853\n2025/04/06 16:59:03 [main] Listening on 127.0.0.1:53 (UDP)\n```\n\nIf you do... good stuff!\n\nTime to set your resolver to your nice, new, fresh super secure™ resolver.\n\n- [Linux instructions](https://www.techrepublic.com/article/how-to-set-dns-nameservers-in-ubuntu-server-18-04/)\n- [MacOS instructions](http://osxdaily.com/2015/12/05/change-dns-server-settings-mac-os-x/)\n- [Windows instructions](https://www.lifewire.com/how-to-change-dns-servers-in-windows-2626242)\n\nWhen your OS is set to use veild you should start to see some activity in the console.\n\n### Resolvers\n\nThe `resolvers.yml` file which you'll see in the archive also gives you the ability to enable/disable DNS resolvers as needed. I've added comments in there which should explain things.\n\n### Outbound port\n\nYou can specify an outbound port (instead of the default `853` DNS-over-TLS port) by using the `-p` flag when starting veild.\n\nUsing the `-p` flag filters down the resolvers in the `resolvers.yml` file to the specified port.\n\n### Blacklists\n\nBlacklist support is also available to block ad domains etc. For that you'll need to head to [Steven Black's repo](https://github.com/StevenBlack/hosts) where you can find multiple blacklists available for download.\n\nVeild is happy working with the hosts file format, so, once you have a blacklist downloaded, simply add: `-b blacklist.txt` to the end of the command above.\n\n\nI think that just about covers things... for a full set of the arguments that you can pass to veild run: `./veild --help`\n\n## Todo\n\n- Limit size of cache\n- Add ability to remap domain requests\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesduncombe%2Fveild","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesduncombe%2Fveild","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesduncombe%2Fveild/lists"}