用法格式:

  tcpdump [-i 网卡]  [选项]  '表达式'

选项说明如下:

  • -i:interface 监听的网卡。
  • -nn:表示以ip和port的方式显示来源主机和目的主机,而不是用主机名和服务。
  • -A:以ascii的方式显示数据包,抓取web数据时很有用。
  • -X:数据包将会以16进制和ascii的方式显示。
  • 表达式:表达式有很多种,常见的有:host 主机;port 端口;src host 发包主机;dst host 收包主机。多个条件可以用and、or组合,取反可以使用!,更多的使用可以查看man 7 pcap-filter。

举例说明:

监听网卡eth0

$ tcpdump -i eth0

这个方式最简单了,但是用处不多,因为基本上只能看到数据包的信息刷屏,压根看不清,可以使用ctrl+c中断退出,如果真有需求,可以将输出内容重定向到一个文件,这样也更方便查看。

监听指定协议的数据

$ tcpdump -i eth0 -nn 'icmp'

这个是用来监听icmp协议的数据,就是ping命令使用的协议。类似的,如果要监听tcp或者是udp协议,只需要修改上例的icmp就可以了。ping下监听的机器,输出如下:

linux使用tcpdump抓包示例

每一行的各个数据表示的含义:

抓到包的时间 IP 发包的主机和端口 > 接收的主机和端口 数据包内容

监听指定的主机

$ tcpdump -i eth0 -nn 'host 192.168.1.231'

这样的话,192.168.1.231这台主机接收到的包和发送的包都会被抓取。

$ tcpdump -i eth0 -nn 'src host 192.168.1.231'

这样只有192.168.1.231这台主机发送的包才会被抓取。

$ tcpdump -i eth0 -nn 'dst host 192.168.1.231'

这样只有192.168.1.231这台主机接收到的包才会被抓取。

监听指定端口

$ tcpdump -i eth0 -nnA 'port 80'

上例是用来监听主机的80端口收到和发送的所有数据包,结合-A参数,在web开发中,真是非常有用。

监听指定主机和端口

$ tcpdump -i eth0 -nnA 'port 80 and src host 192.168.1.231'

多个条件可以用and,or连接。上例表示监听192.168.1.231主机通过80端口发送的数据包。

监听除某个端口外的其它端口

$ tcpdump -i eth0 -nnA '!port 22'

如果需要排除某个端口或者主机,可以使用“!”符号,上例表示监听非22端口的数据包。

小结:

tcpdump这个功能参数很多,表达式的选项也非常多,非常强大,不过常用的功能确实不多。详情可以通过man查看系统手册。

另外在抓取web包的时候,发送网页内容都是很奇怪的字符,发现是apache开启了gzip压缩的缘故,关闭掉gzip压缩就可以了。在ubuntu 12.04下,编辑vim /etc/apache2/mods-enabled/deflate.load文件,将加载模块deflate_module的语句注释掉,然后重启apache就OK了

小技巧:

可结合tcpdump(命令) + wireshark(图形化)

操作: 

  • 在服务器上进行tcpdump -A -w /tmp/tcp.cap 指定输出外部文件
  • scp /tmp/tcp.cap 拷贝文件到你本地
  • wireshark &  启动wireshark
  • 通过 File -> Open  打开拷贝下来的文件,这样就可以利用进行数据包分析了
  • 剩下来的事就非常方便了

