项目作者: fardog

项目描述 :
A DNS-over-HTTPS client proxy and server, with Cloudflare compatible interfaces.
高级语言: Go
项目地址: git://github.com/fardog/dnoxy.git
创建时间: 2018-08-05T18:15:06Z
项目社区:https://github.com/fardog/dnoxy

开源协议:Apache License 2.0

下载


dnoxy

A DNS-over-HTTPS client proxy and server with Cloudflare compatible interfaces,
dnoxy (pronounced “d-NOX-y”) is a collection of services for running a
DNS-over-HTTPS server, and a local network DNS proxy for those servers.

Note: This is proof of concept code, and should not be relied upon for
production use. If you’re interested in communicating with existing
DNS-over-HTTPS servers—such as those run by Cloudflare or
Google—you should look at secure-operator.

Right now, dnoxy has two components:

  • dnoxy-http – an HTTP server which implements Cloudflare’s [DNS-over-HTTPS
    DNS Wireformat][dns-wireformat], and looks up answers against plain DNS.
  • dnoxy-dns – a DNS server which can perform lookups against a DNS-over-HTTPS
    server, such as dnoxy-http or Cloudflare DNS.

[dns-wireformat]:
https://developers.cloudflare.com/1.1.1.1/dns-over-https/wireformat/

A simplified deployment would be:

  1. dns req | http req | dns req
  2. +--------+ +-----------+ | | +------------+ +------------+
  3. | client | ------> | dnoxy-dns | -------------> | dnoxy-http | ------> | dns server |
  4. +--------+ +-----------+ | | +------------+ +------------+
  5. Local Network | Internet | Remote Network

Of course, that’s no better than current DNS since it’s unencrypted, and no
caching would be performed; but these services are meant to be no more than
building blocks. You would pair dnoxy-dns with a caching DNS server like
dnsmasq, and dnoxy-http with an HTTPS terminator proxy like nginx.

Building

Dockerfiles are included for the DNS and HTTP components; to build:

  1. # dns component
  2. docker build -t dnoxy-dns:latest -f Dockerfile-dns
  3. # http component
  4. docker build -t dnoxy-http:latest -f Dockerfile-http

Dependencies are managed with Go 1.11+ modules; to install without Docker:

  1. go mod download
  2. go install -v ./...

License

  1. Copyright 2019 Nathan Wittstock
  2. Licensed under the Apache License, Version 2.0 (the "License");
  3. you may not use this file except in compliance with the License.
  4. You may obtain a copy of the License at
  5. http://www.apache.org/licenses/LICENSE-2.0