根据使用者的定义对网络上的数据包进行截获的包分析工具。tcpdump将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供了and、 or、not等逻

辑语句来帮助过滤不必要的信息;  

  默认情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。
 root@ubuntu:~# tcpdump
tcpdump: WARNING: eth0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size bytes
::27.651478 IP 222.132.16.50.ssh > 101.80.4.77.: Flags [P.], seq :, ack , win , options [nop,nop,TS val ecr ], length
::27.652686 IP 222.132.16.50.ssh > 101.80.4.77.: Flags [P.], seq :, ack , win , options [nop,nop,TS val ecr ], length
::27.654052 IP 222.132.16.50.ssh > 101.80.4.77.: Flags [P.], seq :, ack , win , options [nop,nop,TS val ecr ], length
::27.654312 IP 222.132.16.50.ssh > 101.80.4.77.: Flags [P.], seq :, ack , win , options [nop,nop,TS val ecr ], length
::27.654514 IP 222.132.16.50.ssh > 101.80.4.77.: Flags [P.], seq :, ack , win , options [nop,nop,TS val ecr ], length
::27.654722 IP 222.132.16.50.ssh > 101.80.4.77.: Flags [P.], seq :, ack , win , options [nop,nop,TS val ecr ], length
::27.654886 IP 222.132.16.50.ssh > 101.80.4.77.: Flags [P.], seq :, ack , win , options [nop,nop,TS val ecr ], length

  指定网卡:tcpdump -i   eth1  #-i (interface)

  指定抓取源主机:tcpdump  host  node2  #hostname node2,  该主机名必须在本地硬解析即在/etc/hosts文件存在解析

  指定抓取源ip   :tcpdump   host  10.0.0.1   // tcpdump  -i eth1  host 10.0.0.1

          tcpdump    -i eth1  host  \(10.0.0.53  or 222.16.232.50\)

  抓取回发给某ip的包:tcpdump -i eth1  dst host 10.0.0.53  //dst 即destination,目的地

  抓取来源于某ip的包:tcpdump -i eth1  src host 10.0.0.53  //src 即source,  源头

  指定端口: tcpdump  -i  eth1  port 23 host 10.0.0.53  

  参数说明:

      -n : 不要使用通讯协定或主机名称,直接使用IP 或 port number

      -ee:使用更详细的资讯来显示

     增加(add)与删除(del)路由的相关参数:

      -net :表示后面接的路由为一个网域;

      -host:表示后面接的为连接到单步主机的路由;

      netmask:与网域有关,netmask决定网域的大小;

      gw:  gateway的简写,后续接的是ip值;

      dev  :如果只是要指定那块网卡连接出去,则使用这个设定; 后面接eth0、eth1等;

下面的例子全是以抓取eth0接口为例,如果不加”-i eth0”是表示抓取所有的接口包括lo。
 
1、抓取包含10.10.10.122的数据包 
# tcpdump -i eth0 -vnn host 10.10.10.122
 
2、抓取包含10.10.10.0/24网段的数据包
# tcpdump -i eth0 -vnn net 10.10.10.0/24
 
3、抓取包含端口22的数据包
# tcpdump -i eth0 -vnn port 22 
 
4、抓取udp协议的数据包
# tcpdump -i eth0 -vnn  udp
 
5、抓取icmp协议的数据包
# tcpdump -i eth0 -vnn icmp
6、抓取arp协议的数据包
# tcpdump -i eth0 -vnn arp
 
7、抓取ip协议的数据包
# tcpdump -i eth0 -vnn ip
 
8、抓取源ip是10.10.10.122数据包。
# tcpdump -i eth0 -vnn src host 10.10.10.122
 
9、抓取目的ip是10.10.10.122数据包
# tcpdump -i eth0 -vnn dst host 10.10.10.122
 
10、抓取源端口是22的数据包
# tcpdump -i eth0 -vnn src port 22
 
11、抓取源ip是10.10.10.253且目的ip是22的数据包
# tcpdump -i eth0 -vnn src host 10.10.10.253 and dst port 22
                 
12、抓取源ip是10.10.10.122或者包含端口是22的数据包
# tcpdump -i eth0 -vnn src host 10.10.10.122 or port 22
 
13、抓取源ip是10.10.10.122且端口不是22的数据包
[root@ ftp]# tcpdump -i eth0 -vnn src host 10.10.10.122 and not port 22
14、抓取源ip是10.10.10.2且目的端口是22,或源ip是10.10.10.65且目的端口是80的数据包。
# tcpdump -i eth0 -vnn \( src host 10.10.10.2 and dst port 22 \) or   \( src host 10.10.10.65 and dst port 80 \)
 
