Technitium DNS Server

Never use the hosts file again!

Version 1.2.3 (beta)

Windows
(.NET Framework v4.6.1 or higher)
Windows / Ubuntu Linux / macOS
(.NET Framework v4.6.1 or Mono Framework)
Windows / Ubuntu Linux / macOS
(.NET Core 2.0 or higher)
Open Source
Source code available under GNU GPLv3 Licence on  GitHub
File Details
NameDnsServerSetup.zip
FormatZIP File
Size2.42 MB
SHA1F6C39FECDB687678385976DB85B8F79624D1B9C8
SHA256A50E5B332016D358CB32E963A029390BACD7A310A9C309297D5338D1EAD3A6EF
NameDnsServerPortable.zip
FormatZIP File
Size2.32 MB
SHA17927EC6DEC88E1F46DBFACB84C6987FE0849DCD8
SHA2562E8AD8A27E23DC35A258BFB3EFD999605060AAFFF721AAC2612C85E3EAD7C00E
NameDnsServerPortable.tar.gz
FormatGZiped TAR Archive
Size0.97 MB
SHA1F963CFA1CB797280CD49A1A106805D44EDEF6683
SHA256B48151E7C585BCA4E05D019E348B4B3A9E170E342E6C1FF237B0E94D43B922D6
Technitium DNS Server Screen Shot

Technitium DNS Server is an open source tool that can be used for self hosting a local network DNS server or, used for experimentation/testing by software developers on their computer. Traditionally, developers use an hosts file for configuring an IP address for a domain under testing. However, using hosts file is cumbersome at times and can only be used to resolve domain name to an IP address.

With a fully configurable DNS server running on your local machine, you can configure not just simple A records (for IP address) but, also configure other types of records like CNAME or MX etc. This allow you to have more control and power when you want to do testing that simulates the exact configuration that you have running on production.

Applications of using a locally hosted DNS server is limited only by the user's imagination!

Features

  • Fully manageable local DNS server.
  • Wildcard sub domain support.
  • Disable/Enable hosted zones for quick switching between staging & production.
  • DNS Client tool for resolving queries.
  • Import records feature allows to import records of live domain using DNS Client
  • Web console for allowing access over network.
  • Recursive querying support.
  • DNS caching with cache browser interface in web console.
  • Forwarders setup to allow chaining other DNS server to reduce response time.
  • IPv6 network support in DNS server core for querying.
  • Built-in system logs and query logs.
  • Cross platform implementation for running on Linux or macOS using Mono Framework or .NET Core.

How To Get Started

  1. Download and install the DNS server Windows service setup. You can use the portable zip/tar.gz file too by extracting and run the DNS Server app.
  2. Open http://localhost:5380/ on your favourite web browser.
  3. The web console will auto login using default username 'admin' and password 'admin'. Don't forget to change the password to disable auto login!
  4. Add one or more domain names as zones and configure recource records for them. Or, use the DNS Client and quickly import records into local DNS zone!
  5. Use nslookup command or built-in DNS Client to query the server to test it.
  6. If, you are going to use the hosted zones for testing, make sure you set TTL to a lower value like 10 seconds so that the response gets flushed quickly and you can shift quickly between staging & production zones by using the disable/enable zone feature. Use ipconfig /flushdns command on Windows to flush system DNS cache if needed. Note that web browsers do cache DNS responses for a minimum of 60 seconds irrespective of TTL value.
  7. Optionally, add forwarder DNS server IP addresses in DNS Settings so that the DNS Server uses them to resolve requests instead of root servers to improve response time. You may configure any public DNS server like the one provided by your ISP, your router, Google DNS, or OpenDNS.
  8. Configure DNS server IP address in the network configuration allowing the DNS server to be used by the system and other applications. You need to configure DNS server IP address for both IPv4 & IPv6 on the network connection. Try loopback address '127.0.0.1' for IPv4 and '::1' for IPv6 and check if it works. If, for some reasons, the loopback address does not work, try using the local network IP address instead.
  9. If needed, configure your system firewall to allow inbound traffic to UDP & TCP port 53 so that, other computers or devices on the network can access this DNS Server.
  10. ???
  11. Profit!

Support

For more info, send an email to support@technitium.com. Any feedback or feature requests are welcome.