粉丝1.1万获赞2.8万

通用指导 tip dump 抓包命令使用工具可以使用 share 或者 moba x term, 推荐 moba x term 下载,安装 moba x term 后打开 moba x term 工具,选择 session, 选择输入服务器地址, 勾选 specify user name, 输入 root, 点 ok, 登录进入后台,输入 tip dump s 零 i any host 对端 ip 地址 w v s 表示抓取豹纹,字节大小零表示抓取所有豹纹, i 表示选择网卡, any 表示抓取所有网卡豹纹 host 跟对端地址可以是国标上下集域的地址,也可以收留地址。 w 后面跟文件名后缀右 p cap 未显示当前抓包详细字节大小,按 c t r l 加 c 停止抓包,或者通过端口号 port 五零六零 or 五零六一 r 八千八百抓包命令 tip dump s 零 i any port 五千零六十 r 五千零六十一 r 八千八百 w d n g e p cap v 点刷新键,选中抓包的文件,拖到电脑桌面。

两台计算机要如何通信?我们可以用网线把他们连接起来,这样就可以通信了。当然如果是老式的设备,还需要调整下网线的线序。那么多台计算机要如何通信呢?计算机之间两两连接起来吗?当然可以,但是这样的成本太高,操作也麻烦。于是我们可以把每家每户的线拧在一起, 样也可以实现多台计算机之间互相通信,而拧在一起这个线团就是极限器。但是极限器的缺点也是明显的,每次发送的消息都会发给所有人。另外多台计算机之间同时发送消息时,会造成互相干扰,导致数据紊乱,于是我们需要更好的设备,这个设备就是交换机。 交换机通过内部的 mac 地址表来决定信息流向。接入交换机的设备都必须要有自己的 mac 地址, mac 地址是设备出厂时就设定好的,全球唯一的可以理解为设备的 u u i d。 我们来看交换机是如何 和运作的。假设黑色计算机需要发送消息给橙色计算机,他需要在豹纹里写上自己的麦克地址,还有橙色的麦克地址,并发给交换机。交换机收到后发现了黑色计算机的麦克地址,并记录下来,跟接口已绑定。但是此时交换机并不知道红色麦克地址对应的是哪个接口,于是给所有人都发一遍。 这个发给所有人的做法叫泛红、紫色。绿色计算机收到消息后发现目标 mac 地址跟自己的对不上,于是会丢弃不处理。而橙色计算机的 mac 地址能匹配上,于是发送消息回应,同样的,回应的消息也要写上自己的 mac 地址。 黑色计算机的 mac 地址回应消息经过交换机后,交换机也会把橙色计算机的 mac 地址跟接口四进行绑定。由于之前已经保存了黑色计算机的 mac 地址,交换机可以直接知道黑色计算机在哪个接口,于是不再需要泛红,而是直接投 递到接口一,这样就完成了麦克地址发现到通信的过程。之后如果黑色计算机还要发送给橙色计算机,交换机同样不需要泛红,而是直接投递,这就是交换机的原理。然而,麦克地址是跟设备绑定的,假如计算机更换了网卡,麦克地址就变更了,之前一起沟通过的计算机也要跟着更改,这 很不方便。我们需要一个更抽象的地址及 ip 地址使用 ip 地址是如何通信任的?假设黑色计算机需要发送给消息给绿色计算机,那么他需要在报文上写好自己的 ip 地址以及绿色计算机的 ip 地址。 因为需要经过交换机,所以 mac 地址也要写上。但是此时黑色计算机并不知道对方的 mac 地址是多少,需要满大街去问,于是报文的目标 mac 地址写不知道,通过交换机的泛红消息发给了所有人。紫色橙色计算机比对 ip 后发现不是自己的消息,于是丢弃。而绿色 计算机匹配到 ip 地址跟自己相符,于是把黑色计算机的 mac 地址跟 ip 地址绑定起来,以被下次使用。随后回应黑色计算机告诉自己的 mac 地址是多少,黑色计算机收到回应后,也把绿色的 mac 地址记录起来,有了 mac 地址 之后就可以直接通信了。这个由 ip 地址到获得 mac 地址的过程就是 arp 协议,而计算机里头 mac 地址跟 ip 地址绑定的数据表则是 arp 记录表。由于交换机的泛红特性, 我们可以透过交换机直接将不同的网络联合起来,但是网络规模大了之后,这样联网的方式并不合理。由于交换机会把每个经过的 mac 地址都保存起来,如 果联网设备数量巨大,那么交换机的 macd 指表将会无法容纳。另外交换机的全网泛红也会导致效率问题,于是我们希望将网络隔离开来,将网络分成不同的网段,交换机只用来传输同一 网段的消息,于是有了直网野马的概念。直网野马简单理解就是告诉计算机直网的 id 是 ip 的前面多少位数,例如简单理解,直网野马前三段有值,那么直网 id 就是 ip 的前三段,其他的 ip 算法也是一样。这样我们就可以通过比对 ip 的直网 id 来判断他们是否属于同一个指望。请注意这个是初犯的理解。实际计算需要将 ip 跟指网野马转换成而静置,这样的可力度更高,但是原理是一样的,同样是按照指网野马学定,节取 ip 的前头稍微作为指望 id, 这样计算机就可以知道目的 ip 是属于当前网段还是外网。对于发网,外网的消息, 教给专门的设备帮忙转发,这个设备者是路由器。例如黑色计算机要发消息给紫色计算机,通过直网野马计算得知紫色计算机 ip 属于外网,于是把消息交给了路由器。而黑色计算机之所以知道要交给 那台路由器,是因为黑色计算机的网关配置的是路由器的 ip。 网关,顾名思义就是各个指网的关口出口,非内网的消息都经过网关出去,那路由器收到消息后, 怎么知道下一步应该交给谁呢?路由器上有个路由表,可以配置网段和吓一跳,用来决定各网段的消息下一步应该交给哪一个路由设备,于是路由器就通过这种接力的方式将消息传达到了目的。计算机 也许注意到了,路由表是手动配置的,当路由设备多起来时,靠人工维护简直就是灾难,于是有了自动互相学习、自动管理路由表的 os、 pf 等协议。当网络规模继续扩大后, ospf 也会疲软,于是也会使用 bgp 等协议。总 之,交换机路由器各协议及 ip 协议的作用下,使用者可以不用关心复杂的网络环境,计算机之间通信就相当跟网限制联一样。但此时仍有一系列 问题等着我们,例如 ip 协议只负责发消息头递到计算机,但是我们计算机是都应用的,要怎么去分呢?我们可以引入端口的概念,不同的应用使用不同的端口发送豹纹时,除了前面的 mac 地址、 ip 地址外,还有家上元端口跟墓地端口,这时间收方就可以根据端口确定交各对应的应用,处理消息响应也是同理。这种带端口的消息发送方式其实就是 udp 协议, udp 简单粗暴,但是 udp 存在很多问题,所以我们需要设计一个稳定可靠的协议。 tcp 协议首先网络是不稳定的, 我们发送的消息很有可能会在图中丢失,所以需要设置重试机制,当消息发送失败时重新发送。为了判断是否成功,还需要要求接受方收到消息后必须发送确认消息,这样就可以保证消息必达。另外,大段的内容发送很容易造成部分丢失,导致全部内容 都要重新发送。于是我们可以将数据分包分成多个包发送。如果分包失败,只需要重传分包数据就可。提高了传输效率之外,还需要给每个分包配上序号,以解决接收方数据乱序问题,并且接受方回复确认也要针对序号进行回复。不管是发送方的重传机制, 还是接受方的应答数据整理机制,都需要双方分配计算资源来处理。为了提高计算效率,需要双方约定好一起开启,一起结束,而这个约定的开启的结束就叫做连接的建立与关闭。 tcp 建立连接时,发送方线传达一个连接意愿, 接受方收到后需要响应这个消息,这是前面提到的消息必答,得保证。如果不响应,发送方可能会一直重发消息。除了响应消息外,接受方还要表达连接意愿。同样的,接受方的意愿也需要得到发送方的响应,原理都是保证消息必答。在交换完意见后, 双方就可以分配计算资源了。此时你会发现,接收方的两条消息其实可以合并为一条消息发送,最终只剩三条全部消息,这就是 tcp 协议所谓的三次握手连接建立后就可以进行数据传输。前面提到的传输例子中, 分包是全部一起发送的,但这个方式实际使用时,很有可能因为接收方处理能力不强或者带宽资源不够等因素导致溢出的数据传输失败,于是需要控制每次传输分包的个数,于是有滑动窗口、雍设控制等技术,目的都是动态调整分包个数来优化传输流程。 数据传输完成后,需要双方约定一起释放资源,也就是断开连接,同样由发送方发起断开,议员接收方响应消息之后,接收方表达断开,议员发送方也要响应。这条消息跟建立连接的过程是一样的,唯一不同的是,断开连接中,接收方的两条消息没办法和 合并为一条为,接收方需要等待数据接收完整后才能向发送方表达断开意愿,中间有时间间隔,于是断开连接。总共有四条消息,也就是所谓的四次挥手。 udp 和 tcp 是应用程协议的根据,所有的应用程协议都是在他们的基础上建立的。 随着网络的发展壮大, ip 地址已经不够用了,于是有人想出了这网供用一个 ip 地址的办法。假设黑色计算机和橙色计算机同时发送消息给紫色计算机,但是他们并没有公网 ip, 于是交给了网关路由器转发。路由器收到后,建立端口音设表及路者原端口、新端口以及对应的那网 ip 后,把报文中的来源 ip 改成公网 ip, 端口改成新端口,冒充至网计算机与外部通信。而紫色计算机响应消息时,网关路由器就可以根据端口映射表找到消息应该分派给哪台内网计算机,这便是 night 协议。 net 协议有效的解决了 ip 地址匮乏问题。这里再插个趣味问题,假设此时绿色计算机用各种手段知道了端口映射表中的端口,那么向该路由发送消息,消息能成功抵达内网计算机吗?到这,也许你会发现了演示中的 ip 地址是怎么设置的呢? ip 地址可以手动管理,更多的是动态管理, 比如使用 dhcp 协议,由 dhcp 服务器路由器给计算计分配 ip 地址、网关等。而企业供网 ip 则可以根据运营商提供的进太 ip 手动配置。家庭供网 ip 通常使用 eppo 一协议向运营商动态注用。

