使用tcpdump监控网络消息发送

tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具。

tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

监控连接到10.170.136.115的9999端口的请求

tcpdump -i any -nn -A -v src 10.170.136.115 and port 9999  | grep query

tcpdump抓包举例:

tcpdump -i any tcp port 4800 -nn -A -v   

结果如下蓝色部分即是消息数据:

tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
16:40:02.435880 IP (tos 0x0, ttl 64, id 60122, offset 0, flags [DF], proto TCP (6), length 181)
    192.168.136.115.58078 > 192.168.136.114.4800: Flags [P.], cksum 0x2691 (incorrect -> 0x545e), seq 3010428756:3010428885, ack 2832992565, win 2098, options [nop,nop,TS val 548595105 ecr 551848520], length 129
E.....@.@.).
..s
..r.....o.T..   5...2&......
 ... ..H{"param":"jisuan_252.puppet,5800,1395245041154@@52@@0.43@@0","method":"taskServerReport",

"call_id":"21140"}

16:40:02.435885 IP (tos 0x0, ttl 64, id 60122, offset 0, flags [DF], proto TCP (6), length 181)

更详细的tcpdump参数如下:

-A 以ASCII格式打印出所有分组,并将链路层的头最小化。

-c 在收到指定的数量的分组后,tcpdump就会停止。

-C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数 file_size 的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。

-d 将匹配信息包的代码以人们能够理解的汇编格式给出。

-dd 将匹配信息包的代码以c语言程序段的格式给出。

-ddd 将匹配信息包的代码以十进制的形式给出。

-D 打印出系统中所有可以用tcpdump截包的网络接口。

-e 在输出行打印出数据链路层的头部信息。

-E 用spi@ipaddr algo:secret解密那些以addr作为地址,并且包含了安全参数索引值spi的IPsec ESP分组。

-f 将外部的Internet地址以数字的形式打印出来。

-F 从指定的文件中读取表达式,忽略命令行中给出的表达式。

-i 指定监听的网络接口。

-l 使标准输出变为缓冲行形式,可以把数据导出到文件。

-L 列出网络接口的已知数据链路。

-m 从文件module中导入SMI MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。

-M 如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5选选项摘要(详情可参考RFC 2385)。

-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。

-n 不把网络地址转换成名字。

-nn 不进行端口名称的转换。

-N 不输出主机名中的域名部分。例如,‘nic.ddn.mil‘只输出’nic‘。

-t 在输出的每一行不打印时间戳。

-O 不运行分组分组匹配(packet-matching)代码优化程序。

-P 不将网络接口设置成混杂模式。

-q 快速输出。只输出较少的协议信息。

-r 从指定的文件中读取包(这些包一般通过-w选项产生)。

-S 将tcp的序列号以绝对值形式输出,而不是相对值。

-s 从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。

-T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用)和snmp(简单网络管理协议;)。

-t 不在每一行中输出时间戳。

-tt 在每一行中输出非格式化的时间戳。

-ttt 输出本行和前面一行之间的时间差。

-tttt 在每一行中输出由date处理的默认格式的时间戳。

-u 输出未解码的NFS句柄。

-v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。

-vv 输出详细的报文信息。

-w 直接将分组写入文件中,而不是不分析并打印出来。

时间: 2025-01-02 21:33:58

使用tcpdump监控网络消息发送的相关文章

运用Ntop监控网络流量(视频Demo)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://chenguang.blog.51cto.com/350944/1329657 运用Ntop监控网络流量 ____网络流量反映了网络的运行状态,是判别网络运行是否正常的关键数据,在实际的网络中,如果对网络流量控制得不好或发生网络拥塞,将会导致网络吞吐量下降.网络性能降低.通过流量测量不仅能反映网络设备(如路由器.交换机等)的工作是否正常,而且能反映出整个网络运行的资源瓶颈,这样管

Android中判断网络连接是否可用及监控网络状态_Android

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接 复制代码 代码如下: public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConn

