当前位置:首页技术教程Linux教程Linux下使用tcpdump监听DNS查询
Linux下使用tcpdump监听DNS查询
°
  • 素材类型: 资源-素材
  • 上传时间:

问题来源

近来,准备在新服务器上部署一些镜像,便于提供workspace。这就难免要使用到docker pull来拉取镜像。
结果问题来了,需要用到的这个镜像不知道什么原因,各大镜像站中均无数据

起初不断配置registry mirrors来加速,但是始终没有效果

总是出现如下故障

read tcp 172.16.11.202:42874->104.18.125.25:443: read: connection reset by peer

解决过程

简单查询,发现104.18.125.25是Cloudflare的节点ip,于是想到能否查询一下docker的子域名,看看有没有指向cf的,如果有,直接hosts替换一下说不定就好了
结果通过itdog查询,发现docker.io所有子域名都没有指向Cloudflare服务的

这就奇了怪了

尝试先拉取一个镜像,另外一个shellsession使用ss查询一下连接是否来自dockerd进程

ss -tnp state connected | grep docker

Linux下使用tcpdump监听DNS查询

看起来是的没错了,那我要怎么寻找这个被解析的未知域名呢

用tcpdump监听

 tcpdump -i ens17 -nt -s 500 port domain

ens17是网卡接口名称

port domain用来过滤数据包,表示只抓取使用domain(域名)服务的数据包,即DNS查询和应答报文。

那么,新开一个终端,尝试请求,并且开始监听
Linux下使用tcpdump监听DNS查询

抓取到了
Linux下使用tcpdump监听DNS查询

可以看到,docker在尝试请求mirrors gs9tpsud.mirror.aliyuncs.com,拉取失败了,然后开始进行auth请求,向官方库production.cloudflare.docker.com获取数据

Linux下使用tcpdump监听DNS查询

两个数据包都是IP数据报,第一个数据报表示10.0.17.2(本地)向223.5.5.5(DNS服务器)查询production.cloudflare.docker.com的IP地址,53是DNS服务的端口号,“+”表示启用递归查询标志,“A?”表示使用A类型的查询方式,61是该报文的长度(字节)。

第二个数据报表示223.5.5.5向10.0.17.2发送DNS应答报文,2/0/0表示该报文中包含2个应答资源记录,0个授权资源记录和0个额外信息记录,A表示紧随其后的记录是IP地址。

同理,后面还有AAAA请求数据报

到此,查询到了未知的域名,进行hosts临时转发后,成功拉取镜像

温馨提示:

文章标题:Linux下使用tcpdump监听DNS查询

文章链接:https://www.xiciw.com/jsjc/2988.html

更新时间:2024年03月28日

本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:xiciw#qq.com我们将第一时间处理!

资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

                               

所有资源仅限于参考和学习,版权归原作者所有,更多请阅读菜鸟资源服务协议

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
技术教程

在Centos7下安装AWVS扫描器

2024-3-24 2:48:09

技术教程

使用VPS的GRE隧道过滤DDoS

2024-3-28 14:41:47

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索