这个实验演示 tcp 超市重传的机制,实验中用到了两台电脑,他们通过 wifi 连接到了同一个局域网,首先在这台电脑上用 nc 命令监听八八八八端口, 然后在另一台电脑上打开 wifi, 把过滤条件设置为 ip 点 houst 等于等于另一台电脑的 ip, 这里是幺九二点幺六八点幺九九点幺六五。 在设置好过滤条件之后,在这台电脑上连接另一台电脑的八八八八端口, 用 miniton 幺九二点幺六八点幺九九点幺六五八八八八来建立 tcp 连接,这个输出提示已经连接成功。这个时候去 另一台电脑把 wifi 关掉,来模拟网络突然中断的情况,这样我们在这台电脑上发送的后续的任何消息 都会因为网络中断的原因而超时,这样就可以观察到 tcp 超时充传的现象。现在是在另一台电脑上把 wifi 关掉,这样这台电脑就无法接收到另一台电脑发过来的 tcp 数据。 现在回到之前的电脑,在挑耐他已经尽力的 tcp 连接中发送数据。 get 斜杠 http 斜杠一点零回车。 这个时候新打开一个窗口,用命令 matstat 来观察这个 tcp 连接,可以看到发送队列中有十六个字节的数据,这就表示我们刚刚输入的 get 开头的这一行文本并没有发送出去。 等待几分钟之后,可以看到台欧奶的提示,看他是 cosplay pose, 意思是 tcp 连接已经断开。这时候我们回到 wirasa 查看这个 tcp 连接的数据包,可以看到很多黑色背景的条目,他们代表的就是 tcp 超市重传的豹纹, 前三个豹纹是建立 tcp 连接的三次握手产生的豹纹,第六个豹纹就是我们用 tonat 向另一台电脑发送的数据, 在下面的详细信息可以看到,发送的数据是 get 斜杠, hddp 斜杠一点零。由于我们在发送这行数据之前已经 把另一台电脑的 wifi 关掉,所以这行数据是无法发送到对方电脑的,所以包含这行文本数据的 tcp 报文就会超时,超时之后就会充传,所以在接下来的 tcp 报文中都是 是崇传的豹纹。崇传的豹纹可以看到铺是标记是打开的,并且他们都拥有相同的序列号。 在达到系统指定的从事次数之后,可以看到这个连接被关闭了。最后一个豹纹就是关闭连接的瑞斯艾特豹纹,这个豹纹是由本机发送给远端的。 除此之外,我们还可以观察 tcb 豹纹重传的间隔,我们依次查看重传豹纹的时间,戳字短 会发现重传的豹纹每次间隔的时间都在逐渐增大,这个不断增大的间隔时间的算法在不同的平台由不同的实现,最经典的实现是指数退避,也就是下一次的间隔是上一 词间隔的两倍。到这里这个实验就基本结束了。通过这个实验可以发现,在服务器突然网络中断的情况下,客户端已经建立的 tcp 连接并不会自动关闭,他仍然认为这是一个正常的 tcp 连接。 在客户端尝试发送数据给服务端的时候,由于超时会触发他的超时充传机制,在从事次数超限之后就会以非正常的方式关闭这个连接。