linux-网络数据包抓取-tcpdump的更多相关文章

  1. HTTPS数据包抓取的可行性分析

    HTTPS数据包抓取的可行性分析 相信只要是从事软件开发, 多多少少都会涉及到数据包的抓取.常见的有网页数据抓取(即网页爬虫),应用程序数据包抓取等.网页数据抓取比较简单, 在chrome下可以非常方 ...

  2. 6 wireshark 安装使用 数据包抓取

    1.wireshark安装 2.开始使用 3.界面详情 4. 数据包抓取 5.过滤数据

  3. Linux网络数据包的揭秘以及常见的调优方式总结

    https://mp.weixin.qq.com/s/boRWlx1R7TX0NLuI2sZBfQ 作为业务 SRE,我们所运维的业务,常常以 Linux+TCP/UDP daemon 的形式对外提供 ...

  4. Linux网络 - 数据包的接收过程【转】

    转自:https://segmentfault.com/a/1190000008836467 本文将介绍在Linux系统中,数据包是如何一步一步从网卡传到进程手中的. 如果英文没有问题,强烈建议阅读后 ...

  5. [转]Linux网络 - 数据包的接收过程

    转, 原文: https://segmentfault.com/a/1190000008836467 ------------------------------------------------- ...

  6. [转]Linux网络 - 数据包的发送过程

    转, 原文:https://segmentfault.com/a/1190000008926093 -------------------------------------------------- ...

  7. Linux网络 - 数据包的接收过程(转)

    https://segmentfault.com/a/1190000008836467

  8. LINUX下的远端主机登入 校园网络注册 网络数据包转发和捕获

    第一部分:LINUX 下的远端主机登入和校园网注册 校园网内目的主机远程管理登入程序 本程序为校园网内远程登入,管理功能,该程序分服务器端和客户端两部分:服务器端为remote_server_udp. ...

  9. Android利用tcpdump和wireshark抓取网络数据包

    Android利用tcpdump和wireshark抓取网络数据包 主要介绍如何利用tcpdump抓取andorid手机上网络数据请求,利用Wireshark可以清晰的查看到网络请求的各个过程包括三次 ...

随机推荐

  1. Java数据结构整理(一)

    ava数据结构内容整理关键字: 数据结构 Collection:List.SetMap:HashMap.HashTable如何在它们之间选择一.Array , ArraysJava所有“存储及随机访问 ...

  2. Java动态数组

    其中java动态数组: Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList. ...

  3. Android Studio文件目录介绍

    一.安装的时候并不理解很多东西的用处,只是根据教程来做,所以想整理一下思路: android sdk里的各目录作用: 1.AVD Manager.exe:虚拟机管理工具,用于建立和管理虚拟机. 2.S ...

  4. [转python 父类可以调用子类的方法

    问题描述:我也是在读500 Line 里满的DBDB 的代码时发现的,python的父类可以调用子类的方法,这跟平常习惯的理解方式很不一样,所以就查了下原因,记录如下:   1.现象:最近使用到了So ...

  5. UVa 10827 - Maximum sum on a torus

    题目大意:UVa 108 - Maximum Sum的加强版,求最大子矩阵和,不过矩阵是可以循环的,矩阵到结尾时可以循环到开头.开始听纠结的,想着难道要分情况讨论吗?!就去网上搜,看到可以通过补全进行 ...

  6. 如何让sql自动定时执行某个存储过程

    /*--创建作业--邹建 2003.10--*//*--调用示例--每月执行的作业exec p_createjob @jobname='mm',@sql='select * from syscolum ...

  7. 分享在MVC3.0中使用jQuery DataTable 插件

    前不久在网络上看见一个很不错的jQuery的DataTable表格插件.后来发现在MVC中使用该插件的文章并不多.本文将介绍在MVC3.0如何使用该插件.在介绍该插件之前先简单介绍一下,推荐该插件的原 ...

  8. 使AIX下ksh可以翻查上一条命令

    http://blog.csdn.net/wangjialiang/article/details/7106393 http://www.blogjava.net/03081626/archive/2 ...

  9. Adobe Flash Builder 4.7 新功能详解

    Adobe Flash Builder 4.7 Beta终于公开测试了.虽然版本号只增加了.1,增强的新功能可是一点也不含糊.我们一起来看看到底有什么新功能吧!   在我看来,最大的改变是终于提供64 ...

  10. apache软件包下载地址

    主地址: http://commons.apache.org/proper/commons-loggins/download_logging.cgi 镜像1: http://apache.fayea. ...