《Wireshark网络分析的艺术》—Linux为什么卡住了?

Linux为什么卡住了?
Wireshark网络分析的艺术
到今天为止,已经有5位读者向我求助过这个问题了。症状请看图1,他们通过SSH登录Linux服务器时,输完用户名就卡住了,要等待10秒钟才提示密码输入。这究竟是什么原因导致的呢?其实我也是Linux菜鸟,虽然尝试过搜索“ssh hang”等关键词,但是没找到相关信息。

10秒钟的时间并不算长,吃个薯片喝口咖啡就过去了。但是作为强迫症患者,我还是容不得它的存在,因此便决定写篇文章,向大家演示一下怎样用Wireshark一步步解决这个问题。

首先是抓包,步骤如下。

1.在Linux服务器上启动抓包。

2.从笔记本SSH到Linux服务器,输入用户名并回车。

3.等待10秒左右,直到登录界面提示输入密码。

4.停止抓包。

这样就可以得到一个涵盖该现象的网络包了。一般在实验室中没有干扰流量,不用过滤也可以分析,不过我们最好在做实验时就养成过滤的习惯,以适应生产环境中抓到的包。因为我们是通过SSH协议登录的,所以可以直接用“ssh”来过滤,如图2所示。SSH包都是加密了的,因此我们看不出每个包代表了什么意思,不过这并不影响分析。从图2中可以看到,21号包和25号包之间恰好就相隔10秒。

这两个包之间所发生的事件,可能就是导致这个现象的原因。于是我再用“frame.number> 21 && frame.number< 25”过滤,结果如图3所示。

从图3中可以看到,Linux服务器当时正忙着向DNS服务器查询10.32.200.23的PTR记录(即反向解析),试图获得这个IP地址所对应的域名。该IP属于我们测试所用的笔记本,但由于DNS服务器上没有它的PTR记录,所以两次查询都等了5秒钟还没结果,总共浪费了10秒钟。

我们由此可以推出,这台Linux服务器在收到SSH访问请求时,会先查询该客户端IP所对应的PTR记录。假如经过5秒钟还没有收到回复,就再发一次查询。如果第二次查询还是等了5秒还没回复,就彻底放弃查询。我们甚至可以进一步猜测,如果DNS查询能成功,就不用白等那10秒钟了。

为了验证这个猜测,我在DNS服务器中添加了10.32.200.23的PTR记录,如图4所示,然后再次登录。

这一次果然立即登录进去了。从图5的Wireshark截屏可见,DNS查询是成功的,所以21号包和26号包之间几乎是没有时间停顿的。

明白了DNS查询就是问题的起因,接下来就知道怎么进一步研究了。只要在Google搜索“ssh dns”,第一页出来的链接都是关于这个问题的。随便挑几篇阅读一下,就连我这样的Linux初学者都能把这个问题研究透了。原来这个行为是定义在“/etc/ssh/sshd_config”文件中的,默认配置是这样的:

[root@Linux_Server ~]# cat /etc/ssh/sshd_config |grep -i usedns
#UseDNS yes

改成下面这样就可以解决了,不用去动DNS服务器上的配置:

[root@Linux_Server~]# cat /etc/ssh/sshd_config |grep -i usedns
UseDNS no

我经常说技能比知识更重要,这就是例子之一。学会了使用Wireshark,其他知识也会跟着来的。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-09-14 23:30:44

《Wireshark网络分析的艺术》—Linux为什么卡住了?的相关文章

《Wireshark网络分析的艺术》目录—导读

作者简介 Wireshark网络分析的艺术 林沛满,2005年毕业于上海交通大学,现任EMC网络存储部门的主任工程师.多年来为多个产品团队提供 过技术咨询,范围包括网络.操作系统.文件系统和域等,这就是本书所涵盖的协议如此五花八门的原因.每年临近加薪的日子,他也会组织一些技术培训来提醒上司.本书的部分内容就来自这些培训资料. 平时他也写一些技术博客,你或许还能在IT168或者ChinaUnix技术社区看到它们.本书也有少数内容来自这些博客. 当林先生不在工作时,大部分时间都花在了园艺花卉上,尤其

《Wireshark网络分析的艺术》—被误解的TCP

被误解的TCP Wireshark网络分析的艺术 人一旦形成某种思维定势,就很难再改变了.知道我收到最多的读者来信是问什么吗?"林工,有些TCP包发出去之后没有看到对应的Ack,算不算丢包啊?"这个问题让我很是好奇,明明RFC上没有这样的规定,为什么总有读者觉得每一个数据包都应该有对应的Ack呢?后来才注意到,很多提问者是做网站开发出身的,已经习惯了每个HTTP请求发出去,就一定会收到一个HTTP响应(见图1),因此就把这个模式套到了TCP上.其实不止HTTP,绝大多数应用层协议都采用

