Linux系统抓包命令tcpdump使用实例

2016-03-31 15:56 93 1 收藏

下面是个简单易学的Linux系统抓包命令tcpdump使用实例教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - 服务器 】

Linux系统抓包命令tcpdump使用实例

   tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04。

  tcpdump的命令格式

  tcpdump的参数众多,通过man tcpdump可以查看tcpdump的详细说明,这边只列一些笔者自己常用的参数:

  tcpdump [-i 网卡] -nnAX '表达式'

  各参数说明如下:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

  -i:interface 监听的网卡。

  -nn:表示以ip和port的方式显示来源主机和目的主机,而不是用主机名和服务。

  -A:以ascii的方式显示数据包,抓取web数据时很有用。

  -X:数据包将会以16进制和ascii的方式显示。

  表达式:表达式有很多种,常见的有:host 主机;port 端口;src host 发包主机;dst host 收包主机。多个条件可以用and、or组合,取反可以使用!,更多的使用可以查看man 7 pcap-filter。

  下面进行一些命令测试,如果没有权限,可以先切换成root用户。

  监听网卡eth0

  $ tcpdump -i eth0

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/fuwuqi/)

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

  监听指定协议的数据

  $ tcpdump -i eth0 -nn 'icmp'

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

Linux系统抓包命令tcpdump使用实例 图老师

  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了。

来源:http://www.tulaoshi.com/n/20160331/2051501.html

延伸阅读
标签: 电脑入门
今天图老师小编给大家分享下Linux系统命令大全,包含了所有经典、常用的命令,比如关机重启命令,磁盘管理命令等,菜鸟入门必备。 本节内容: Linux常用命令大全 1,系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS /...
标签: 电脑入门
Linux系统中crond主要用于设置周期性被执行的指令,比如定期清理日志等工作就非常适合使用crond命令,下面下班就给大家介绍下Linux下crond命令的使用方法,一起来学习下吧。 一、crond简介 概念 crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中。该命令从标准输入设备读取指令,并将其存放...
级别: 中级 M. Tim Jones (mtj@mtjones.com), 顾问工程师, Emulex 2007 年 4 月 17 日      Linux® 系统调用 —— 我们每天都在使用它们。不过您清楚系统调用是如何在用户空间和内核之间执行的吗?本文将探究 Linux 系统调用接口(SCI),学习如何添加新的系统调用(以及实现这种功能的其他方法),并介绍与 SCI ...
标签: 服务器
Linux系统中df命令的一些使用实例整理汇总   df 即可用磁盘disk free,用于显示文件系统的磁盘使用情况。默认情况下 df 命令将以每块 1K 的单位进行显示所有当前已挂载的文件系统,如果你想以人类易读的格式显示 df 命令的输出,像这样df -h使用 -h 选项。 在这篇文章中,我们将讨论 df 命令在 Linux 下11种不同的实例。 ...
标签: 服务器
Linux系统下wget命令的使用教程   一、Linux wget简介 wget是linux上的命令行的下载工具。这是一个GPL许可证下的自由软件。Linux wget支持HTTP和FTP协议,支持代理服务器和断点续传功能,能够自动递归远程主机的目录,找到合乎条件的文件并将其下载到本地硬盘上;如果必要,Linux wget将恰当地转换页面中的超级连接以在本地生成...

经验教程

929

收藏

10
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部