嘿,网络又出问题了吗?别慌,我们来聊聊 tcpdump 这个抓包神器。你肯定也遇到过那种怎么都搞不定的网络问题,对吧? tcpdump 就 能让你直接看到最底层的网络流量,就像在偷听网络对话一样。好,那从哪下手呢?嗯,第一步得知道咱能监听哪些网卡吧,就用这个名,一下子就能列出你电脑上所有能用的耳朵了。 来,咱们试试,第一次抓爆就用杠 any 拎听所有活动的接口。不过要小心,这命令一跑起来,数据就像洪水一样,记得用 ctrl c 停下。那万一我只想看一小段流量,而不是没完没了的抓呢? 这个简单,用 c 叉参数,比如 c 十,抓满十个包就自动停。你看,默认输出的是主机名,不是 ip 地址,这有时候会有点儿慢,所以加上 n 参数,直接显示 ip 数字,又快又清楚。实时看是挺好,但有时候啊,我们得把数据存下来,回头再慢慢分析。 这就得用 w 参数里了,直接把抓到的包写进文件里了,屏幕上就不会刷屏了。 但这个文件是二进制格式,记事本课打不开。那要怎么看呢?哈哈,还是用 tcp 单步,自己加个 r 参数就能读这个文件了。 好了,现在我们把刚才学的参数串起来用一次,所以记住这四个核心参数, i、 c、 n、 w 日常排错基本就够用了。怎么样,基础用法掌握了吧?下次再遇到网络问题,你会先敲哪个命令呢?