《工业控制网络安全技术与实践》一3.3.2 过程控制与监控网络脆弱性分析

3.3.2 过程控制与监控网络脆弱性分析 本文讲的是工业控制网络安全技术与实践一3.3.2 过程控制与监控网络脆弱性分析,过程控制与监控网络中主要部署SCADA 服务器.历史数据库.实时数据库以及人机界面等关键工业控制系统组件.在这个网络中,系统操作人员可以通过HMI 界面.SCADA 系统及其他远程控制设备,对现场控制系统网络中的远程终端单元(RTU).现场总线的控制和采集设备(PLC 或者RTU)的运行状态进行监控.评估.分析:并依据运行状况对PLC 或RTU 进行调整或控制.监控网络负责工

在 Linux/UNIX 终端下使用 nload 实时监控网络流量和带宽使用

如果你想在命令行界面监控网络吞吐量,nload 应用程序是个不错的选择.它是一个实时监控网络流量和带宽使用的控制台应用程序,使用两个图表可视化地展示接收和发送的流量,并提供诸如数据交换总量.最小/最大网络带宽使用量等附加信息. 安装 在 CentOS/RHEL/Red Hat/Fedora Linux 上安装 nload 首先在 CentOS 或者基于 RHEL 的操作系统上启用 EPEL 仓库,然后键入 yum 命令安装 nload: # yum install nload 在 Debian

闲鱼APP消息发送失败解决办法

给各位闲鱼软件的使用者们来详细的解析分享一下消息发送失败问题的解决办法. 办法分享:   闲鱼APP发不了消息怎么办? 首先,消息发送不出去有以下几种可能: 一.先检查一下你是否被对方拉黑,或者是网络条件不好; 二.如果系统提示你:"亲,您的账号异常,请通过PC端登录taobao.com,进入[卖家中心]-[商品管理]-[体检中心]查询违规记录,并按提示进行处理.",那么,请你按照提示进行处理哦; 如果以上方案都不能解决你的问题,那表明你的账号此前在淘宝发不过垃圾信息受到了惩罚,如果你

Android中判断网络连接是否可用及监控网络状态

获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 1)判断是否有网络连接 复制代码 代码如下:public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConne

如何设计一门编程语言(五) 面向对象和消息发送

面向对象这个抽象的特例总是有说不完的话题,更糟糕的是很多语言都错误地实现了面向对象--class居然可以当一个变量类型什么的这只是让人们写代码写的更糟糕而已.当然这个话题第三篇文章已经说过了,现在来谈谈人们喜欢拿来装逼的另一个话题--消息发送. 按照惯例先来点题外话.说到消息发送,有些人喜欢跳出来说,objective-c的消息做得多优雅啊,代码都可以写成一句话[golang screw:you you:suck]之类的.其实这个还做得不够彻底.在几年前易语言曾经火了一阵,但是为什么大家这么讨厌

事件触发器监控网络更智能

"事件查看器"我想大家一定都非常熟悉了,通过事件查看器,我们可以查看服务器中发生的一些重要事件,如应用程序的运行情况.DNS服务器的运行情况,系统的资源调用.网络访问等详细信息.这些信息常常可以成为我们分析问题,解决问题以及发现潜在威胁重要参考资料,可以有效的帮助我们及时的对系统的故障.潜在威胁进行处理,确保服务器的正常运转,保障内部网络的安全.但是,通过事件查看器查看系统相关日志文件,必须是我们网络管理员主动去查看,并且还要细心的审核每一条记录,这样才能清楚的了解发生了什么事件.如果

利用Shell配合绘图工具GnuPlot图形化监控网络流量

网络流量的监控工具有很多,如:Mrtg.Cacti.Zabbix等等,他们都有着各自的特点,不同的侧重,只为适合不同的应用场景的各种特殊需求.除了网络流量监控工具以外,还有Nagios这样的监控主机状态的工具,不仅能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.还能在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知等功能.除此之外Nagios简单地插件设计使得用户可以方便地扩展自己服务的检测方法.也正