You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
3 years ago | |
---|---|---|
deployment | 3 years ago | |
.gitignore | 3 years ago | |
Dockerfile | 3 years ago | |
LICENSE | 3 years ago | |
README.md | 3 years ago | |
blocklists.go | 3 years ago | |
blocklists_test.go | 3 years ago | |
config.go | 3 years ago | |
config.json | 3 years ago | |
dns.go | 3 years ago | |
go.mod | 3 years ago | |
go.sum | 3 years ago | |
http.go | 3 years ago | |
main.go | 3 years ago | |
makefile | 3 years ago |
README.md
Gopherhole
Go built DNS server for blocking ads. Like Pi-hole but for hackers.
Works with Pi-hole block lists.
Find more Pi-Hole compatible block lists here: https://firebog.net/
- Has support for custom DNS records and block lists.
- Supports custom upstream DNS servers for recursively resolving domains.
- Supports reloading block lists via HTTP API.
- Setting to use hosts file as upstream
- Generate example config command.
- Supports adding block lists and records via HTTP API.
- Prometheus metrics support.
- HTTP JSON API metrics.
- DNS over HTTPS.
How to use
-
go get git.vdhsn.com/adam/gopherhole
-
run like so:
gopherhole -config ./config.json -bind-http 127.0.0.1 -bind-dns 127.0.0.1 -block-forward-ip 127.0.0.1
-
example config.json file below:
{ "upstream": [ "1.1.1.1", "8.8.8.8" ], "records": { "mynas.internal": { "Type": "A", "Record": "192.168.0.99" }, "eyeofsauron.com": { "Type": "CNAME", "Record": "www.google.com" } }, "blocklists": [ "https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts", "https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt", "https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt" ] }
License
GPL-V3