nmcli dev show | grep DNS
或 cat /etc/resolv.conf
命令实现。查看Linux系统的DNS地址是网络管理和故障排查中的一项重要任务,以下是几种常用的方法来查看Linux系统的DNS地址,包含小标题和单元表格,以及相关问题与解答栏目。
一、查看DNS配置文件
在Linux系统中,DNS配置通常存储在/etc/resolv.conf
文件中,可以使用以下命令查看该文件的内容:
cat /etc/resolv.conf
输出示例:
nameserver 8.8.8.8 nameserver 8.8.4.4
命令 | 作用 |
cat /etc/resolv.conf | 查看当前系统的DNS配置文件,显示配置的DNS服务器地址 |
二、使用nmcli命令
如果系统安装了NetworkManager,可以使用nmcli
命令来查看DNS信息,以下命令将显示当前网络接口的DNS配置:
nmcli dev show | grep DNS
输出示例:
DNS10_eth0: 8.8.8.8 DNS10_eth0: 8.8.4.4
命令 | 作用 |
nmcli dev show | 显示当前网络接口的配置信息 |
grep DNS | 过滤出与DNS相关的行 |
三、使用nslookup命令
nslookup
是一个用于查询DNS记录的工具,它可以显示域名解析所使用的DNS服务器地址,以下命令将进入nslookup
的交互模式:
nslookup
在交互模式下,可以查询特定域名的DNS服务器地址,查询example.com
的DNS服务器地址:
> server example.com 53为默认DNS端口号,可省略 > example.com
输出示例:
Server: 8.8.8.8 Address: 8.8.8.8#53 Name: example.com Address: 93.184.216.34
命令 | 作用 |
nslookup | 进入交互模式,查询DNS记录 |
server [domain] | 设置查询的DNS服务器或域名 |
[domain] | 查询指定域名的DNS记录 |
四、使用dig命令
dig
(Domain Information Groper)是另一个强大的DNS查询工具,它提供了比nslookup
更详细的DNS查询信息,以下命令将查询example.com
的DNS记录:
dig example.com
输出示例:
; <<>> DiG 9.11.31ubuntu1.17Ubuntu <<>> example.com ;; global options: +cmd ;; Got answer: ;; >>HEADER<<opcode: QUERY, status: NOERROR, id: 58789 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 86400 IN A 93.184.216.34 ;; Query time: 57 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Fri Apr 26 10:15:32 UTC 2025 ;; MSG SIZE rcvd: 56
命令 | 作用 |
dig [domain] | 查询指定域名的DNS记录,返回详细信息 |
五、使用systemdresolve命令
对于使用systemdresolved的系统,可以使用systemdresolve
命令来查看DNS配置信息,以下命令将显示当前系统的DNS配置状态:
systemdresolve status
输出示例:
Global LLMNR setting: yes MulticastDNS setting: no DNSSEC setting: no DNSSEC supported: no DNS Over TLS: no DNS Over HTTPS: no Resolver configuration # 127.0.0.53 (unbound) # 8.8.8.8 (googlepublicdnsa) # 8.8.4.4 (googlepublicdnsb) Server: 8.8.8.8, 8.8.4.4, 127.0.0.53 Domain: ~. Search Domains: mylan Naming Configuration LLMNR: yes Multicast: no DNSSEC: no DNS Over TLS: no DNS Over HTTPS: no DNSSTUB listeners: /run/systemd/resolve/stublistener.socket[1] Cache configuration Positive cache size: 1000 Negative cache size: 0 Dedicate a worker to refresh misses: no Expiration settings Minimum TTL for RRsets or RRs without TTL: 1s Maximum negative TTL: 30s Negative UDP response caching: enabled Forwarding listener on 127.0.0.53 IP protocol support: IPv4 and IPv6 Routing rules: only ULLAs allowed
命令 | 作用 |
systemdresolve status | 显示当前系统的DNS配置状态,包括使用的DNS服务器、缓存设置等 |
六、使用ip route命令
虽然ip route
命令主要用于查看路由表,但有时也可以从中找到DNS服务器的IP地址,以下命令将显示当前的路由表:
ip route show
输出示例:
default via 192.168.1.1 dev eth0 proto dhcp metric 600 expire 3600000 192、168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 600
命令 | 作用 |
ip route show | 显示当前的路由表,可能包含DNS服务器的IP地址 |
方法 | 优点 | 缺点 |
cat /etc/resolv.conf |
简单直接,快速查看DNS配置 | 仅显示配置文件中的DNS服务器,不反映实际查询的DNS服务器 |
nmcli dev show |
显示网络接口的详细配置,包括DNS | 需要安装NetworkManager,且命令相对复杂 |
nslookup |
交互式查询,灵活方便 | 输出信息相对较少,不如dig 详细 |
dig |
提供详细的DNS查询信息 | 输出信息较多,对于初学者可能不太友好 |
systemdresolve status |
显示全面的DNS配置和状态信息 | 仅适用于使用systemdresolved的系统 |
ip route show |
查看路由表,可能间接找到DNS服务器 | 主要用于查看路由,不是专门的DNS查看工具 |
相关问题与解答
问题1:如何更改Linux系统的DNS服务器地址?
解答:可以通过编辑/etc/resolv.conf
文件来更改DNS服务器地址,使用文本编辑器(如vi
或nano
)打开该文件,并添加或修改nameserver
行,指定新的DNS服务器地址,保存文件后,新的DNS配置将立即生效,如果是通过NetworkManager管理的网络连接,也可以使用nmcli
命令来设置DNS服务器地址,要为名为eth0
的网络接口设置DNS服务器地址为8.8.8.8
和8.8.4.4
,可以使用以下命令:
nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8 8.8.4.4"
重新连接网络或重启网络服务以使更改生效。
问题2:为什么nslookup
和dig
命令查询的结果不一致?
解答:nslookup
和dig
命令虽然都是用于查询DNS记录的工具,但它们在查询方式、默认配置和输出格式上可能存在差异。nslookup
默认使用的是系统的DNS配置(即/etc/resolv.conf
中指定的DNS服务器),而dig
则可以直接指定DNS服务器进行查询。nslookup
和dig
在处理查询结果时也有所不同,例如dig
会提供更多的详细信息和选项,网络环境和DNS服务器的配置也可能影响查询结果,在使用这两个命令时,需要注意它们的使用方法和输出结果的解释,如果需要更准确的查询结果,建议结合使用这两个命令,并根据具体情况进行分析。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/193923.html