dig 简明教程

news2025/1/18 10:45:46

哈喽大家好,我是咸鱼

不知道大家在日常学习或者工作当中用 dig 命令多不多

dig 是 Domain Information Groper 的缩写,对于网络管理员和在域名系统(DNS)领域工作的小伙伴来说,它是一个非常常见且有用的工具。

无论是简单的 DNS 解析查找还是更高级的故障排除和分析,dig 都能够胜任

那么今天咸鱼将和大家一起了解一下 dig 命令的一些常见用法以及示例

除了 dig 命令,还有一种跟 dig 功能是差不多的 命令 nslookup

安装

如果 Linux 发行版没有安装 dig 命令,则可以通过下面的命令来安装

  • Debian 和 基于 Debian 的发行版
apt install dnsutils
  • Red Hat 和基于 RHEL 的发行版
dnf install bind-utils
# 或
yum install bind-utils
  • Arch Linux 和基于 Arch 的发行版
pacman -S dnsutils

以我的测试环境为例(CentOS 7.9)
在这里插入图片描述

常见用法

# 基本语法
dig [@server] [name] [type]
  • @server:请求所指向的 DNS 服务器的主机名或IP地址。如果没有指定 DNS 服务器,则使用系统当前配置的 DNS 服务器
  • name :要查找的域名
  • type :要检索的 DNS 记录的类型,默认为 A 记录类型

比如说我想解析 www.baidu.com 这个域名,指定使用 Google 的 dns 服务器(8.8.8.8)
在这里插入图片描述

# A 记录
dig @8.8.8.8 www.baidu.com

如果要查找 MX 记录

dig @8.8.8.8 www.baidu.com MX

前面我们讲到,dig 命令会在 ANSWER 部分中默认显示 A 记录,下面我们来看下命令输出的信息
在这里插入图片描述
可以看到一共有五列,我们以最后一行行为例:

  • 第一列 www.wshifen.com:要查找的域名
  • 第二列 192 :生存周期,告诉 DNS 解析器在请求一个新查询之前缓存查询多长时间
  • 第三列 IN:查询的类,IN 指互联网
  • 第四列 A:DNS 查询类型( A, AAAA, CNAME, MX, NS, PTR, CERT, SRV, TXT, SOA 等)
  • 第五列 104.193.88.77:域名关联的 IP 地址

由前面的输出信息我们可以看到,内容还是挺多的,这时候有小伙伴会想:**如何减少 dig 命令输出的内容呢?**我只想要最有用的,其他的我看得头昏眼花

可以加上 +nocomments 选项

dig @8.8.8.8 www.baidu.com +nocomments

在这里插入图片描述
可以看到,加上 +nocomments 选项后返回的内容有一部分注释是被去掉了的

这时候有的小伙伴还会说:不行不行,信息还是太多了,我只要 ANSWER 部分。该如何让命令只输出 ANSWER 部分呢?

dig www.baidu.com +noall +answer

在这里插入图片描述
可以看到,加了 +noall +answer 选项之后,会显示出干净且易于阅读的内容

那**如果我只想要返回解析出来的结果呢?**可以使用 +short 选项

dig www.baidu.com +short

在这里插入图片描述

进阶用法

  • 指定返回类型信息

前面我们提到过,DNS 记录的类型(type)有很多种,例如 A, AAAA, CNAME, MX, NS, PTR, CERT, SRV, TXT, SOA 等

我们可以在命令的末尾加上对应的类型名以此来返回解析后特定类型信息

# 返回 MX 类型
dig www.baidu.com MX

# 返回 CNAME 类型
dig www.baidu.com CNAME

或者使用特殊关键字 ALL 将所有类型记录放在一起

# 将会返回所有类型信息
dig www.baidu.com ALL
  • 查看 DNS 解析过程

如果我们不确定 DNS 配置在哪里有问题,我们可以使用 dig 命令来查看 DNS 解析的每一过程,只需要加上 +trace 选项即可