15、抓取源ip是10.10.10.59且目的端口是22,或源ip是10.10.10.68且目的端口是80的数据包。
[root@localhost ~]# tcpdump -i  eth0 -vnn 'src host 10.10.10.59 and dst port 22' or  ' src host 10.10.10.68 and dst port 80 '
 
16、把抓取的数据包记录存到/tmp/fill文件中,当抓取100个数据包后就退出程序。
# tcpdump –i eth0 -vnn -w  /tmp/fil1 -c 100
 
17、从/tmp/fill记录中读取tcp协议的数据包
# tcpdump –i eth0 -vnn -r  /tmp/fil1 tcp
 
18、从/tmp/fill记录中读取包含10.10.10.58的数据包
# tcpdump –i eth0 -vnn -r  /tmp/fil1 host  10.10.10.58
 

Linux下tcpdump用法的更多相关文章

  1. linux下automake用法

    linux下automake用法 2017年02月06日 09:21:14 阅读数:3684 标签: makemakefilegnulinux   作为Linux下的程序开发人员,大家一定都遇到过Ma ...

  2. linux下tcpdump命令详解

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  3. linux下tar用法

    以下是linux下tar的用法,转一下,以便方便自己看(这里没把rar,zip类的转过来,一般rar,zip在linux下基本没人用,基本上是zip,unzip,rar,unrar,这些命令,并且ra ...

  4. linux下scp用法

    scp 对拷文件夹 和 文件夹下的所有文件 对拷文件并重命名 对拷文件夹 (包括文件夹本身) scp -r   /home/wwwroot/www/charts/util root@192.168.1 ...

  5. Linux下Tcpdump使用

    1. 介绍 tcpdump是一款用来截取网络数据的工具:这里主要介绍的是为嵌入式Linux编译tcpdump的方法 2. 编译 首先去官网下载源代码, 需要下载tcpdump和libpcap, 将他们 ...

  6. linux下svn用法

    linux下svn的一些常用命令: checkout代码到当前目录: svn co svn://192.168.22.23/project  ./ swich 切换分支: 先查看当前工作副本:svn ...

  7. linux下rename用法--批量重命名

    Linux的rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Linux发行版基本上使用的是C语言版本的,现在已经很难见到C语言版本的了, 由于历史原因,在Perl语言 ...

  8. linux下tcpdump命令的使用

    一般情况下linux系统会自带tcpdump工具,如果系统没有安装,直接用命令安装就行了. 安装命令:yum install -y tcpdump 查看安装版本命令:tcpdump --help 查看 ...

  9. linux下rename用法--批量重命名 转

    原文地址:https://www.cnblogs.com/hester/p/5615871.html Linux的rename 命令有两个版本,一个是C语言版本的,一个是Perl语言版本的,早期的Li ...

随机推荐

  1. [html5] canvas 绘图:八卦图

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. hibernate的常用配置

    hibernate.cfg.xml的一些相关配置 <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Co ...

  3. packstack安装以及centos源配置注意事项

    On CentOS:安装分为四步: 1,$ sudo yum install -y centos-release-openstack-mitaka 2,$ sudo yum update -y 3,$ ...

  4. CentOS6.5安装Python2.7和Pip

    注:文中所写的安装过程均在CentOS6.5 x86下通过测试,安装的Python版本为2.7.12,Pip版本为8.1.2 主要参考博文:http://bicofino.io/2014/01/16/ ...

  5. Python web框架有哪些

    简单易学的web.py, 大型的django:文档最完善.市场占有率最高.招聘职位最多. Tornado 具体看:http://feilong.me/2011/01/talk-about-python ...

  6. COM组件

    COM组件   COM component(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术.在COM构架下,人们可以开发出各种各样的功能专一的组件,然后 ...

  7. android面试题之一

    在接下来的一段时间,我将收集一些常见面试题,综合网上资料加自己测试与理解,将其总结出来和大家分享,里面难免有一些问题,希望大家提出宝贵意见以便及时更正. 一.Activity.Service.Broa ...

  8. [Unity 3D] Unity 3D 里的碰撞检测

    Unity 3D里两个碰撞体之间发生碰撞可以用OnCollision族函数和OnTrigger族函数来获知和处理.Unity官方给出了两张可发生碰撞的组合表: Collision detection ...

  9. Unity Notes调制粒子系统的颗粒的最大数目

    Unity该粒子系统是很容易使用.这样的问题是在实际的过程中遇到的:以控制的粒子系统组件的动态需要可产生颗粒的最大数目. 看doc他说,有maxParticles控制.却没有这个开放的參数.仅仅能通过 ...

  10. 【组队赛三】-C cf448B

    Suffix Structures Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit S ...