Linux Command dig 查询DNS

简介: Linux Command dig 查询DNS

Linux Command dig 查询DNS

文章目录

1. 简介

dig,和nslookup作用有些类似,都是DNS查询工具


什么是CNAME:一个域名可以有两种类型的指向,如果一个 域名指向 称为一个 记录 (Record)的话,那么就有两种 记录类型 (Record Type),分别是:


A记录 :指向一个IP地址

CNAME :指向一个其他的域名

2. 组成

输出结果大致分成4个部分,实际上可能还包括更多的内容,总共会有以下6个部分:


Header : 包括软件版本,全局变量以及除消息头以外的其他部分的信息,比如上例中,显示有1个QUERY,2个ANSWER

QUESTION SECTION : 请求参数信息,也就是你的输入

ANSWER SECTION : 从DNS查询到的信息,也就是输出,显示 i.zhouliang.pro 是CNAME,指向

mydomain.lofter.com ,而后者是一个A记录,指向一个IP地址

AUTHORITY SECTION : 包含DNS域名服务器的授权信息,上例中不包含这一部分,如果用这个命令就可以看到 dig

@ns1.redhat.com redhat.com ,这里的 @ 符号用于指定查询所使用的DNS服务器

ADDITIONAL SECTION : 包含AUTHORITY SECTION中的域名服务器的IP地址,同样,上例中也不包含这一部分

Stats section : 最下方的一部分,显示了查询时间等额外信息

如果你设置的dnsserver是一个域名,那么dig会首先通过默认的上连DNS服务器去查询对应的IP地址,然后再以设置的dnsserver为上连DNS服务器。

没有设置@dnsserver,那么dig就会依次使用**/etc/resolv.conf里的地址作为上连DNS服务器。

对querytype有所了解,你可以设置A/AAAA/PTR/MX/ANY**等值,默认是查询A记录。

+nocomments     – 不显示注释
+noauthority    – 不显示AUTHORITY SECTION
+noadditional   – 不显示ADDITIONAL SECTION
+nostats        – 不显示Stats section
+noanswer       – 不显示ANSWER SECTION
+noall          - 不显示所有的信息,一般会这样用 dig zhouliang.pro +noall +answer
和上面参数对应还有 +comments , +answer 等,后文有示例,此处不赘述。另外,还有如下两个参数需要了解:
+short    - 显示简短的信息
-t       指定查询的记录类型,可以是CNAME、A、MX、NS,分别表示CNAME、A记录、MX记录、DNS服务器,默认是A
-x       表示反向查找,也就是根据IP地址查找域名
-c       可以设置协议类型(class),包括IN(默认)、CH和HS
-f       dig支持从一个文件里读取内容进行批量查询
-4和-6   用于设置仅适用哪一种作为查询包传输协议,分别对应着IPv4和IPv6
-q       显式设置你要查询的域名

3. 实例

$ dig www.oolec.com

即查询域名的A记录,查询的dns服务器将采用系统配置的服务器,即/etc/resovle.conf 中的。

如果要查询其他类型的记录,比如MX,CNAME,NS,PTR等,只需将类型加在命令后面即可

$ dig www.oolec.com mx
$ dig www.oolec.com ns

此外,如果你是一个系统管理员,部署好了一台dns服务器之后想对它进行解析测试,就必须要显式指定待测试的dns服务器地址了,例如

dig @202.106.0.20 www.oolec.com a

默认情况下dig将采用udp协议进行查询,如果要采用tcp方式,可以加上 +tcp参数

dig www.oolec.com a +tcp

另外一个重要的功能是+trace参数,使用这个参数之后将显示从根域逐级查询的过程

dig www.oolec.com a +trace

google-DNS来查baidu.com的A记录

dig @8.8.8.8 www.baidu.com A     //命令格式为dig @dnsserver name querytype
$ cat querylist 
www.baidu.com
www.sohu.com
$ dig -f querylist -c IN -t A

.查看域名

$ dig i.zhouliang.pro +noall +anwser
; <<>> DiG 9.8.3-P1 <<>> i.zhouliang.pro +noall +answer
;; global options: +cmd
i.zhouliang.pro.            10034    IN    CNAME    mydomain.lofter.com.
mydomain.lofter.com.        9183     IN    A        54.248.125.234

第一行是CNAME,先将 i.zhouliang.pro 解析成 mydomain.lofter.com ,第二行是A记录,将 mydomain.lofter.com 解析成IP地址。这是一个完整的域名解析过程

2.查找域名的MX记录:

$ dig zhouliang.pro -t MX +short
10 mxdomain.qq.com.

从输出可以看出,我用了QQ提供的域名邮箱服务

3.查找域名对应的CNAME:

$ dig i.zhouliang.pro -t CNAME +short
mydomain.lofter.com.

4.根据IP地址反向查找域名

$ dig -x 8.8.8.8 +short
; <<>> DiG 9.8.3-P1 <<>> -x 8.8.8.8 +noall +answer
;; global options: +cmd
8.8.8.8.in-addr.arpa.    79605    IN    PTR    google-public-dns-a.google.com.

5.查询域名的解析DNS服务器地址

$ dig www. ns +short

参考:

相关文章
|
9月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
11月前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
533 11
|
11月前
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
373 6
|
缓存 并行计算 Linux
深入解析Linux操作系统的内核优化策略
本文旨在探讨Linux操作系统内核的优化策略,包括内核参数调整、内存管理、CPU调度以及文件系统性能提升等方面。通过对这些关键领域的分析,我们可以理解如何有效地提高Linux系统的性能和稳定性,从而为用户提供更加流畅和高效的计算体验。
535 24
|
监控 Linux 数据处理
Linux grep技巧 结合awk查询
结合 `grep` 和 `awk`,可以实现灵活、高效的文本处理和数据分析。`grep` 用于快速过滤符合条件的行,`awk` 用于进一步处理和提取数据。这种组合使用在日志分析、数据处理和系统监控等场景中尤为常见。掌握这两者的基本用法和组合技巧,可以大大提升在 Linux 环境下的工作效率。
362 7
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
256 4
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
Linux 虚拟化 C++
Linux基础知识查询总结(上)
Linux基础知识查询总结(上)
132 4
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
移动开发 Linux 开发工具
Linux基础知识查询总结(下)
Linux基础知识查询总结(下)
152 2