dig www.baidu.com +trace

在这里插入图片描述

  • DNS 反向查找

DNS 正向查找就是通过域名找解析 IP;反向查找就是通过 IP 地址找域名

# 查找 ip 95.217.163.246 对应的域名
dig -x 95.217.163.246

在这里插入图片描述

  • 批量查询

有小伙伴会想:我每次查询一个域名效率太慢了,我能不能一次查询多个域名呢?

是可以的,dig 是支持批量查询的

首先我们把要查询的域名放在一个文件里面,每行一个

[root@localhost ~]# cat domains.txt 
www.baidu.com
archlinux.org

然后执行 dig 命令的时候加上 -f 选项

# 加上 +short 简化输出内容
dig -f domains.txt +short

在这里插入图片描述

修改 dig 默认选项

前面我们在使用 dig 命令的时候,为了简化输出信息每次敲命令都得带上+nocomments 选项

那我们能不能把这个选项设置成默认值,这样在敲命令的时候就不需要额外加上这个选项了

答案是可以的,我们需要在家目录下创建一个 ~/.digrc 文件,然后添加选项

[root@localhost ~]# cat ~/.digrc 
+nocomments
+short

这样我们执行 dig 命令的时候就算没加上去,也会默认使用这两个选项

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1107505.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第三章 数据结构与算法——栈和

栈和队列被称为插入和删除受限制的线性表。 🍁一、栈的基本概念 🌕(一)栈的概念: ①:栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端 称为栈…

四川竹哲电子商务有限公司让抖音带货更轻松

随着电子商务的飞速发展,带货直播成为了新的行业热点。四川竹哲电子商务有限公司,一家在电子商务领域有着深厚实力和丰富经验的企业,正以其独特的视角和策略,引领着抖音带货的发展趋势,让这个新型商业模式更加轻松、高…

C++初阶(三)

文章目录 一、auto关键字(C11)1、auto简介2、auto使用规则1、 auto与指针和引用结合起来使用2、 在同一行定义多个变量 3、auto不能推导的场景1、 auto不能作为函数的参数2、 auto不能直接用来声明数组3、特性总结 二、基于范围的for循环(C11)1、范围for的语法2、 范围for的使用…

基于springboot校园二手书交易管理系统

功能如下图所示 摘要 校园二手书交易管理系统是一款基于Spring Boot框架的应用程序,旨在便捷管理大学校园内的二手书籍交易。该系统致力于为学生和教职工提供一个高效、便捷的平台,以便买卖二手书籍,从而减轻经济压力,减少资源浪费…

Linux高性能服务器编程 学习笔记 第十七章 系统监测工具

tcpdump是一款经典的抓包工具,即使今天我们已经有了像Wireshark这样更易于使用和掌握的抓包工具,tcpdump仍是网络程序员的必备利器。 tcpdump提供了一些选项用以过滤数据包或定制输出格式,常见的选项如下: 1.-n:使用I…

ROS 示例

参考链接1 话题中的Publisher与Subscriber 例1: 发送和接收 hello, world 1、创建工作空间 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace创建完成后,可以在工作空间的根目录下使用catkin_make命令编译整个工作空间&#xff1…

nfs+rpcbind实现服务器之间的文件共享

NFS简介 NFS服务及Network File System,用于在网络上共享存储,分为2,3,4三个版本,最新为4.1版本。NFS基于RPC协议,RPC为Remote Procedure Call的简写。 应用场景:用于A,B,C三台机器上需要保证被访问到的文件是一样…

用Bing绘制「V我50」漫画;GPT-5业内交流笔记;LLM大佬的跳槽建议;Stable Diffusion生态全盘点第一课 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🔥 美国升级AI芯片出口禁令,13家中国GPU企业被列入实体清单 nytimes.com/2023/10/05/technology/chip-makers-china-lobbying…

QT自定义空间之软键盘

