DNS lookup fails but nslookup works

18,952

Solution 1

It seems as if this is due to me pointing to both internal and external dns servers on my client, as mentioned here. After I removed all external DNS servers from my list of servers, everything works as it should.

Solution 2

For some, check /etc/resolver/ directory and delete any files there.

Solution 3

Actually it is probably due to using a .local domain. That conflicts with the mDNS resolution (zero configuration networking) which by default uses .local.

Some versions of OS X can support both name resolution methods, mDNS and normal DNS, but at least Yosemite doesn't seem to support it any more.

This little bit older Apple Support document explains the background. For Yosemite what does work still is adding "domain.local" to the DNS search list in the network settings.

The real solution is not using the .local domain for DNS resolved hosts.

Solution 4

Sometimes mDNSResolver stops when connecting with VPN.

Just restart the mDNSResolver:

sudo killall -HUP mDNSResponder

Solution 5

I have the same problem on OS X Yosemite beta, and switching to Google's 8.8.8.8 fixed the problem for me.

Share:
18,952
lhadameck
Author by

lhadameck

Dev/arch, mainly in the .NET space. See my blog for more info.

Updated on September 17, 2022

Comments

  • lhadameck
    lhadameck almost 2 years

    I have DNS lookup problems on my internal network. I'm using an internal DNS server with the IP 192.168.1.254.

    If I use nslookup everything works like it should:

    >hawk:~ user$ nslookup publicwebserver.domain.local
    >Server:        192.168.1.254
    >
    >Address:   192.168.1.254#53
    >
    >Name:  publicwebserver.domain.local
    >
    > Address: 192.168.1.21
    

    My problem is that no other program seems to be able to lookup the DNS name:

    hawk:~ user$ ping publicwebserver.domain.local

    ping: cannot resolve publicwebserver.domain.local: Unknown host

    It's like this for all command line programs and e.g. Firefox. If I fire up Network Utility, I get the same problem on the Lookup tab (probably since it uses nslookup or host on the back-end).

    Has any of you seen this issue before?

  • Adam Carr
    Adam Carr over 9 years
    This solved it for me (not using .local in my dns zone settings). I am using OSX Yosemite.
  • Leo
    Leo about 9 years
    Is it a link to a Windows Vista forum???
  • Paul-Sebastian Manole
    Paul-Sebastian Manole almost 6 years
    Yes, worked for me as well. Switched from .local to .vpn and voila, it works! I also have to mention that nslookup worked before switching from .local (still does!), just ping didn't work (now does).
  • matb33
    matb33 over 5 years
    I had a leftover dnsmasq installation (to resolve *.localhost to 127.0.0.1) that I removed in favour of configuring it at my router level (using dd-wrt, via dnsmasq options under Services). The only thing I hadn't removed was the /etc/resolver/ folder that I had created during the local dnsmasq install. So, this solution worked for me
  • Tres
    Tres over 4 years
    omg THANK you. A rogue installer took it upon itself to resolve .dev domains to localhost
  • Aaron Zinman
    Aaron Zinman almost 4 years
    This worked for me after changing my DNS server on my local LAN
  • Jibrilat
    Jibrilat about 2 years
    Using macbook also this worked for me. After changed some entries on the DNS ssh was not resolving them. This trick kinda refresh the cache!