nslookup Commands Reference

Essential nslookup commands for DNS lookups and troubleshooting

🔍 Basic DNS Lookups

Simple A record lookup

nslookup example.com

Performs a basic DNS lookup using the default nameserver.

Query using specific nameserver

nslookup example.com 8.8.8.8

Query using Google's DNS server (8.8.8.8). Replace with any nameserver IP.

Query using specific nameserver by hostname

nslookup example.com ns1.example.com

Reverse DNS lookup

nslookup 8.8.8.8

Looks up the domain name associated with an IP address.

💻 Interactive Mode

Enter interactive mode

nslookup

Starts interactive mode where you can run multiple queries without re-launching nslookup.

Set query type in interactive mode

nslookup
> set type=MX
> example.com

Change nameserver in interactive mode

nslookup
> server 1.1.1.1
> example.com

Switches to Cloudflare DNS (1.1.1.1) for subsequent queries.

Exit interactive mode

> exit

Type exit or press Ctrl+C to quit.

📝 Querying Different Record Types

A record (IPv4 address)

nslookup -type=A example.com

AAAA record (IPv6 address)

nslookup -type=AAAA example.com

MX record (mail servers)

nslookup -type=MX example.com

NS record (nameservers)

nslookup -type=NS example.com

TXT record (text records)

nslookup -type=TXT example.com

Commonly used for SPF, DKIM, and domain verification records.

CNAME record (canonical name)

nslookup -type=CNAME www.example.com

SOA record (start of authority)

nslookup -type=SOA example.com

PTR record (reverse DNS)

nslookup -type=PTR 8.8.8.8

ANY record (all available records)

nslookup -type=ANY example.com

Note: Many DNS servers now limit or disable ANY queries for security reasons.

⚙️ Query Options

Set query timeout

nslookup -timeout=10 example.com

Sets timeout to 10 seconds (default is 5 seconds).

Set retry count

nslookup -retry=3 example.com

Retry up to 3 times if the query fails.

Use TCP instead of UDP

nslookup -vc example.com

Forces TCP connection. Useful for large responses or when UDP is blocked.

Enable debug mode

nslookup -debug example.com

Shows detailed debugging information about the query.

Query specific port

nslookup -port=5353 example.com

Query DNS server on a non-standard port (default is 53).

Disable recursion

nslookup
> set norecurse
> example.com

Query authoritative server only, without recursion.

🎛️ Interactive Mode Settings

Set query class

> set class=IN

Set class to IN (Internet), CH (Chaos), or HS (Hesiod). Default is IN.

Enable/disable debug mode

> set debug       # Enable debug mode
> set nodebug     # Disable debug mode

Enable/disable detailed debug mode

> set d2          # Enable detailed debug
> set nod2        # Disable detailed debug

Set domain search list

> set domain=example.com

Appends domain name to queries that don't end with a dot.

Enable/disable search list

> set search      # Enable search list
> set nosearch    # Disable search list

View all current settings

> set all

💡 Common Use Cases

Check if domain is using Cloudflare

nslookup -type=NS example.com

Look for nameservers ending in cloudflare.com

Verify SPF records for email

nslookup -type=TXT example.com

Look for TXT records starting with v=spf1

Check DKIM record

nslookup -type=TXT default._domainkey.example.com

Replace default with your DKIM selector.

Check DMARC policy

nslookup -type=TXT _dmarc.example.com

Compare responses from different DNS servers

nslookup example.com 8.8.8.8
nslookup example.com 1.1.1.1

Compare Google DNS (8.8.8.8) with Cloudflare DNS (1.1.1.1).

Test local DNS server

nslookup example.com localhost

Query authoritative nameserver directly

# First, find the authoritative nameservers
nslookup -type=NS example.com

# Then query one of them directly
nslookup example.com ns1.example.com

🔧 Troubleshooting

"Server failed" or "SERVFAIL" error

The DNS server encountered an error processing the request. Try a different nameserver or check if DNSSEC is causing issues.

nslookup example.com 8.8.8.8

"Non-existent domain" or "NXDOMAIN" error

The domain name does not exist. Check spelling and verify the domain is registered.

nslookup -type=SOA example.com

Timeout errors

Increase timeout and retry values, or try a different nameserver.

nslookup -timeout=10 -retry=5 example.com

Check if DNS server is responding

nslookup google.com 8.8.8.8

If google.com resolves but your domain doesn't, the issue is with the domain, not the DNS server.

Debug DNS resolution path

nslookup
> set debug
> set d2
> example.com

Shows detailed information about the query and response.

🖥️ Platform-Specific Notes

Windows syntax

nslookup -type=MX example.com

Windows uses -type= or -querytype=

Linux/macOS syntax

nslookup -type=MX example.com

Linux/macOS also support -type= or -query=

Alternative: dig (more powerful on Linux/macOS)

dig example.com

On Linux/macOS, dig is often preferred for advanced queries.

📊 Quick Reference Table

Record TypeCommandPurpose
Anslookup -type=A example.comIPv4 address
AAAAnslookup -type=AAAA example.comIPv6 address
MXnslookup -type=MX example.comMail servers
NSnslookup -type=NS example.comNameservers
TXTnslookup -type=TXT example.comText records (SPF, DKIM, etc.)
CNAMEnslookup -type=CNAME www.example.comCanonical name
SOAnslookup -type=SOA example.comStart of authority
PTRnslookup 8.8.8.8Reverse DNS lookup