QT自定义空间之软键盘 1.功能列表2.效果2.1 中文键盘&汉字输入2.2 英文输入法2.3 数字键盘2.4 数据键盘效果 3.部分代码3.1 汉字输入3.2 切换数字键盘3.3 键盘显示&隐藏3.4 控件提升3.5样式设置3.6 使用QLineEditAllKeyBoard 控件 1.功能列表 支持中文输入法支持引文输…

jdk7新增时间类Date,SimpleDateFormat,Calendar

Date //需求1 打印时间远点开始一年后的时间extracted();//需求2 定义任意两个date对象 比较那个时间在前 哪个在后Random rnew Random();Date date1new Date(Math.abs(r.nextInt()));Date date2new Date(Math.abs(r.nextInt()));System.out.println(date1);System.out.printl…

在迪拜举行的 GITEX GLOBAL 2023 IT 展览会上,Positive Technologies 荣获两项大奖!

🏆 在迪拜举行的 GITEX GLOBAL 2023 IT 展览会上,Positive Technologies 荣获两项大奖。这两个奖项都是影响力网络安全领域的最佳供应商。 🏵 Future Enterprise Awards 2023 是该地区 IT 行业最重要的奖项之一。该奖项每年颁发给对信息技术…

python---三目运算符

在Python中三目运算符也叫三元运算符,其主要作用:就是用于 简化if...else...语句。 基本语法: 原 if 条件判断: # 语句段1 else: # 语句段2 新-----三目运算符/三元运算符 语句段1 if 条件判断 else 语句段2 案例 输入两个数…

网站如何优化加速,让网站降低延迟

优化网站架构 精简页面加载过程:通过消除冗余代码和不必要的图像,并采用CDN资源分发,以减少加载时间。 精心规划内容架构:通过使用恰当的标题和描述,使搜索引擎能够快速理解页面的内涵。 选择性能出众的前端框架&…

【QT】常用控件——按钮组

继承Widget PushButton 设置图片,先导入图片资源,见:【QT】资源文件导入_复制其他项目中的文件到qt项目中_StudyWinter的博客-CSDN博客 在布局中添加图片 调整尺寸 toolButton 显示图片、文本 显示图片(图片和文字都有时&#…

git学习——第5节 远程仓库

自行设置:远程仓库 - 廖雪峰的官方网站 (liaoxuefeng.com) 添加远程库 现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既…

排查手机应用app微信登录问题不跳转失败原因汇总及其解决方案

经过最近我发的文章,我个人觉得解决了不少小问题,因为最近很小白的问题已经没有人私聊问我了,我总结了一下排查手机应用app微信登录问题不跳转失败的原因汇总及其解决方案在这篇文章中,分析微信登录不跳转的原因,并提供解决方案。希望通过这篇文章,能够帮助大家顺利解决这…

Python Connect SQLServer 2008

Macos(经过了两天,无数次的方法验证,寻找各种资料,总结如下) brew install freetds0.91 如果出现错误就进行手工安装 brew install freedts0.91 出错。 linqllinqldeMBP-2 / % brew install freetds0.91 Warning: No …

css-水滴登录页

效果图&#xff1a; html <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><link type"text/css" rel"stylesheet" href"login.css" /></head><body><…

从零开始的C语言学习第十九课:C语言内存函数

目录 1. memcpy使用和模拟实现 2. memmove使用和模拟实现 3. memset函数的使用 4. memcmp函数的使用 1. memcpy使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); 函数memcpy从source的位置开始向后复制num个字节的数据到destinati…

sylar高性能服务器-配置(P9)代码解析+调试分析

文章目录 一、代码解析1.1配置基类(ConfigVarBase)1.2配置参数类(ConfigVar)1.3配置管理类(Config) 二、代码调试2.1SYLAR_LOG_INFO(SYLAR_LOG_ROOT())2.2ConfigVart调试 本节内容主要讲诉了sylar高性能服务器视频P9的内容&#xff0c;并给出了代码逐步调试的步骤和结果。本节内…