Linux下查询DNS可使用
nslookup
、dig
命令,能获取域名对应的Linux下查询DNS的常用方法及详细内容
查看系统DNS配置信息
查看/etc/resolv.conf文件
- 命令:
cat /etc/resolv.conf
- 说明:该文件是Linux系统中保存DNS服务器配置的文件,执行此命令后,会显示文件中的内容,nameserver”行后面的IP地址即为当前系统配置的DNS服务器地址。
## Generated by NetworkManager nameserver 8.8.8.8 nameserver 8.8.4.4
使用nmcli命令(适用于使用NetworkManager管理网络的系统)
- 命令:
nmcli dev show | grep DNS
或nmcli con show | grep dns
- 说明:
nmcli
是Network Manager的命令行工具,用于管理网络连接。nmcli dev show
命令可显示当前系统所有网络接口的配置信息,通过grep DNS
筛选出与DNS相关的信息;nmcli con show
命令可显示所有网络连接的配置信息,同样通过grep dns
筛选出DNS相关信息。DNS: 8.8.8.8 DNS: 8.8.4.4
使用systemdresolve(较新的Linux系统中使用)
- 命令:
cat /run/systemd/resolve/resolv.conf
或systemdresolve status
- 说明:在较新的Linux系统中,systemdresolve服务负责管理DNS解析。
cat /run/systemd/resolve/resolv.conf
命令可查看当前的DNS配置信息;systemdresolve status
命令则会显示更详细的DNS配置状态信息,包括DNS服务器地址、搜索域等。
查询域名的DNS解析信息
nslookup命令
- 基础用法:
nslookup [domainname]
- 说明:用于查询指定域名的DNS记录,查询
google.com
的相关信息,可输入nslookup google.com
,执行该命令后,会显示类似以下内容:Server: 192.168.1.1 Address: 192.168.1.1#53 Nonauthoritative answer: Name: google.com Address: 142.250.183.110
“Server”和“Address”显示的是进行查询所使用的DNS服务器地址;“Nonauthoritative answer”表示这不是权威应答;“Name”后面跟着的是查询的域名,“Address”则是该域名对应的IP地址。
- 查询指定DNS服务器:
nslookup [domainname] [DNS服务器地址]
- 说明:如果想使用自定义的DNS服务器进行查询,可在命令后添加DNS服务器地址,使用Google的公共DNS服务器8.8.8.8查询
google.com
,可输入nslookup google.com 8.8.8.8
。 - 查询MX记录:
nslookup query=MX [domainname]
- 说明:MX记录是邮件交换记录,决定了邮件服务器接收邮件时的优先顺序,通过该命令可获取指定域名的邮件交换记录相关信息,查询
google.com
的MX记录,可输入nslookup query=MX google.com
。 - 反向DNS查找:
nslookup [IP地址]
- 说明:通过已知的IP地址来获取对应的域名,查询IP地址
250.183.110
对应的域名,可输入nslookup 142.250.183.110
。
dig命令
- 基础用法:
dig [options] [domainname] [recordtype]
- 说明:功能更强大、使用更灵活,可提供更详细和全面的DNS查询信息,查询
google.com
的IP地址,可输入dig google.com
,在输出结果中找到“ANSWER SECTION”部分,就能看到类似这样的内容:;; ANSWER SECTION: google.com. 299 IN A 142.250.183.110
这里的
250.183.110
就是google.com
的IP地址(A记录)。 - 查询特定DNS服务器:
dig @[DNS服务器地址] [domainname]
- 说明:与nslookup类似,dig也可以指定特定的DNS服务器进行查询,通过DNS服务器8.8.8.8查询
google.com
的信息,可输入dig @8.8.8.8 google.com
。 - 查询MX记录:
dig [domainname] MX
- 说明:查询指定域名的MX记录,查询
google.com
的MX记录,可输入dig google.com MX
。 - 反向查询DNS:
dig x [IP地址]
- 说明:通过x参数实现从IP地址反向查询对应的域名信息,查询IP地址
250.183.110
对应的域名,可输入dig x 142.250.183.110
。 - 仅获取简短的答复:
dig +short [domainname]
- 说明:如果只想获取简洁的查询结果,不想看详细的内容,可使用+short参数,只获取
google.com
的IP地址,可输入dig +short google.com
。 - 查询所有DNS记录:
dig [domainname] ANY
- 说明:查询某个域名的所有DNS记录,查询
google.com
的各种类型的DNS记录,可输入dig google.com ANY
。
host命令
- 命令:
host [domainname]
- 说明:用于查找指定主机或域名的DNS记录,可直接显示指定主机的IP地址,查询
example.com
的DNS信息,可输入host example.com
,执行该命令后,可能会得到类似这样的输出:example.com has address 172.245.94.30
相关问题与解答
问题1:如何更改Linux系统的DNS配置?
- 解答:可以通过编辑
/etc/resolv.conf
文件来手动更改DNS服务器地址,添加或修改“nameserver”行后面的IP地址即可,但需要注意的是,如果系统使用NetworkManager管理网络,直接修改该文件可能在网络重启后失效,此时可通过nmcli
命令来修改DNS配置,使用以下命令将网络连接名为“eth0”的连接的DNS服务器设置为8.8.8.8和8.8.4.4:nmcli con mod eth0 ipv4.dns "8.8.8.8 8.8.4.4"
修改完成后,可使用
nmcli con show eth0 | grep dns
命令查看是否修改成功,在较新的Linux系统中,如果使用systemdresolve管理DNS解析,可通过修改/etc/systemd/resolved.conf
文件来配置DNS服务器,然后重新加载配置或重启systemdresolve服务使配置生效。
问题2:为什么有时候使用nslookup或dig命令查询域名时会出现“Nonauthoritative answer”提示?
- 解答:出现“Nonauthoritative answer”提示表示返回的查询结果不是来自权威的DNS服务器,这可能是因为在查询过程中,经过了中间的DNS服务器缓存或转发,返回的结果是从缓存中获取的,而不是直接从域名的权威DNS服务器获取的。