当前位置: 首页 > news >正文

为什么ping和dig(nslookup)返回地址不一样,两者的区别

背景

生产上遇到一个网络问题,调整了aa.com域名的解析之后,发现依然有问题。通过ping和dig命令返回不同的地址。dig的结果是对的,ping的结果是错的。

ping vs dig (nslookup)

ping是用来检测网络联通的,dig是用来查询dns解析的。只是ping第一步先查询了dns后才知道目标域名的真实ip地址。这里重点看的就是这一步两者的差异

参考一个博客
https://superuser.com/questions/663257/why-do-ping-and-dig-provide-different-ip-address-than-nslookup

dig

直接查询 DNS 服务器(如 8.8.8.8),返回域名在 DNS 系统中的原始记录(如 A 记录)。它绕过本地缓存和 hosts 文件,结果最权威。

执行dig  example.com
返回结果中SERVER:就是DNS服务器地址,在不同环境中可能是公网的DNS解析服务器,也可能是内部的DNS解析服务器。

如何查看自己的dns服务器呢,通常的做法

cat /etc/reslov.conf
结果返回的nameserver就是DNS的服务器列表

影响dig结果的是远程DNS服务器内部存在的缓存,通常10分钟或者几分钟会刷新一次,取决于DNS服务器的配置。

ping

ping 依赖操作系统的 DNS 解析器,解析顺序为:

  • 本地 hosts 文件(如 /etc/hosts 或 C:\Windows\System32\drivers\etc\hosts)
  • 本地 DNS 缓存(如 Windows 的 dnscache 或 Linux 的 systemd-resolved)

最后才查询 DNS 服务器,通dig一致。在此之前的两步,可能被本地配置修改。

解决

所以当出现ping和dig不一致的时候

  1. 查询/etc/hosts文件看是否拦截了域名的解析结果
  2. 清除本地的DNS缓存
# 清理系统 DNS 缓存(Linux 示例)
sudo systemd-resolve --flush-caches    # systemd-resolved
sudo resolvectl flush-caches           # 新版 systemd# Windows
ipconfig /flushdns
http://www.lryc.cn/news/609972.html

相关文章:

  • 基于C语言实现(控制台 )小区物业管理系统
  • Java常用数据结构入门
  • 推荐广告搜索三种业务的区别
  • 车载通信架构 ---车内通信的汽车网络安全
  • 人工智能之数学基础:条件概率及其应用
  • 跟着顶刊学写论文-摘要1
  • 深入浅出 RabbitMQ:工作队列实战(轮训策略VS公平策略)
  • SpringCloud之Nacos基础认识-服务注册中心
  • 13.Home-面板组件封装
  • Mac桌面仿制项目--让ai一句话生成的
  • mac 技巧
  • 【AI 加持下的 Python 编程实战 2_13】第九章:繁琐任务的自动化(中)——自动批量合并 PDF 文档
  • 大模型×垂直领域:预算、时间、空间三重夹击下的生存法则
  • 2.2 vue2子组件注册使用
  • 西门子PLC S7-1200单轴步进控制电动机
  • Axure设计Web端新增表单页面模板案例
  • 【LeetCode 热题 100】215. 数组中的第K个最大元素——(解法一)快速选择
  • 安卓逆向(基础①-Google Pixel-Root)
  • Visual Studio 2022安装与快捷键全攻略
  • 模型蒸馏(Distillation):原理、算法、应用
  • 【达梦MPP(带主备)集群搭建】
  • Selenium教程(Python 网页自动化测试脚本)
  • 华为2288H V5服务器闪红灯 无法开机案例
  • C++八股文——设计模式
  • JSON Schema
  • mybatis-plus报错Caused by: java.sql.SQLException: 无效的列类型: 1111
  • 使用 Aspose.OCR 将图像文本转换为可编辑文本
  • 微软WSUS替代方案
  • Druid手写核心实现案例 实现一个简单Select 解析,包含Lexer、Parser、AstNode
  • AJAX表单验证项目实战:实时用户名检查