All Projects → uxbh → Ztdns

uxbh / Ztdns

Licence: mit
DNS server for a ZeroTier virtual network

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Ztdns

Block Ads Via Dns
Block ads and malware via local DNS server
Stars: ✭ 50 (-75.25%)
Mutual labels:  dns-server
Dns
Docker DNS server on steroids to access DNS-over-TLS from Cloudflare, Google, Quad9, Quadrant or CleanBrowsing
Stars: ✭ 111 (-45.05%)
Mutual labels:  dns-server
Pihole Unbound
Guide to setup Unbound recursive DNS resolver with Pi-Hole. With additional configs for speed and security!! 🚀🔒
Stars: ✭ 165 (-18.32%)
Mutual labels:  dns-server
Ioc2rpz
ioc2rpz is a place where threat intelligence meets DNS.
Stars: ✭ 67 (-66.83%)
Mutual labels:  dns-server
Blackhat Go
As hackers, we put a premium on function over elegance as time is always scarce. When you need to quickly create a solution to a problem, style concerns come secondary.
Stars: ✭ 101 (-50%)
Mutual labels:  dns-server
Kathara
A lightweight container-based network emulation system.
Stars: ✭ 139 (-31.19%)
Mutual labels:  dns-server
Acme Dns
Limited DNS server with RESTful HTTP API to handle ACME DNS challenges easily and securely.
Stars: ✭ 1,041 (+415.35%)
Mutual labels:  dns-server
Mosdns
一个 DNS 转发/分流器。
Stars: ✭ 165 (-18.32%)
Mutual labels:  dns-server
Minidyndns
A simple DynDNS server with an build in HTTP interface to update IPs
Stars: ✭ 101 (-50%)
Mutual labels:  dns-server
Routedns
DNS stub resolver, proxy and router with support for DoT, DoH, DoQ, and DTLS
Stars: ✭ 153 (-24.26%)
Mutual labels:  dns-server
Tor Router
A SOCKS, HTTP and DNS proxy for distributing traffic across multiple instances of Tor
Stars: ✭ 69 (-65.84%)
Mutual labels:  dns-server
Sliver
Adversary Simulation Framework
Stars: ✭ 1,348 (+567.33%)
Mutual labels:  dns-server
Trust Dns
A Rust based DNS client, server, and resolver
Stars: ✭ 2,155 (+966.83%)
Mutual labels:  dns-server
Simpledns
A very simple and small DNS Server to help understanding the protocol basics.
Stars: ✭ 62 (-69.31%)
Mutual labels:  dns-server
Dnsguide
A guide to writing a DNS Server from scratch in Rust
Stars: ✭ 2,226 (+1001.98%)
Mutual labels:  dns-server
Docker Bind
Bind caching DNS server on Debian with wild-card domain support
Stars: ✭ 50 (-75.25%)
Mutual labels:  dns-server
Knot
A mirrored repository
Stars: ✭ 138 (-31.68%)
Mutual labels:  dns-server
Bind9
Mirror of https://gitlab.isc.org/isc-projects/bind9, please submit issues and PR/MRs in the GitLab.
Stars: ✭ 197 (-2.48%)
Mutual labels:  dns-server
Dcompass
[WIP] High-performance programmable DNS server aiming at robustness, speed, and flexibility
Stars: ✭ 174 (-13.86%)
Mutual labels:  dns-server
Unbound Docker
Unbound DNS Server Docker Image
Stars: ✭ 147 (-27.23%)
Mutual labels:  dns-server

ZerotierDNS

ztDNS is a dedicated DNS server for a ZeroTier virtual network.

Overview

ztDNS pulls device names from Zerotier and makes them available by name using either IPv4 assigned addresses or IPv6 assigned addresses.

Getting Started

Traditional

If you prefer the traditional installation route:

Requirements

  • Go tools - if not using a precompiled release

Install

  1. First use go get to install the latest version, or download a precompiled release from https://github.com/uxbh/ztdns/releases

    go get -u github.com/uxbh/ztdns/
    go build
    
  2. If you are running on Linux, run sudo setcap cap_net_bind_service=+eip ./ztdns to enable non-root users to bind privileged ports. On other operating systems, the program may need to be run as an administrator.

  3. Add a new API access token to your user under the account tab at https://my.zerotier.com. If you do not want to store your API access token in the configuration file you can also run the server with the env command: env 'ZTDNS_ZT.API=<<APIToken>>' ./ztdns server

  4. Run ztdns mkconfig to generate a sample configuration file.

  5. Add your API access token, Network names and IDs, and interface name to the configuration.

  6. Start the server using ztdns server.

  7. Add a DNS entry in your ZeroTier members pointing to the member running ztdns.

Once the server is up and running you will be able to resolve names based on the short name and suffix defined in the configuration file (zt by default) from ZeroTier.

dig @serveraddress member.domain.zt A
dig @serveraddress member.domain.zt AAAA
ping member.domain.zt

Arch Linux (install with your favorite Arch package manager: aurman, pacaur, pikar, yay)

  • ztdns-git Package now availabe on Arch Linux via AUR.
    yay -S ztdns-git

Docker

If you prefer to run the server with Docker:

Docker Requirements

Docker Install

  1. Clone or download this repo
  2. Create a .ztdns.toml file in the main directory by copying the .ztdns.toml.example file.
  3. Add your API access token, Network ID, and interface name to the newly created configuration file.
  4. By default it will be bound to port 5356 on the host, that can be changed to standard DNS port 53 by modifying the docker-compose.yml file. You must be running Docker with root permissions in order to bind the privileged port properly.
  5. Run docker-compose up to start the server.
  6. Add a DNS entry in your ZeroTier members pointing to the member running ztdns.

Once the server is up and running you will be able to resolve names based on the short name, domain and suffix defined in the configuration file (zt by default) from ZeroTier.

# remove -p 5356 if running on port 53
dig @127.0.0.1 -p 5356 member.domain.zt A
dig @127.0.0.1 -p 5356 member.domain.zt AAAA
ping member.domain.zt

Contributing

Thanks for considering contributing to the project. We welcome contributions, issues or requests from anyone, and are grateful for any help. Problems or questions? Feel free to open an issue on GitHub.

Please make sure your contributions adhere to the following guidelines:

  • Code must adhere to the official Go formating guidelines (i.e. uses gofmt).
  • Pull requests need to be based on and opened against the master branch.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].