tcp down 命令的五种常用方式,一过滤端口二过滤特定协议三抓取本地环路数据包四的额定协议特定端口五过滤主机 ip。 想学习更多网络知识,点击评论区置顶链接。

今天分享一下网络功能是是如何使用 tcb 大门来抓取访问抖音的数据流量的上一个视频分享呢?交换机能够使用导火镜像的方式将用流量进行抓取。那么如图所示, 流量导流到我们的服务器之后,我们可以通过 tcb 档来进行数据包的一个过滤。那么今天就分享一下 tcb 档的一个这个工具。你要选择参数的话,那如说是红色的部分是我比较常用的,那么杠 a 是指要检验端口,杠 a 是嗯 ip 不进行 ds 解析,否则会比较慢。 看 w 的话就是将抓取的数据包显示到文件中,杠 c 是指要获取的一个数据包的数量,杠 b 是显示更详细的信息,然后提不到一些主要的过滤参数的话,我这边主要是采用 house 以及炮这两个核心参数啊,分别是抓取对应的一些 ip 地址啊以及对应端口。这案例的话就 如图所示来进行抖音的一个流量抓取,那通过聘的话,我可以知道抖音的 ip 地址是幺二点幺四点二二九点幺二七。那么就可以通过这个命令来进行一个在微商配置来进行抓包。嗯,如图所示,就是我抓取到一个聘的一个数据包,然后呃是一个 app 的一个请求的数据包。 那么这样就完成了我们对流量的一个抓取。我们也可以通过 ldp 来获取到我们服务器链接的交易信息。那如图所示,我们可以以十六进制的形式来制定了 ldp 协议的以太网类型零叉八八 cc。 这样我们在 复位上就可以显示如图所示的一个呃交换机的端口以及交换机的名称。希望大家送上免费的点赞,谢谢!

