Giter Club home page Giter Club logo

go-wild-dns's Introduction

Go-Wild-DNS

Micro DNS-server that implements wildcard-ip DNS magic functionality:

        10.0.0.1.ip.mydomain.io  resolves to   10.0.0.1
    www.10.0.0.1.ip.mydomain.io  resolves to   10.0.0.1
 mysite.10.0.0.1.ip.mydomain.io  resolves to   10.0.0.1
foo.bar.10.0.0.1.ip.mydomain.io  resolves to   10.0.0.1

It's like your own xip.io

TLS Mode

Optionally go-wild-dns supports TLS Mode for wildcard certificates (which can only wildcard up to first dot):

        10-0-0-1.ip.mydomain.io  resolves to   10.0.0.1
    www-10-0-0-1.ip.mydomain.io  resolves to   10.0.0.1
 mysite-10-0-0-1.ip.mydomain.io  resolves to   10.0.0.1
foo-bar-10-0-0-1.ip.mydomain.io  resolves to   10.0.0.1

TXT records supports (for letencrypt)

See information about TXT_RECORDS_PATH in go-wild-dns.service

Setup

Create NS record for magic-domain:

ip.mydomain.io 	NS 	ns1.ip.mydomain.io

and A record too:

ns1.ip.mydomain.io  A 1.2.3.4

Now go to the 1.2.3.4 server (assuming you're using systemd-based Linux):

  1. Setup go compiler, build go-wild-dns binary (just run go build), copy binary to /opt/go-wild-dns
  2. Edit go-wild-dns.service: specify your DOMAIN_SUFFIX environment variable. Specify IP of other NS servers if you are using > 1.
  3. cp conf.yaml.example conf.yaml, and modify conf.yaml
  4. mkdir /opt/go-wlid-dns && copy conf.yaml & compiled binary.
  5. Copy go-wild-dns.service to /etc/systemd/system/
  6. systemctl daemon-reload && systemctl enable go-wild-dns && systemctl start go-wild-dns
  7. Allow firewall access to port 53 (UDP)

Now repeat everything for secondary server (optional)

DNS Pecularities

  • No NS / SOA records implemented
  • Returns its own IP as a fallback

go-wild-dns's People

Contributors

andrianbdn avatar masato25 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.