Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

For development purposes I want all DNS requests to the .dev TLD to forward to my own PC.

The hosts file does not suffice. I use multiple domains and also multiple subdomains. I would have to add a line for each combination.

I have read that a DNS forwarder like DNSmasq can be used to do the job (for example as described here). Also this software is already installed on Ubuntu 12.10.

The problem is that I fail to see how and where I should configure DNSmasq, i.e., where I should put this line:

address=/dev/127.0.0.1
share|improve this question

2 Answers 2

up vote 7 down vote accepted

The complete standalone dnsmasq (DHCP and DNS server) is not installed by default in Ubuntu 12.04 and 12.10, but a package called dnsmasq-base is installed by default in Ubuntu Desktop 12.04 and 12.10. The dnsmasq-base package contains the dnsmasq binary and is used by NetworkManager.

To do what you want you will need to use dnsmasq as a caching DNS server. You need to:

  • Install dnsmasq sudo apt-get install dnsmasq
  • Change your network setting, so that your computer uses itself as it dns server.
  • Make the changes to the config files:

Create /etc/dnsmasq.d/dev-tld with these contents:

local=/dev/

address=/dev/127.0.0.5

The first command says *.dev requests can't be forwarded to your real DNS server. The second says *.dev resolves to 127.0.0.5 which is localhost.

  • Restart the dnsmasq service (not network-manager)
share|improve this answer
    
Thank you! It was extremely helpfull that I got to known that the DNSMasq present was not the real deal. After installing the complete package and configuring it in the way I described before I got it to work. :) –  Roel van Duijnhoven Dec 27 '12 at 18:15
1  
I'd prefer the other answer for recent desktop installations. For recent desktop installations you would be running two dnsmasq instances this way. Your answer could be very useful in non-NetworkManager setups, older ones (not using dnsmasq) or even server installations! –  gertvdijk Jan 8 '13 at 19:31
    
Yep, other answer is best since Ubuntu 12.10. –  BenjaminRH Mar 7 '13 at 10:06

In Ubuntu 12.10 or later you can do this with dnsmasq as run by NetworkManager.

  1. Create the directory mkdir /etc/NetworkManager/dnsmasq.d if it doesn't already exist.

    sudo mkdir /etc/NetworkManager/dnsmasq.d
    
  2. Toss the following line into /etc/NetworkManager/dnsmasq.d/dev-tld.

    address=/dev/127.0.0.1
    
  3. Restart NetworkManager.

    sudo service network-manager restart
    
  4. Enjoy the awesomeness.

enter image description here

share|improve this answer
1  
Thanks to AbrahamVanHelpsing for the link to the arch wiki on how to do this. –  jrg Dec 27 '12 at 13:30
    
After following your steps still I get to see "unknown host" after running a ping. Do I need to configure/enable DNSMasq on some other place? Or configure my network properties in a different way? Thanks! –  Roel van Duijnhoven Dec 27 '12 at 18:11
    
Interesting. it's showing up fine for me. –  jrg Dec 27 '12 at 18:25
    
Ah, @RoelvanDuijnhoven - are you running 12.10 or 12.04? Works fine for me on 12.10. –  jrg Dec 27 '12 at 18:56
    
I am running 12.10. But I do need to mention that I have tried to alter some configuration file prior to asking a question here. Possibly these changes mitigate your solution. Javier Rivera's solution did the trick however! –  Roel van Duijnhoven Dec 28 '12 at 14:06

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.