Skip to content

Instantly share code, notes, and snippets.

Last active December 11, 2021 14:11
What would you like to do?
Configure local DNS server to serve #dev #TLD #ubuntu #linux

Configure local wildcard DNS server

  1. Install Dnsmasq: sudo apt-get install dnsmasq
  2. Since Ubuntu's NetworkManager uses dnsmasq, and since that messes things up a little for us, open up /etc/NetworkManager/NetworkManager.conf and comment out (#) the line that reads dns=dnsmasq. Restart NetworkManager afterwards: sudo restart network-manager.
  3. Make sure Dnsmasq listens to local DNS queries by editing /etc/dnsmasq.conf, and adding the line listen-address=
  4. Create a new file in /etc/dnsmasq.d (eg. /etc/dnsmasq.d/dev), and add the line address=/dev/ to have dnsmasq resolve requests for *.dev domains. Restart Dnsmasq: sudo /etc/init.d/dnsmasq restart.


Copy link

Eloar commented Feb 26, 2020

You don't need to disable dnsmasq used with NetworkManager. Just add config file in /etc/NetworkManager/dnsmasq.d/ and then restart NetworkManager service.

Copy link

Might not be the case in 2013, when I wrote this gist 😁

It might not be a good idea to set up .dev like that, because since then a real .dev. TLD was created (it’s owned by Google).

Nowadays I prefer using *.localhost, which resolve to ::1 without any setup (on Ubuntu at least).

Copy link

Eloar commented Feb 26, 2020

yes, dev TLD might not be best choice. I use local TLD for development.
About Your gist it is high result when searching for dnsmasq configuration, for such use case, so I felt like commenting.

Copy link

Since .local is also problematic due to dual use in multicast DNS and as an internal domain, we've switched to using the .test TLD, which is officially reserved by the IETF for software testing. Because it's officially reserved we should be safe using it internally.

From wikipedia:

The name was reserved by the Internet Engineering Task Force (IETF) in RFC 2606 (June 1999) and is not intended to ever be installed into the global Domain Name System (DNS) of the Internet.[1] Because neither test nor any of its subdomains can be registered, they can be used for testing purposes without fear of conflicts with current or future domain names.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment