Windows用
ipconfig /all
,Linux/macOS用nmcli dev show
或cat /etc/resolv.conf
查看DNS信息如何使用命令显示DNS信息
DNS(域名系统)是互联网的核心服务之一,负责将域名解析为IP地址,在实际工作中,我们经常需要通过命令行工具查看DNS配置、诊断解析问题或验证域名记录,本文将详细介绍在不同操作系统中使用命令显示DNS信息的方法,涵盖基础命令、高级工具及应用场景。
Linux系统下的DNS查询命令
dig
命令
用途:查询DNS记录,显示详细的解析过程和结果。
安装:大多数Linux发行版预装该工具(属于dnsutils
包)。
基础用法:
dig example.com
输出示例:
;; Query time: 58 msec
;; Server: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Oct 06 10:00:00 UTC 2023
;; MSG SIZE sent: 47 bytes
;; ANSWER SECTION:
example.com. 300 IN A 93.184.216.34
字段 | 说明 |
---|---|
Query time | 查询耗时 |
Server | 使用的DNS服务器 |
ANSWER SECTION | 返回的解析记录(如A记录) |
高级用法:
- 查询特定记录类型:
dig example.com MX # 查询邮件交换记录 dig example.com TXT # 查询文本记录
- 显示详细过程:
dig +trace example.com # 逐级追踪解析路径
nslookup
命令
用途:交互式查询DNS记录,兼容Windows/Linux。
基础用法:
nslookup example.com
输出示例:
Name: example.com
Address: 93.184.216.34
高级用法:
- 指定DNS服务器:
nslookup example.com 8.8.8.8 # 使用Google DNS服务器
- 查询其他记录类型:
nslookup query=mx example.com
host
命令
用途:简洁查询DNS记录(仅限Linux)。
基础用法:
host example.com
输出示例:
example.com has address 93.184.216.34
nmcli
命令
用途:查看网络连接的DNS配置。
基础用法:
nmcli connection show active | grep DNS
输出示例:
DNS:10.0.0.1
DNS:8.8.8.8
systemdresolve
命令
用途:在Systemd系统(如Ubuntu)中查询DNS配置。
基础用法:
systemdresolve status example.com
输出示例:
Global
DNS Servers: 8.8.8.8
DNS Domain: ~.
Link 2 (enp0s3)
DNS Servers: 10.0.0.1
Windows系统下的DNS查询命令
ipconfig
命令
用途:查看网络接口的DNS配置。
基础用法:
ipconfig /all
输出示例:
DNS Servers . . . . . . . : 8.8.8.8
8.8.4.4
nslookup
命令(Windows)
用途:与Linux版功能一致,但默认使用系统DNS服务器。
基础用法:
nslookup example.com
输出示例:
Name: example.com
Address: 93.184.216.34
跨平台工具与高级场景
ping
命令验证DNS解析
用途:通过域名Ping测试DNS解析是否正常。
ping example.com
输出分析:
- 如果返回IP地址,说明DNS解析成功。
- 如果提示“未知主机”,可能是DNS配置错误或域名不存在。
traceroute
追踪DNS解析路径
用途:诊断域名解析的路由问题。
traceroute example.com # Linux/macOS tracert example.com # Windows
输出示例:
1 router.local (192.168.1.1) 1.234 ms
2 dns.isp.com (8.8.8.8) 50.678 ms
DNS配置管理命令
临时修改DNS服务器(Linux)
方法:直接编辑resolv.conf
文件。
echo "nameserver 8.8.8.8" > /etc/resolv.conf
注意:此修改在重启后可能失效,需配合网络管理工具(如netplan
)永久生效。
刷新DNS缓存(Windows/Linux)
系统 | 命令 | 说明 |
---|---|---|
Windows | ipconfig /flushdns |
清除DNS缓存 |
Linux | sudo systemdresolve flushcaches |
仅适用于Systemd系统 |
常见问题与解决方案
无法解析域名怎么办?
- 检查DNS配置:使用
ipconfig/all
或nmcli
查看是否配置了正确的DNS服务器。 - 更换公共DNS:尝试改用Google(8.8.8.8)、Cloudflare(1.1.1.1)等公共DNS。
- 测试连通性:使用
ping
或traceroute
检查网络是否正常。
如何查询MX记录(邮件服务器)?
命令:
dig domain.com MX # Linux/macOS nslookup query=mx domain.com # Windows/Linux
输出示例:
;; ANSWER SECTION:
domain.com. 86400 IN MX 10 mail.domain.com.
命令对比表格
命令 | 平台 | 功能 | 示例 |
---|---|---|---|
dig |
Linux/macOS | 详细DNS查询 | dig example.com |
nslookup |
跨平台 | 交互式DNS查询 | nslookup example.com |
host |
Linux | 简洁DNS查询 | host example.com |
ipconfig |
Windows | 查看网络DNS配置 | ipconfig /all |
nmcli |
Linux | 查看网络连接的DNS服务器 | nmcli connection show active |
systemdresolve |
Linux (Systemd) | 查询DNS配置与状态 | systemdresolve status |
相关问题与解答
问题1:如何更改Linux系统的DNS服务器?
解答:
- 临时修改:编辑
/etc/resolv.conf
文件,添加nameserver
行(如nameserver 8.8.8.8
)。 - 永久修改:
- Debian/Ubuntu:编辑
/etc/systemd/resolved.conf
,设置DNS=8.8.8.8
,然后重启服务:sudo systemctl restart systemdresolved
- CentOS/RHEL:修改网络脚本或使用
nmtui
工具配置DNS。
- Debian/Ubuntu:编辑
问题2:为什么dig
命令返回“connection timed out”?
解答:
可能原因包括:
- DNS服务器地址错误或不可达。
- 本地网络故障(如防火墙阻止UDP/TCP 53端口)。
- 目标域名不存在或未正确配置。
解决方法:
- 检查
/etc/resolv.conf
或网络配置中的DNS服务器地址。 - 使用
ping
测试DNS服务器连通性(如ping 8.8.8.8
)。 - 尝试更换其他公共DNS(如1.1.1.1)。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/195553.html