Linux系统中,可使用
dig
、nslookup
、host
命令或查看/etc/resolv.conf
文件来测试DNS。在Linux系统中测试DNS
查看DNS配置信息
查看/etc/resolv.conf
文件
- 命令:
cat /etc/resolv.conf
- 说明:该文件包含了系统默认的DNS服务器地址,通常情况下,文件中会有类似
nameserver 8.8.8.8
和nameserver 8.8.4.4
的行,表示使用的是谷歌的公共DNS服务器。 - 示例输出:
# Generated by NetworkManager nameserver 8.8.8.8 nameserver 8.8.4.4
使用nmcli
命令(适用于NetworkManager管理的网络)
- 命令:
nmcli device show | grep DNS
- 说明:此命令用于显示当前网络设备的DNS配置信息,如果系统中有多个网络设备,可以指定设备名称进行查询,例如
nmcli connection show eth0 | grep DNS
。 - 示例输出:
DNS4: 8.8.8.8 DNS4: 8.8.4.4
使用systemdresolve
命令(适用于systemdresolver管理的系统)
- 命令:
systemdresolve status
- 说明:该命令显示当前系统的DNS解析配置,包括DNS服务器地址和搜索域等信息。
- 示例输出:
Global DNS Servers: 8.8.8.8 DNS Servers: 8.8.4.4 ...
常用DNS测试命令
dig
命令
- 安装:
- Debian/Ubuntu:
sudo aptget install dnsutils
- CentOS/RHEL:
sudo yum install bindutils
- Debian/Ubuntu:
- 基本用法:
- 查询A记录:
dig example.com
- 查询MX记录:
dig example.com MX
- 查询NS记录:
dig example.com NS
- 查询TXT记录:
dig example.com TXT
- 查询SOA记录:
dig example.com SOA
- 查询A记录:
- 高级选项:
- 使用特定DNS服务器查询:
dig example.com @8.8.8.8
- 仅显示简洁结果:
dig +short example.com
- 跟踪解析过程:
dig +trace example.com
- 使用特定DNS服务器查询:
- 示例输出(查询A记录):
; <<>> DiG 9.16.1Ubuntu <<>> example.com ;; global options: +cmd ;; Got answer: ;; >>HEADER<<opcode: QUERY, status: NOERROR, id: 50404 ;; 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. 300 IN A 93.184.216.34
;; Query time: 57 msec ;; SERVER: 8.8.8.8#53(8.8.8.8) ;; WHEN: Fri Apr 12 10:00:00 UTC 2025 ;; MSG SIZE rcvd: 60
### 2. `nslookup`命令
**安装**:与`dig`相同,通过`dnsutils`或`bindutils`包安装。
**基本用法**:
查询A记录:`nslookup example.com`
查询MX记录:`nslookup type=MX example.com`
查询NS记录:`nslookup type=NS example.com`
反向查询:`nslookup 93.184.216.34`
**高级选项**:
指定DNS服务器:`nslookup example.com 8.8.8.8`
设置超时时间:`nslookup timeout=5 example.com`
**示例输出**(查询A记录):
```plaintext
Server: 8.8.8.8
Address: 8.8.8.8#53
Nonauthoritative answer:
Name: example.com
Address: 93.184.216.34
host
命令
- 基本用法:
host example.com
- 说明:该命令直接返回域名的IP地址,适合快速查询。
- 示例输出:
example.com has address 93.184.216.34
ping
命令
- 基本用法:
ping example.com
- 说明:虽然主要用于测试网络连通性,但也会显示域名解析后的IP地址。
- 示例输出:
PING example.com (93.184.216.34) 56(84) bytes of data. 64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=10.5 ms
常见问题与解答
如何指定特定的DNS服务器进行查询?
- 解答:在使用
dig
或nslookup
命令时,可以通过符号指定DNS服务器。dig example.com @8.8.8.8
nslookup example.com 8.8.8.8
如何查看系统默认的DNS配置?
- 解答:可以通过以下命令查看:
- 查看
/etc/resolv.conf
文件:cat /etc/resolv.conf
- 使用
nmcli
命令(适用于NetworkManager管理的网络):nmcli device show | grep DNS
- 使用
systemdresolve
命令(适用于systemdresolver管理的系统):`systemdresolve
- 查看