Ubuntu默认是安装好了tcpdump工具的,如果没有安装的话使用sudo apt-get install tcpdump即可安装。
   (如果遇到tcpdump: no suitable device found的问题,检查一下是不是在用root权限运行tcpdump,tcpdump只能在root权限下工作)

  安装好tcpdump之后,运行tcpdump:

  1. tcpdump -D 获取网络适配器列表,以下是在Ubuntu上获取到的结果:
  root@holmesian-laptop:~# tcpdump -D

1.eth0
2.eth1
3.usbmon1 (USB bus number 1)
4.eth2
5.usbmon2 (USB bus number 2)
6.any (Pseudo-device that captures on all interfaces)
7.lo

  2. tcpdump -i <需要监控的网络适配器编号>,例如我想监控我的无线网卡eth0,则使用tcpdump -i 1。
  root@holmesian-laptop:~# tcpdump -i 2

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
20:39:23.081636 ARP, Request who-has 192.168.4.10 tell 192.168.4.253, length 46
20:39:23.082586 IP botnet-virtual-machine.local.65387 > dec3000.xjtu.edu.cn.domain: 44290+ PTR? 10.4.168.192.in-addr.arpa. (43)
20:39:23.082965 IP botnet-virtual-machine.local.65387 > ns2.xjtu.edu.cn.domain: 44290+ PTR? 10.4.168.192.in-addr.arpa. (43)
20:39:23.083228 IP botnet-virtual-machine.local.65387 > dec3000.xjtu.edu.cn.domain: 44290+ PTR? 10.4.168.192.in-addr.arpa. (43)
20:39:23.083484 IP botnet-virtual-machine.local.65387 > ns2.xjtu.edu.cn.domain: 44290+ PTR? 10.4.168.192.in-addr.arpa. (43)
20:39:23.083734 IP botnet-virtual-machine.local.65387 > dec3000.xjtu.edu.cn.domain: 44290+ PTR? 10.4.168.192.in-addr.arpa. (43)
20:39:23.083988 IP dec3000.xjtu.edu.cn.domain > botnet-virtual-machine.local.65387: 44290 NXDomain* 0/1/0 (78)
20:39:23.084231 IP dec3000.xjtu.edu.cn.domain > botnet-virtual-machine.local.65387: 44290 NXDomain* 0/1/0 (78)

  如果不使用-i来定义监控适配器的话,默认使用列表中的第一个;

  3. 使用无线网卡wlan0监控IP地址为172.16.86.111上443端口的tcp协议:
  tcpdump -i 2 host 172.16.86.111 and tcp port 443

  4. 如果想要显示数据包的内容,需要使用-X参数,如,我想要显示捕获的https数据包http header的内容:
  tcpdump -X -i 2 host 172.16.86.111 and tcp port 443

  显示结果如下:
  21:27:53.662741 IP holmesian-laptop.local.44239 > 172.16.86.111.https: Flags [S], seq 24296623, win 5840, options [mss 1460,sackOK,TS val 153804 ecr 0,nop,wscale 6], length 0
  0x0000: 4500 003c e463 4000 4006 514a ac10 567e E..<.c@.@.QJ..V~
  0x0010: ac10 566f accf 01bb 0172 bcaf 0000 0000 ..Vo.....r......
  0x0020: a002 16d0 66a8 0000 0204 05b4 0402 080a ....f...........
  0x0030: 0002 58cc 0000 0000 0103 0306 ..X.........
  21:27:56.660488 IP holmesian-laptop.local.44239 > 172.16.86.111.https: Flags [S], seq 24296623, win 5840, options [mss 1460,sackOK,TS val 154554 ecr 0,nop,wscale 6], length 0
  0x0000: 4500 003c e464 4000 4006 5149 ac10 567e E..<.d@.@.QI..V~
  0x0010: ac10 566f accf 01bb 0172 bcaf 0000 0000 ..Vo.....r......
  0x0020: a002 16d0 63ba 0000 0204 05b4 0402 080a ....c...........
  0x0030: 0002 5bba 0000 0000 0103 0306 ..[.........

.c
    可以看到该结果只显示了https头的一部分,没有显示全,是因为tcpdump默认将显示的数据长度截断了,可以使用-s后面加数据长度,来设置数据显示长度:
  tcpdump -X -s 0 -i 2 host 172.16.86.111 and tcp port 443

  以上的例子中,-s 0 表示自动设置长度使其能够显示所有数据。

  5. 捕获的数据太多,不断刷屏,可能需要将数据内容记录到文件里,需要使用-w参数:
  tcpdump -X -s 0 -w aaa host 192.9.200.59 and tcp port 8000
  则将之前显示在屏幕中的内容,写入tcpdump可执行文件同级目录下的aaa文件中。
  文件查看方式如下,需要使用-r参数:
  tcpdump -X -s 0 -i 2 -r holmesian host 172.16.86.111 and tcp port 443

  如果这样写:
  tcpdump -r holmesian
  则只能看到最简单的数据传输交互过程,看不到数据包内容,查看时也需要使用相应的参数。

  6.总结
  总结一下,tcpdump的参数分两个部分,选项(Options)和表达式(expression):
  root@holmesian-laptop:~# tcpdump -h

  tcpdump version 4.0.0
  libpcap version 1.0.0
  Usage: tcpdump [-aAdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
  [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
  [ -i interface ] [ -M secret ] [ -r file ]
  [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ]
  [ -y datalinktype ] [ -z command ] [ -Z user ]
  [ expression ]

ubuntu下tcpdump使用的更多相关文章

  1. ubuntu 下wireshark 软件安装与使用

    在ubuntu下,使用wireshark也是很有必要的.虽然可以使用tcpdump等工具. ubuntu:11.10     1. sudo apt-get install wireshark     ...

  2. Ubuntu安装Tcpdump

    参考:ubuntu下安装Tcpdump并使用 请先安装libpcap等,可以参照上文链接. 安装: 网址:http://www.tcpdump.org/ 解压: tar -zxvf tcpdump-4 ...

  3. snort简介以及在Ubuntu下的安装

    一.简介 Snort是一套开放源代码的网络入侵预防软件与网络入侵检测软件.Snort使用了以侦测签章(signature-based)与通信协议的侦测方法.Snort是一个免费的IDS(入侵监测系统) ...

  4. ubuntu下sudo命令不再输入密码

    ubuntu下普通用户是没有root权限,很多命令在使用时都需要使用命令sudo 'cmd',但系统需要user验证自己,即需要输入普通用户的密码.但普通用户是否有执行该cmd的权限,需要到系统文件/ ...

  5. 在Ubuntu下搭建ASP.NET 5开发环境

    在Ubuntu下搭建ASP.NET 5开发环境 0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要做成 ...

  6. 在Ubuntu下搭建Spark群集

    在前一篇文章中,我们已经搭建好了Hadoop的群集,接下来,我们就是需要基于这个Hadoop群集,搭建Spark的群集.由于前面已经做了大量的工作,所以接下来搭建Spark会简单很多. 首先打开三个虚 ...

  7. Ubuntu下开启php调试模式,显示报错信息

    在Ubuntu下php的缺省设置是不显示错误信息的,如果程序出错会显示“无法处理此请求的错误提示”,这在开发环境下非常不方便. 其实我们只要编辑下apache的配置文件就好 1.我的apache 配置 ...

  8. 在Ubuntu下安装ovs-dpdk

    在Ubuntu下安装ovs-dpdk 参考资料:https://software.intel.com/zh-cn/articles/using-open-vswitch-with-dpdk-on-ub ...

  9. Ubuntu 下安装QT

    Ubuntu 下安装QT 本文使用的环境 QT Library: qt-everywhere-opensource-src-4.7.4.tar.gz QT Creator: qt-creator-li ...

随机推荐

  1. 解析XML【C#】

     1.XML元素XML元素包含一个开标记.元素中的数据.闭标记例如:<book>book name</book>其中book是元素名称  book name是元素数据元素名称区 ...

  2. Hadoop--Hadoop的机架感知

    Hadoop的机架感知 Hadoop有一个“机架感知”特性.管理员可以手工定义每个slave数据节点的机架号.为什么要做这么麻烦的事情?有两个原因:防止数据丢失和提高网络性能.     为了防止数据丢 ...

  3. rails跑通第一个demo

    rails -h 查看帮助 Usage: rails new APP_PATH [options] Options: -r, [--ruby=PATH] # Path to the Ruby bina ...

  4. 非自定义和自定义Dialog的介绍!!!

    一.非自定义Dialog的几种形式介绍 转自:http://www.kwstu.com/ArticleView/kwstu_20139682354515 前言 对话框对于应用也是必不可少的一个组件,在 ...

  5. Java的Git管理工具Gitblit

    From:http://www.oschina.net/p/gitblit Gitblit 是一个纯 Java 库用来管理.查看和处理 Git 资料库.相当于 Git 的 Java 管理工具. 下载地 ...

  6. 【数据结构(ywm版)】异或指针双向链表

    在<数据结构题集>中看到这种链表,实际上就是把一般的双向链表的next和prior两个指针通过异或运算合并为一个指针域来存储,每个结点确实可以减少一个指针的空间,但会带来取指针值时运算的开 ...

  7. 十分钟让你明白Objective-C的语法(和Java、C++的对比)

    很多想开发iOS,或者正在开发iOS的程序员以前都做过Java或者C++,当第一次看到Objective-C的代码时都会头 疼,Objective-C的代码在语法上和Java, C++有着很大的区别, ...

  8. Error in invoking target 'agent nmhs' of makefile

    安装Oracle11g报错:Error in invoking target 'agent nmhs' of makefile  解决方法:cd $ORACLE_HOME/sysman/libvi i ...

  9. .net程序员转战android第二篇---牛刀小试

    上篇说道如何搭建android的开发环境,这一篇我们将牛刀小试一下, 完成我们第一个android APP应用. 我就从新建项目说起吧. 首先打开Eclipse,选择顶部的File(文件)——new( ...

  10. Android环境开发搭建

    今天第一次接触安卓,从开发环境的配置到程序的运行,足足搞了一天,也没有整出来. 1.安装JDK 在JDK官网上下载了最新的JDK,安装成功后进行环境的配置.JAVA_HOME:C:\Program F ...