tcpdump常用参数详解

                                                作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

  好久没有更新我的博客了,看来自己最近还没有在放假中回过神来啊,哈哈~是不是也有小伙伴跟我一样呢?回归正题,来学习我们今天的Linux命令!这个命令在我们的工作中用的频率虽然不是太高,但是作为一个运维人员,一个复合型人才对这个命令还是必须了解一点的哟!

  tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。 
  tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

一.数据链路层头信息 

[root@yinzhengjie ~]# tcpdump -e host 192.168.2.45 | grep "00:0c:29:d4:db:87"

抓取zabbix服务器的数据包,过滤掉有关本机IP的数据包:(192.168.2.45是zabbix服务器,后面的mac地址是本机的的mac)

二.ARP包的tcpdump输出信息 

[root@yinzhengjie ~]# tcpdump arp | grep -v "ARP, Request who-has bogon tell bogon, length 46"

过滤掉无用的信息

三.抓取2个主机之间的数据包

[root@yinzhengjie ~]# tcpdump host 192.168.2.45  and 172.30.1.2 or 172.30.1.60

在这里我截获的是zabbix服务器(192.168.2.45)与其中2个agent主机的数据(172.30.1.2,172.30.1.60),下图是部分数据截图:

四.想要截获一台主机除了某个IP的数据包信息

[root@yinzhengjie ~]# tcpdump host 192.168.2.45   and ! 172.30.1.2

这里截获了zabbix服务器(192.168.2.45),除了172.30.1.2的所有数据包信息

五.截获某台机器的ssh服务链接信息,并且不转换主机名

[root@yinzhengjie ~]# tcpdump -nn -n src host 192.168.2.45 and port 22 and tcp

我这里是截获的zabbix服务器的ssh服务信息,先敲击这个命令,然后在去链接,就会出现以下信息。(我的宿主机IP是172.30.1.2)

当然,上面只是能看到IP,如果你还想看到这些IP所对应的MAC也是可以的哟

[root@yinzhengjie ~]# tcpdump -e src host 192.168.2.45 and port 22 and tcp -n -nn

六.过滤源主机和指定的目的主机的信息

[root@yinzhengjie ~]# tcpdump src host 192.168.2.45 and dst net 172.30.1.0/24

这里是过滤源主机是192.168.2.45到目的网络(172.30.1.0/24)的数据包.

七.过滤源物理地址的数据包信息(不能跟IP,仅仅支持MAC哟)

[root@yinzhengjie ~]# tcpdump ether src 00:0C:29:D4:DB:87

八.过滤源主机和目的端口不是telnet的报头,并导入到tes.t.txt文件中:

[root@yinzhengjie ~]# tcpdump src host 192.168.2.45 and dst port not telnet -l > test.txt

我这里过滤的是192.168.2.45而且目的端口不是telnet的报文哟

九.抓取本地回环网卡信息

十.抓取ICMP数据包

[root@yinzhengjie ~]#  tcpdump  -nnn -s 10000 | grep -i icmp
 

其他常用参数:

-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 直接将分组写入文件中,而不是不分析并打印出来。

参考链接一:http://www.cnblogs.com/zhuimengle/p/5737848.html

参考链接二:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

tcpdump常用参数详解的更多相关文章

  1. chattr的常用参数详解

    chattr的常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际生产环境中,有的运维工程师不得不和开发和测试打交道,在我们公司最常见的就是部署接口.每天每个人部署的 ...

  2. find常用参数详解

    find常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux系统中,在init 3模式情况下都是命令行模式,这个时候我们想要找到一个文件的就得依赖一个非常好用的 ...

  3. cat常用参数详解

    cat常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近,我的一个朋友对linux特别感兴趣,于是我觉得每天交给他一个命令的使用,这样一个月下来也会使用30个命令,基 ...

  4. rsync常用参数详解

    rsync常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux中,一切皆是文件,包括你的终端,硬件设备信息,目录,内核文件等等.所以工作中我们难免会遇到拷贝文件 ...

  5. Nginx核心配置文件常用参数详解

    Nginx核心配置文件常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于Nginx权威文档的话童鞋们可以参考Nginx官方文档介绍:http://nginx.org/ ...

  6. nmap常用参数详解

    nmap常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 借用英雄联盟的一个英雄赵信的一句话:“即使敌众我寡,末将亦能万军丛中取敌将首级!”.三国关羽,万军丛中斩了颜良, ...

  7. free命令常用参数详解

    free命令常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在运维期间我们会经常去查看服务器硬件信息,比如说内存,大家可能知道看内存用“[root@yinzhengji ...

  8. DB2创建数据库常用参数详解

    转自http://czmmiao.iteye.com/blog/1335801 DB2创建数据库常用参数详解 本文只介绍DB2 create database语法中的常用参数http://publib ...

  9. Oracle GoldenGate常用参数详解

    Oracle GoldenGate常用参数详解http://blog.itpub.net/28389881/viewspace-2564461/

随机推荐

  1. git心得与总结

    任何文件在Git库中都有四种状态:未跟踪状态untracked.跟踪状态tracked(未修改状态unmodified.已修改状态modified.暂存状态staged),由于文件的上述四种状态,在使 ...

  2. 软件工程项目之摄影App

    摄影app 开发人员:Ives & Dyh 开发功能: 摄影师注册与认证,为年轻摄影师提供成长的空间,发挥一技之长的平台. 用户注册与验证,为有摄影需求的人提供选择摄影师进行个性化拍摄的平台. ...

  3. beta 答辩总结

    评审表 编号 团队名称 项目名称 格式 内容 PPT 演讲 答辩 总分/100 1 天机组 指尖加密 14 13 13 13 13 66 2 PMS Your eyes 14 14 17 14 15 ...

  4. 『编程题全队』Beta 阶段冲刺博客一

    1.提供当天站立式会议照片一张 2.每个人的工作 (有work item 的ID) (1) 昨天已完成的工作 孙志威: 1.讨论并制定了Beta阶段的计划 孙慧君: 1.Beta阶段任务的认领 黄华林 ...

  5. yii框架通过IP地址来使用gii

    这里使用的YII框架的版本是2.0.13 详情请参考官方文档:用Gii生成代码 使用gii的主要步骤 1.生成模型(Model Generator) 2.生成CRUD代码 注意点 1.在生成CURD代 ...

  6. #Leetcode# 977. Squares of a Sorted Array

    https://leetcode.com/problems/squares-of-a-sorted-array/ Given an array of integers A sorted in non- ...

  7. Java 编码规范 StandardCharsets.UTF_8 三个方法 toString() name() displayName(),到底用哪个方法更合适?

    想用StandardCharsets.UTF_8 返回"UTF-8"这个字符,测试一下,三个方法toString() name() displayName(),均能返回" ...

  8. PLSQL 使用ODBC 数据源导入来自SQLSERVER的数据

    1. 创建ODBC数据源 方法: 打开控制命令 Win10 运行->输入 control 查看方式大图标--选择 管理工具 2. 安装了 64位的plsql 应该也选用 64位的ODBC数据源 ...

  9. [转帖] cnblog新闻区 “40岁以上的员工,请自觉离开”

    “40岁以上的员工,请自觉离开” 投递人 itwriter 发布于 2018-04-29 22:36 评论(9) 有2733人阅读 原文链接 [收藏] « » “准确地说,华为目前要裁掉的.清退的,是 ...

  10. Hive三种安装模式