《Wireshark网络分析的艺术》—三次握手的小知识

三次握手的小知识 Wireshark网络分析的艺术 我原本以为TCP三次握手不值得写,没想到在某技术社区上被提问好几次了.看来感兴趣的人还真不少,还是写一篇吧. 我们知道TCP需要通过三次握手来建立连接,过程如图1所示. 从Wireshark上看到的握手过程就是图2这样的,你可以把Seq号和Ack号代入图1中,看看是否符合规律. 当X和Y的值太大时,看起来就不太友好,尤其是需要对这些号码做加减运算时.于是Wireshark提供了一个功能--把Seq和Ack的初始值都置成0,即用"相对值"

《Wireshark网络分析的艺术》—像福尔摩斯一样思考

像福尔摩斯一样思考 Wireshark网络分析的艺术 有位读者在豆瓣上评论我的上一本书,说有阅读侦探小说的感觉.我对此并不觉得惊讶,因为用Wireshark排查问题,和侦探破案的思路是一致的.神探福尔摩斯的破案秘诀是"溯因推理"--先观察所有细节,比如鞋根上的泥疙瘩甚至烟灰:然后作出多种推理和假设:接着刨去各种不可能,最后剩下的"无论多么难以置信,肯定没错."用Wireshark分析网络包时也类似,我们先要在网络包中寻找各种线索,然后根据网络协议作出推理,接着刨去人

《Wireshark网络分析的艺术》—来点有深度的

来点有深度的Wireshark网络分析的艺术前一篇文章发布后,被一些公众号转发了.于是就有资深技术人员找到我,说读完觉得不过瘾,希望来点有深度的.好吧,那篇的确只从表面上介绍了延迟确认在网络发生拥塞时的影响,要往深处分析的话还是有不少料的. 先发散一下思维:除了VMware所建议的关闭延迟确认,还有其他的方法可以解决这个问题吗? 答案是肯定的.既然VMware的文章说"某些提供iSCSI访问的存储阵列在出现网络拥塞时处理不当",就说明还有些存储阵列是处理得当的,即使打开延迟确认也不怕.

《Wireshark网络分析的艺术》—一篇关于VMware的文章

一篇关于VMware的文章Wireshark网络分析的艺术有位读者在VMware的知识库里找到一篇文章,觉得很像他正在遭遇的一个性能问题,便转发给我确认.作为好为人师的技术员,我当然不能让读者失望. 这篇文章大概讲了这样一件事. 问题描述某些iSCSI存储阵列在出现网络拥塞时处理不当,会严重影响VMware的读写性能.这和它们的TCP实现方式有关. 解决方式在VMware和存储阵列上关闭延迟确认(Delayed ACK) VMware和iSCSI存储阵列是什么?我在知识库里找到一个网络拓扑,看起

《大咖讲Wireshark网络分析》—再来一个很妖的问题

再来一个很妖的问题 大咖讲Wireshark网络分析 有读者问,"叔叔,你那些很"妖"的网络问题是在哪找的?我也很感兴趣,但是从来没有遇到过." 叔叔听完这句话,顿时觉得心里好苦--都是这些"妖怪"自己找上门的,我想躲都来不及,哪会主动去找啊!我们全球有几千用户,假如每位用户每年遇到一次网络故障,我就有看不完的包了.<Wireshark网络分析的艺术>中讲到的那些案例,其实只占极小部分,公司电脑里还躺着几百个案例等着整理呢.既然你们对

《Wireshark网络分析实战》目录—导读

版权声明 Wireshark网络分析实战 Copyright Packt Publishing 2013. First published in the English language under the title Network Analysis Using Wireshark Cookbook. All Rights Reserved. 本书由英国Packt Publishing公司授权人民邮电出版社出版.未经出版者书面许可,对本书的任何部分不得以任何方式或任何手段复制和传播. 版权所有

《Wireshark网络分析实战》—第1章1.3节开始抓包

1.3 开始抓包 Wireshark网络分析实战 本节首先将介绍如何启动Wireshark,然后会讲解布放好Wireshark之后,如何对其进行配置,以应对不同的抓包场景. 1.3.1 准备工作 安装过Wireshark之后,需点击桌面→开始→程序菜单或快速启动栏上相应的图标,运行该数据包分析软件. Wireshark一旦运行,便会弹出图1.6所示的窗口(Wireshark1.10.2运行窗口). 1.3.2 操作方法 要想让Wireshark软件能抓到数据包,有以下三种途径:点击Capture