要正确的姿势涨知识!哈喽大家好,欢迎收看涨知识!对于 tcp 协议和 udp 协议,大家应该都有做耳闻, 我们常用的网络通讯,比如浏览网页、软件聊天,以及你现在正在收看的视频,都是通过这两种协议来进行数据传输的。到底他们是如何工作的?这两种协议又有什么区别呢?请耐心看完本期视频,一定会有所收获。 tcp 协议和 udp 协议都工作在传输层,他们的目标都是在程序之间传输数据,数据可以是文本文件可以是视频,也可以是图片, 对于 tcp 协议和 udp 协议来说,都是一对二进之处,并没有多大的区别。那 tcp 与 udp 之间的区别是什么?想必看到这里的同学也能异口同声的说出来。最大的区别 是一个机遇连接,一个机遇飞。连接具体是什么意思?我们来举一个简单的例子,如果把人与人的通信比喻为晋城与晋城的通信, 我们基本有两种方式,第一种方式是写信,第二种方式是打电话。如果不考虑速度因素,这两种方式之间最大的区别是什么?就是信寄出去之后,对方是否能收到,以及收到的信内容是否完整,先后继两封信过去,是否按照顺序接收都变成了未知数, 甚至你填写的收信地址和收信人是否存在,你都无法确认。而打电话则不同,从拨打电话到对方接通互相通话,再到结束通话后挂断,这一系列的流程都能得到及时的反馈, 并且能确认对方准确的接收到。打电话是基于连接的,也就是 tcp, 而写信就是基于非连接的,就是 udp。 tcp 是如何保证以上过程的?有三个关键的步骤,分别为三次握手、传输确认,四次挥手。 三次握手是建立连接的过程,当客户端向服务端发起连接时,会先发一包连接请求数据过去询问一下能否与你建立连接。这包数据我们称之为肾包,如果对端同意连接,则回复一包性价艾克包。客户端收到之后回复一包艾克包连接建立。 因为这个过程中互相发送了三包数据,所以称之为三次握手。为什么要三次握手而不是两次握手?服务端回复完三加艾克之后就建立连接, 这是为了防止因为已失效的请求豹纹突然又传到服务器引起错误。这是什么意思?假设采用两次握手建立连接,客户端向服务端发送了一个肾包来请求建立连接,因为某些未知的原 原因并没有到达服务器,在中间某个网络节点产生了滞留。为了建立连接,客户端会重发赠包,这次的数据包正常送达,服务端回复增加艾克之后建立起来连接, 但是第一包数据阻塞的网络节点突然恢复,第一包省包又送达到服务端,这时服务端会误认为是客户端又发起了一个新的链接, 从而在两次握手之后进入等待数据状态,服务端认为是两个连接,而客户端认为是一个连接,造成了状态不一致。如果在三次握手的情况下,服务端收不到最后的爱,可自然不会认为连接建立成功。 所以三次握手本质上来说就是为了解决网络信道不可靠的问题,为了能够在不可靠的信道上建立起可靠的连接,经过三次握手之后,客户端和服务端都进入了数据传输状态。我们 刚才说过, tcp 协议需要在不可靠的信道上保证可靠的连接。现在就有几个问题需要面对,一包数据有可能会被拆成多爆发送,如何处理丢包问题?这些数据包到达的先后顺序不同, 如何处理乱序问题?针对这些要求, tcb 协议为每一个连接建立了一个发送缓冲区,从建立连接后的第一个字节的序列号为零,后面每个字节的序列号就会增加。一 发送数据时,从发送缓冲区取一部分数据组成发送豹纹,在其 tcb 协议头中会附带序列号和长度,接收端在收到数据后需要回复确认豹纹,确认豹纹中的艾克等于接收序列号加长度, 也就是下一包数据需要发送的起始序列号。这样一问一答的发送方式能够使发送端确认发送的数据已经被对方收到, 发送端也可以一次发送连续的多包数据,接收端只需要回复一次艾克就可以了。这样发送端可以把带发送的数据分割成一系列的碎片发送到对端。对端根据序列号和长度在接收后重构出来完整的数据。 假设其中丢失了某些数据包,则接收端可以要求发送端重传。比如丢失了一百到一百九十九这一百个字节,接收端向发送端发送艾克等于一百的豹纹,发送端收到后重传这一包数据,接收端进行补齐。 以上过程不区分客户端和服务端, tcp 连接是全双工的,对于两端来说均采用上述机制。我们再来看一下什么是次次挥手。处于连接状态的客户端和服务端都可以发起关闭连接请求,此时需要次次挥手来进行连接关闭。假设客户端主动 发起连接关闭请求,他需要将服务端发起一包粪包,表示要关闭连接,自己进入中置等待一状态。这是第一次回收。服务端收到粪包,发送一包艾克包,表示自己进入了关闭等待状态。客户端进入中置等待二状态,这是第二次回收。 服务端此时还可以发送未发送的数据,而客户端还可以接收数据,待服务端发送完数据之后,发送一包粪包进入最后确认状态,这是第三次回收。客户端收到之后回复艾克包进入超时等待状态,经过超时时间后关闭连接, 而服务端收到艾克堡后立即关闭连接,这是第四次回收。为什么客户端需要等待超时时间?这是为了保证对方已收到艾克堡。因为假设客户端发送完最后一包艾克堡后就释放了连接,一旦艾克 包在网络中丢失,服务端将一直停留在最后确认状态。如果客户端发送最后一包艾克包后等待一段时间, 这时服务端因为没有收到艾克包,会重发粪包,客户端会响应这个粪包,重发艾克包并刷新超市时间。这个机制跟三次握手一样,也是为了保证在不可靠的网络链路中进行可靠的连接断开确认。 了解了 tcp 协议,我们再来看一下 udp 协议。首先 udp 协议是基于非连接的发送数据,就是简单的把数据包封装一下,然后从网卡发出去就可以了,数据包之间并没有状态上的联系,正因为 udp 这种简单的处理方式, 导致他的性能损耗非常少,对于 cpu 内存资源的占用也远小于 tcp。 但是对于网络传输过程中产生的丢包, udp 协议并不能保证,所以 udp 在传输 稳定性上要弱于 tcp, 所以我们能总结出来 tcp 和 udp 的主要区别。 tcp 传输数据稳定可靠,适用于对网络通讯质量要求较高的场景, 需要准确无误的传输给对方,比如传输文件、发送邮件、浏览网页等。 udp 的优点是速度快,但是可能产生丢包,所以适用于对实施性要求较高,但是对少量丢包并没有太大要求的场景, 比如域名查询、语音通话、视频直播等。有 app 还有一个非常重要的应用场景就是隧道网络。什么是隧道网络?比如我们常用的 vpn 就是一种隧道网络,以及在 sdn 中用到的微叉烂也是一种隧道网络。 关于隧道网络的知识,我们在下期视频进行讲解,今天的视频就到这里了,欢迎大家点赞、留言、关注、转发,再见!


