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:6C9:A3
抓取网口eth0上源mac地址或目的mac地址为00:21:85:6C9: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 ...
随机推荐
- Codeforces Round #270 A. Design Tutorial: Learn from Math【数论/埃氏筛法】
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- Python的网络编程[0] -> socket[0] -> socket 与 TCP / UDP
Socket socket 简述 / socket Abstract 网络进程通信与 socket 网络中进程之间如何通信,首要解决的问题是如何唯一标识一个进程,否则通信无从谈起.在本地可以通过进程 ...
- MySql笔记之修改数据库编码
修改前(系统默认编码) 查看编码命令: show variables like '%char%'; show variables like 'character%'; 两种方法 a) 暂时性修改 SE ...
- SQL常用语句|创建表,设置主键......
新建表 create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default \'默认值\' nu ...
- linux之网络配置相关
ubuntu的网络配置文件在 /etc/network/intrfaces; suse的网络配置在 /etc/sysconfig/network/下面,每个网卡一个配置文件. int ...
- Java 并发工具包 java.util.concurrent 用户指南(转)
本文转自http://blog.csdn.net/defonds/article/details/44021605/ 感谢作者 1. java.util.concurrent - Java 并发工具包 ...
- dxFlowChart运行时调出编辑器
dxFlowChart运行时调出编辑器 uses dxFcEdit; procedure TForm1.Button1Click(Sender: TObject);var f: TFChartEdit ...
- 由jtable浅谈vector<vector<Object>>的用法(转自a718515028的专栏)
以前只用过vector<Object> ,但是在做从数据库导出数据放到jtable中时,发现还有个vector<vector<Object>>的用法. 先说jta ...
- centos7 mongodb3.2与3.4版本安装(转)
一.安装环境及配置yum vi /etc/yum.repos.d/mongodb-org-3.2.repo [mongodb-org-3.2] name=MongoDB Repository base ...
- 完全分布式安装hadoop
以三个节点为例的服务器集群来安装和配置hadoop 以下是各服务器ip地址和对应所做的节点 192.168.61.128 master 192.168.61.129 slave1 192.168.61 ...