tcpdump command
工作中一直在用tcpdump,感觉非常方便,今天心血来潮百度了一下tcpdump的用法,才发现原来还有这么多强大的功能自己都不知道,那叫一个汗啊。
以此文作为备份,记录一些新知道的用法,各位网友谁有新的用法,也可以及时告知我进行补充,一起丰富,哈哈!
废话不多说,切入正题。命令及解释用红色字体,命令所需参数的参数值用斜体标示。
先来看一个比较基本的用法:
tcpdump -i eth0
其中,eth0为参数值,表示需要抓包的网口,这是个必需参数哦。
tcpdump支持很多的关键字,下面先看几个例子:
(例1)tcpdump -i eth0 host 192.168.0.250 -----在网口eth0上抓取主机地址为192.168.0.250的所有数据包。
(例2)tcpdump -i eth0 net 192.168.0.0/24 ------ 在网口eth0上抓取网络地址为192.168.0.0/24的所有数据包
(例3)tcpdump -i eth0 port 80 ------ 在网口eth0上抓取端口为80的所有数据包(注意,这里不区分是源端口还是目的端口)
当然,我们也可以指定源端口或目的端口
(例4)tcpdump -i eth0 src port 80 and dst port6100 --- 在网口eth0上抓取源端口为80且目的端口为6100的数据包,这里用到了and逻辑运算符,后面再介绍
(例5)tcpdump -i eth0 icmp --- 在网口eth0上抓取所有icmp协议的数据包
以上几个例子,可以大致体现出tcpdump的基本用法。
实际上,tcpdump主要包括三种类型的关键字,第一种是关于类型的关键字,主要包括host,net,port,如上面的例(1)(2)(3),第二种
是确定传输方向的关键字,主要包括src,dst,src or dst,src and dst,这些关键字指明了传输的方向,如上面的例(4)。第三种是协议关键字,包括fddi,ip,arp,
rarp,tcp,udp,imcp等,如上面的例(5)。
除了这三种类型的关键字外,还有其他重要的关键字,如:gateway,broadcast,less,greater,还有三种逻辑运算,取非运算是'not'、'!',与运算符是'and'、'&&'、
或运算符是'or'、'||',这些关键字可以组合起来构成强大的组合条件来满足我们的需求。
先看看tcpdump的具体参数及意义:
-i:指定tcpdump监听的网络接口
-s:指定要监听数据包的长度
-c:指定要监听的数据包数量,达到指定数量后自动停止抓包
-w:指定将监听到的数据包写入文件中保存
-A:指定将每个监听到的数据包以ACSII可见字符打印
-n:指定将每个监听到数据包中的域名转换成IP地址后显示
-nn:指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示
-e:指定将监听到的数据包链路层的信息打印出来,包括源mac和目的mac,以及网络层的协议
-p:将网卡设置为非混杂模式,不能与host或broadcast一起使用
-r:指定从某个文件中读取数据包
-S:指定打印每个监听到的数据包的TCP绝对序列号而非相对序列号
OK,参数介绍先到这里,下面看几个具体例子
tcpdump -i eth0 -s 1400 -nn host 192.168.0.250 and ! 192.168.0.74 and icmp -e
抓取网口eth0上192.168.0.250与除192.168.0.74外的其他主机之间的icmp报文
tcpdump -i eth0 -s 1400 -nn tcp and \(host 192.168.0.250 and ! 192.168.0.74\)
抓取网口eth0上192.168.0.250与除192.168.0.74外的所有tcp数据包,这里用到了括号,注意,在tcpdump中使用括号时必须用转义。
tcpdump -i eth0 ether src or dst 00:21:85:6C
9:A3
抓取网口eth0上源mac地址或目的mac地址为00:21:85:6C
9:A3的所有数据包,注意,这里的mac地址格式必须以':'分隔。
tcpdump command的更多相关文章
- TCPDUMP Command Examples
tcpdump command is also called as packet analyzer. tcpdump command will work on most flavors of unix ...
- [转] Android利用tcpdump抓包
原文链接:http://mysuperbaby.iteye.com/blog/902201 Android利用tcpdump抓包 博客分类: Android AndroidAccessGoHTML ...
- Tcpdump使用常用9实例
以下将给出9个使用tcpdump的例子,以说明tcpdump的具体使用方法. 1.针对特定网口抓包(-i选项) 当我们不加任何选项执行tcpdump时,tcpdump将抓取通过所有网口的包:使用-i选 ...
- 18 Command Line Tools to Monitor Linux Performance
By Ravi Saive Under: Linux Commands, Monitoring Tools On: December 26, 2013 http://www.tecmint.com/c ...
- 9个tcpdump使用实例
tcpdump能帮助我们捕捉并保存网络包,保存下来的网络包可用于分析网络负载情况,包可通过tcpdump命令解析,也可以保存成后缀为pcap的文件,使用wireshark等软件进行查看. 以下将给出9 ...
- UNIX系统上的抓包工具tcpdump常用命令说明
tcpdump 介绍 tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上. 不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才 ...
- Linux namespace技术应用实践--调用宿主机命令(tcpdump/ip/ps/top)检查docker容器网络、进程状态
背景 最近偶然听了几堂极客时间的云原生免费公开课程,首次接触到了Linux namespace技术,并了解到这正是现在风头正劲的容器技术基石,引起了自己探究一二的兴趣,结合课程+网络搜索+实践操作,也 ...
- Android手机流量分析工具介绍
一.20 Best Android Hacking Apps And Tools Of 2018 首先罗列常见的Android手机hacking的工具 #1The Android Network Ha ...
- fgt2eth Script
fgt2eth Script explanation_on_how_to_packet_capture_for_only_certain_TCP_flags_v2.txt Packet capture ...
随机推荐
- EXCEL匹配结果match并跳转链接hyperlink
1,有时候想要搜索另一个表格中含有相同内容的项,然后跳转到搜索结果单元. 需要用到两个函数,MATCH和HYPERLINK 2,A表格如下 B表格如下 3,在B2单元格中输入函数 =HYPERLINK ...
- JavaScript 开发者的 10 款必备工具
JavaScript,一种所有主流浏览器都支持的语言,是开发基于浏览器的 Web 应用程序的主力,几乎每年都会受到来自众多开发人员的关注.自然地,框架和库的生态系统自然而然地围绕着 JavaScrip ...
- JDK7集合框架源码阅读(四) LinkedHashMap
基于版本jdk1.7.0_80 java.util.LinkedHashMap 代码如下 /* * Copyright (c) 2000, 2010, Oracle and/or its affili ...
- Hadoop打包成jar包在集群上运行时出现的各种问题以及解决方案
之前将eclipse下编好的mapreduce代码放到集群上面跑,发现速度很慢,namenode节点的cpu和内存使用率很低,datanode节点基本上处于没有运行的状态,然后通过查看hadoop-e ...
- 使用gtest自动化测试并给出性能测试结果(windows 版本,版本平台也可以使用,但并没有做完整的测试)
/************************************************************* *使用gtest自动化测试 * ********************* ...
- hdu 1015 Safecracker 水题一枚
题目链接:HDU - 1015 === Op tech briefing, 2002/11/02 06:42 CST === "The item is locked in a Klein s ...
- linux coreseek-4.1安装
1.假设已经有coreseek-4.1-beta.tar.gz源文件 [root@qp232 ~]# cd /usr/local [root@qp232 local]# tar -zxvf /yd/l ...
- 解魔方的机器人攻略15 – 安装 Eclipse
由 动力老男孩 发表于 2009/12/27 17:40:49 在远古时代,程序员们通常用写字板来编写Java程序,然后用Javac.exe和Java.exe来编译和执行.对于NXT来说,对应的命令是 ...
- Android 版 Facebook 登录
Android 版 Facebook SDK 让用户可以通过 Facebook 登录注册您的应用.通过 Facebook 登录您的应用时,用户可以向应用授予权限,以便您可以检索信息或以用户的身份在 F ...
- VUE -- JSONP的诞生、原理及应用实例
问题: 页面中有一个按钮,点击之后会更新网页中的一个盒子的内容. Ajax可以很容易的满足这种无须刷新整个页面就可以实现数据变换的需求. 但是,Ajax有一个缺点,就是他不允许跨域请求资源. 如果我的 ...