嘿,大家好,如果你经常跟服务器打交道,肯定遇到过这种让人头疼的场景,对吧?需要在命令行里头去解决一些奇奇怪怪的网络问题, 来想象一下哦,一个很重要的服务突然就访问不了了,你呢?只能连上一个黑漆漆的终端界面,没别的,没有那种漂亮的图形界面,鼠标也点不了。 这种情况下,你到底要怎么才能找到问题的根源呢?别慌,其实在这种时候啊,你就得化身成一个命令行侦探。那么既然是侦探要破案啊,那手上肯定得有趁手的工具对不对? 一般来说呢,你的工具箱里会有这么两个神器,一个叫 tcpdump, 另外一个叫 t shark, 他们两个都是用来抓网捞包的。这个没错,但是啊,他们的角色定位可就完全不一样了,你可以把一个想象成是侦探随身带的放大镜,另一个呢,那可就是一整套的法医鉴定工具箱了,我们就来看看他们到底有什么区别。 好,咱们先从 tcpdump 说起,你就把它当成是那种最可靠,而且哪儿都有的老伙计,它特别简单,也特别直接,绝对是你做初步排查时候的首选。你看, tcpdump 的 核心任务就一个字,抓! 它不追求功能有多花哨,它要的就是在最要命的时候,用最快的速度,最少的系统资源,帮你把那些网络数据包给逮住。 那他的核心优势是啥呢?我觉得最关键的一点就是,他基本上是预装的,也就是说,当你火急火燎的要查问题的时候,他就在那随时都能用,再加上他本身又小又快,所以基本上就是所有服务机环境下的一个标准配置了。 好了,那什么时候轮到 t shark 出场呢?就是当你用 tcpdump 抓到了一堆数据,结果发现,哎呦,这原始数据根本看不懂啊,需要更深入地去分析。这个时候, t shark 就 可以闪亮登场了。 就就好比你觉得放大镜不够用了,得把整套法医分析设备给搬出来了。注意啊,这里的关键词是分析器 tshark, 和他那个大名鼎鼎的有图形界面的兄弟 y shark 一 样,天生就懂得怎么去读懂这些网络流量,而不只是傻傻地把它们记录下来。 从这你就能看出来 t 十二克到底有多厉害了。它能直接告诉你哦,这是一个 http 请求,或者这是一个 dns 查询,甚至还能把分析结果整理成 json 格式,方便你用其他程序去处理。而且,最酷的是什么呢?它的好多语法跟 tcp dump 是 兼容的,所以你学起来也特别快。 行,光说不练假把式,咱们直接来看个例子,看看这两个工具在处理同一个任务的时候,到底有什么不一样。好,我们来个最常见的任务,就想看看服务器上所有走八零端口的 http 流量。 你看啊,对于这种抓某个端口的基础操作,两个工具的命令长得几乎一模一样, t shock 还特意做了兼容,所以你用 t c v 档的过滤语法也能直击用。哎,到这一步,好像还看不出太大差别。 好,现在难度升级了。我们不光想知道有 http 流量,我们还想知道的更具体一点,比如说用户到底访问了哪个 url, 哎,这一下差距就出来了。 你先看 tcpdump 的 结果,他倒是很忠实地把所有数据都给你了,但这对咱们来说,基本就跟看天书一样, 除非你是网络协议大神,不然想从这一堆十六禁制代码里头把 url 给找出来太难了。 然后呢,我们再来看 t shark 的 输出,你看答案是不是一下子就出来了?他直接把 http 协议给解析了,把我们最关心的哪个该请求路径清清楚楚的给你摆在眼前。哎,这就完美的体现了抓包工具和协议分析器的根本区别。 好,既然我们已经看完了他们的实战 pk, 那 现在就该总结一下了,到底什么时候,该用哪个? 所以说,到底该怎么选呢?其实很简单,就看你的目标是什么。如果你只是想在任何一台服务器上快速抓个包,然后存下来,回头再分析,那二话不说肯定用 tcpdump。 但是只要你的任务涉及到分析应用层协议,比如说你想看 http 请求的具体内容,或者你想生成一些流量统计报告,那你就应该毫不犹豫地选择 t shock。 那么问题来了,我们该怎么学习才能把这两个强大的工具都玩转呢?其实啊,这里有一条特别清晰的成长路径, 我觉得这条路子特别实用。第一步,先把 tcpdump 的 基础打扎实,尤其是要学会怎么用它那些强大的过滤规则,做到指哪儿打哪儿,精准抓包。然后呢,第二步,再用 tark 的 分析能力去读懂你抓下来的这些数据。那么最厉害的用法是什么呢?就是把两个结合起来, 在生产服务器上用轻量级的 tcpdump 去抓包,抓完之后把哪个 pc app 的 文件传回到你自己的电脑上,然后用功能超级全的 tark, 甚至是 yoshock 图形界面来一次深度的施剪。 好了,现在你的工具箱里既有了放大镜,也有了法医工具箱,掌握了它们,你就有了破解各种复杂网络谜案的能力。那么下一个你想挑战的谜案是什么呢?放手去试试吧!

