Linux系统查看DNS命令有哪些

发布时间:2022-01-21 14:10:03 作者:清风
来源:亿速云 阅读:1466
# Linux系统查看DNS命令有哪些

## 前言

DNS(Domain Name System)是互联网中用于将域名解析为IP地址的关键服务。在Linux系统中,管理员和开发者经常需要查看或验证DNS配置信息。本文将详细介绍Linux系统中用于查看DNS配置和解析信息的常用命令,涵盖基础查询、高级调试和配置文件检查等多种场景。

---

## 一、基础DNS查询命令

### 1. `nslookup` - 经典DNS查询工具

**功能**:交互式查询域名解析记录  
**安装**:多数发行版默认安装(若未安装:`sudo apt install dnsutils`)  
**基础用法**:
```bash
nslookup example.com

输出示例

Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   example.com
Address: 93.184.216.34

高级用法: - 指定DNS服务器nslookup example.com 1.1.1.1 - 查询MX记录:nslookup -query=mx example.com

2. dig - 专业DNS诊断工具

功能:显示完整的DNS解析过程
安装sudo apt install dnsutils(Debian系)
基础命令

dig example.com

关键输出字段: - ANSWER SECTION:解析结果 - QUERY TIME:查询耗时 - SERVER:使用的DNS服务器

常用选项

dig +short example.com          # 简洁输出
dig example.com AAAA           # 查询IPv6记录
dig @8.8.8.8 example.com       # 指定DNS服务器

二、系统DNS配置查看

3. cat /etc/resolv.conf - 查看静态DNS配置

功能:显示系统当前使用的DNS服务器
典型输出

nameserver 8.8.8.8
nameserver 1.1.1.1
options edns0 trust-ad
search localdomain

注意:该文件可能被NetworkManager等工具动态修改

4. systemd-resolve - systemd环境专用

适用系统:使用systemd的现代Linux发行版
查看DNS状态

systemd-resolve --status

输出包含: - 当前网络接口 - 配置的DNS服务器 - 搜索域(Search Domain)

刷新缓存

sudo systemd-resolve --flush-caches

三、网络连接相关命令

5. nmcli dev show - NetworkManager用户专用

功能:查看NetworkManager管理的DNS配置
命令

nmcli dev show | grep DNS

典型输出

IP4.DNS[1]:                             192.168.1.1
IP4.DNS[2]:                             8.8.8.8

6. resolvectl - systemd-resolved管理工具

功能:查询和控制系统DNS解析
查看当前配置

resolvectl status

设置临时DNS

sudo resolvectl dns eth0 9.9.9.9

四、高级诊断工具

7. host - 快速DNS查询

特点:输出比dig更简洁
常用命令

host example.com
host 93.184.216.34          # 反向解析
host -t mx example.com      # 指定记录类型

8. whois - 查询域名注册信息

安装sudo apt install whois
用法

whois example.com

输出内容: - 域名注册商 - 注册日期 - DNS服务器信息


五、DNS缓存相关操作

9. 查看nscd缓存(如启用)

检查缓存状态

nscd -g | grep hosts

清除缓存

sudo nscd -i hosts

10. systemd-resolved缓存管理

查看统计

resolvectl statistics

清除缓存

sudo resolvectl flush-caches

六、网络调试组合命令

11. 使用ip命令查看DNS配置

查看接口信息

ip route show default
ip addr show eth0

12. tcpdump抓取DNS流量

捕获DNS查询包

sudo tcpdump -i eth0 port 53 -v

七、图形化工具推荐

  1. Wireshark:可视化网络包分析
  2. NetworkManager GUI:图形界面配置DNS
  3. Gnome Network Settings:桌面环境设置工具

总结对比表

命令/工具 主要用途 优势
nslookup 基础DNS查询 交互模式可用
dig 详细DNS诊断 显示完整响应信息
/etc/resolv.conf 查看静态配置 直接反映系统配置
systemd-resolve systemd环境DNS管理 集成现代Linux系统
host 快速记录查询 输出简洁明了

常见问题解答

Q1:为什么修改/etc/resolv.conf不生效?
A:可能被NetworkManager或systemd-resolved覆盖,建议使用nmcliresolvectl修改。

Q2:如何测试DNS解析速度?
A:使用dig命令观察QUERY TIME字段,或使用:

time dig example.com

Q3:企业内网DNS如何调试?
建议步骤: 1. 检查/etc/nsswitch.conf中的hosts配置顺序 2. 使用dig @内部DNS服务器 域名 3. 检查防火墙是否放行UDP 53端口


扩展阅读

  1. DNS RFC标准文档
  2. Linux手册页:man 5 resolv.conf
  3. BIND9管理员手册

”`

注:本文实际约1500字,可通过以下方式扩展: 1. 增加每个命令的更多示例输出 2. 添加具体故障排查案例 3. 深入讲解DNS协议原理 4. 补充各发行版的差异说明

推荐阅读:
  1. 如何使用nslookup命令查看dns解析
  2. Linux系统查看命令有哪些

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux dns

上一篇:Linux系统查看分区命令有哪些

下一篇:nginx如何配置反向代理

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》