嘿,大家好,今天我们来聊点有意思的,你想过没有,你的网络里那个看不见的世界到底有多热闹?数据传来传去简直比高峰期的主干道还堵。今天呢,我们就来当一回侦探,去揭开这些数据流背后隐藏的秘密。 你想象一下啊,要是你能像读一本书一样,把你网络上传出的每一条信息都看得清清楚楚,那会是种什么感觉?是不是超酷?你能发现什么?又能解决掉哪些头疼的问题? 我告诉你啊,这可不是科幻电影,你真的可以做到。来认识一下你解决网络问题的新搭档,他就是 t c p dump。 没错,今天我们就要来掌握这个超级给力的工具。 好,那咱们今天的探案路线图我给大家简单过一下。首先我们得先了解一下网络里到底有哪些悄悄话,然后呢,我会给你一个数字放大镜, 接着也是最重要的,教你怎么跟着线索走,咱们会一起破解几个常见的案子,等这些都搞定了,哎嘿,你就是一名合格的网络侦探了。 好,那我们这就开始第一部分,网络里那些隐藏的对话,你可以把你的网络想象成一个特别繁忙的大都市,那些来来回回的数据包呢,就是这个城市里的车, 每辆车都有自己的起点,终点还拉着货。但问题是,这座城市是隐形的,我们肉眼根本看不见。所以啊,一旦出了什么拥堵啊,交通事故啊,我们怎么才能知道到底发生了什么呢?嗯,这就是要我们解决的第一个谜题。 不过别担心,想看清楚一切,一切其实不难,我们只需要一个撑手的工具就行了,这就自然地引出了咱们的第二部分,你的数字放大镜。 没错,就是 tcpdump 这个工具啊,非常强大,它就是一个命令行的数据嗅探器。说白了,它能让你实时地去监听、捕获,然后分析流经你服务器的所有网络数据。 你可以把这些数据包想象成一个个小小的数字信封,里面装着各种指令和信息。而 tcpdump 呢,就是你手里那个能结实真相的放大镜。 哦,对了,这得特别提醒一下啊,因为 tcpdump 这个工具啊,需要直接访问网络硬件的底层,所以呢,你必须用管理员权限,也就是咱们常说的 root 用户来运行它。 你想想也对,毕竟不能随随便便谁都能查看全程的交通状况,对吧?好,现在放大镜到手了,但关键是你怎么用它来找到有用的线索呢?光有工具可不行。 所以,第三部分,我们就来学学到底该怎么跟寻线索。要我说,网络侦探最最核心的技能就是过滤,你想,网络上的流量太庞大了,就好像一个城市里有成千上万的人在同时说话, 你要是想全都听啊,那马上就得被信息的噪音给淹没了。所以,过滤这个基础就是帮我们把这些无关的噪音全都屏蔽掉,只关注那些跟我们调查有关的关键信息。 其实啊,过滤可以分成特简单的三步,第一步叫选择线路,就是用杠 i 这个参数告诉 tcpdump 你 要监听哪根儿网线,也就是哪个网络接口。 第二步呢,叫指明嫌疑人,用 host 关键词锁定你关心的那台电脑。第三步叫找到案发地点,用 port 关键词找到那个特定的服务端口, 你只要掌握了这三步,基本上就能做到精准定位了。理论讲得差不多了时候,来点实际的了,咱们进入第四部分,解决常见案件。通过这几个真实的例子,你会真正见识到 tcpdump 的 威力。 好,来看第一个案子,监控一个特定的网络接口,这种情况很常见,比如你的服务器上插了好几张网卡,但你现在只想看看其中一张,比如说名字叫 n c 幺六零的这张网卡上,到底都有些什么数据在跑。 那么命令呢,就非常简单直接了,你看就是 tcpdump 杠 i e n s e 六零 这个杠 i 参数啊,就好像你在跟 tcpdump 下命令说,嘿,别的线路我都不管,你就给我死死盯住 e n s e 六零这条线就行了,简单明了。好,咱们来看第二个案子,追踪一个特定的嫌疑人。 假设啊,你现在想知道你的服务器跟另一台 ip 地址是幺九二点儿幺六八点儿十点儿十的电脑,它们之间到底在聊些什么?所有的通信内容你都想看, 这个时候呢, host 这个过滤器就派上用场了,命令就是 tcpdump host 幺九二幺六八点十点十,这条命令会把所有跟这个 ip 地址有关的数据包,不管是发出去的还是接收进来的,通通都给你抓出来, 这样一来,这个目标的所有对话记录就全都在你眼前了,一目了然。好,来看我们最后一个案子,监听一个特定的地点,这是什么意思呢? 比方说,你想看看所有访问你服务器上网站的流量。咱们都知道,网站服务也就是 http, 一 般用的都是八十端口,这个命令呢,稍微复杂一点点,但真的超级有用。 七 c p dump 杠 any port 八十杠 a, 我 们来拆解一下啊, 杠 any 的 意思是,不管哪个网卡,所有网卡都给我听的 port 八十,就是精准地把目标锁定在八十端口,也就是我们关心的网站流量。但这里最关键的是最后这个杠 a 参数 他能干嘛呢?他能把抓到的数据包里的内容用我们能看懂的文本格式给显示出来。这就厉害了,你可能直接就能看到网页的原代码,甚至是一些没有加密的登录信息。 这一下我们就不只是看到数据包在飞来飞去了,而是能直接阅读这些信件里的真实内容了。 好,我们快速总结一下刚才破的这几个案子,你看这个表格一目了然。咱们的三个主要侦查技巧,想监控特定网线用 i, 想追踪特定电脑用 host, 想监听特定服务用 port。 哦,还有,千万别忘了我们的王牌 a, 他 能让证据自己开口说话。到这里,恭喜你,核心的侦查技能你已经掌握了,现在让我们进入最后一部分,成为一名网络侦探。 这些样东西就是你的侦探工具包了,你只要记住这几点就行。 一、用 tcpdump 这个工具,你就能看到所有的流量。第二,要用过滤器来从一大堆信息里找到关键线索。 第三,通过接口、主机和端口,你可以进行精准定位。最后,别忘了用杠 a 参数来直接阅读证据,有了这些,你算是具备了解决网络问题的基本能力了。好了,现在你的第一次调查正式开始了, 网络世界里啊,充满了各种各样的谜题等着你去解开。比如说为什么我的网站访问突然变得这么慢,或者那个看起来很可疑的链接到底在干什么? 那么你准备好先解决哪一个了吗?