tcpdump 常用例子

tcpdump 是一个很常用的网络包分析工具,可以用来显示通过网络传输到本系统的 TCP/IP 以及其他网络的数据包。tcpdump 使用 libpcap 库来抓取网络报,这个库在几乎在所有的 Linux/Unix 中都有。

tcpdump 可以从网卡或之前创建的数据包文件中读取内容,也可以将包写入文件中以供后续使用。必须是 root 用户或者使用 sudo 特权来运行 tcpdump。

在本文中,我们将会通过一些实例来演示如何使用 tcpdump 命令,但首先让我们来看看在各种 Linux 操作系统中是如何安装 tcpdump 的。

安装
tcpdump 默认在几乎所有的 Linux 发行版中都可用,但若你的 Linux 上没有的话,使用下面方法进行安装。

CentOS/RHEL
使用下面命令在 CentOS 和 RHEL 上安装 tcpdump,

$ sudo yum install tcpdump*
Fedora
使用下面命令在 Fedora 上安装 tcpdump:

$ dnf install tcpdump
Ubuntu/Debian/Linux Mint
在 Ubuntu/Debain/Linux Mint 上使用下面命令安装 tcpdump:

$ apt-get install tcpdump
安装好 tcpdump 后,现在来看一些例子。

案例演示
从所有网卡中捕获数据包
运行下面命令来从所有网卡中捕获数据包:

$ tcpdump -i any
从指定网卡中捕获数据包
要从指定网卡中捕获数据包,运行:

$ tcpdump -i eth0
将捕获的包写入文件
使用 -w 选项将所有捕获的包写入文件:

$ tcpdump -i eth1 -w packets_file
读取之前产生的 tcpdump 文件
使用下面命令从之前创建的 tcpdump 文件中读取内容:

$ tcpdump -r packets_file
获取更多的包信息,并且以可读的形式显示时间戳
要获取更多的包信息同时以可读的形式显示时间戳,使用:

$ tcpdump -ttttnnvvS
查看整个网络的数据包
要获取整个网络的数据包,在终端执行下面命令:

$ tcpdump net 192.168.1.0/24
根据 IP 地址查看报文
要获取指定 IP 的数据包,不管是作为源地址还是目的地址,使用下面命令:

$ tcpdump host 192.168.1.100
要指定 IP 地址是源地址或是目的地址则使用:

$ tcpdump src 192.168.1.100
$ tcpdump dst 192.168.1.100
查看某个协议或端口号的数据包
要查看某个协议的数据包,运行下面命令:

$ tcpdump ssh
要捕获某个端口或一个范围的数据包,使用:

$ tcpdump port 22
$ tcpdump portrange 22-125
我们也可以与 src 和 dst 选项连用来捕获指定源端口或指定目的端口的报文。

我们还可以使用“与” (and,&&)、“或” (or,|| ) 和“非”(not,!) 来将两个条件组合起来。当我们需要基于某些条件来分析网络报文是非常有用。

使用“与”
可以使用 and 或者符号 && 来将两个或多个条件组合起来。比如:

$ tcpdump src 192.168.1.100 && port 22 -w ssh_packets
使用“或”
“或”会检查是否匹配命令所列条件中的其中一条,像这样:

$ tcpdump src 192.168.1.100 or dst 192.168.1.50 && port 22 -w ssh_packets
$ tcpdump port 443 or 80 -w http_packets
使用“非”
当我们想表达不匹配某项条件时可以使用“非”,像这样:

$ tcpdump -i eth0 src port not 22
这会捕获 eth0 上除了 22 号端口的所有通讯。

我们的教程至此就结束了,在本教程中我们讲解了如何安装并使用 tcpdump 来捕获网络数据包。

本文地址:http://www.linuxprobe.com/linux-tcpdump-example.html

原文地址:http://blog.51cto.com/3024618/2061548

时间: 2024-11-13 03:47:52

tcpdump 常用例子的相关文章

tcpdump常用抓包命令

tcpdump常用抓包 下面的例子全是以抓取eth0接口为例,如果不加"-i eth0"是表示抓取所有的接口包括lo. 首先安装tcpdump包:yum install -y tcpdump  1.抓取包含172.16.1.122的数据包 # tcpdump -i eth0 -vnn host 172.16.1.122   2.抓取包含172.16.1.0/24网段的数据包 # tcpdump -i eth0 -vnn net 172.16.1.0/24   3.抓取包含端口22的数据

android开发最常用例子整理----(1)自定义按钮实现

android开发最常用例子整理----(1)自定义按钮实现 一.Activity MainActivity.java源码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }

jquery datatable 常用例子

在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 一.DataTable简介 (1)构造函数           DataTable()   不带参数初始化DataTable 类的新实例.           DataTable(string tableName)  用指定的表名初始化DataTable 类的新实例.           DataTable(string

tcpdump常用命令

抓取指定目标端口ip和端口的包:t tcpdump -i eth0 dst 10.84.102.32 and port 3336 -nnn -c 10 抓取指定来源ip的包: tcpdump -i eth0 src 10.84.102.32 -nnn -c 10 抓取指定目标端口的详细数据包: tcpdump  -i eth0 dst port 3336 -X -s 0 -c 10 tcpdump常用参数: -i: 指定网络接口名(eth0/bond0) -nnn: 不将协议号和端口号转换成对应

笔记-[正则]-正则表达式的常用例子.

常用的正则表达式的例子:  匹配中文:[\u4e00-\u9fa5] 行首行尾空格:^\s*|\s*$ Email:^\[email protected][a-z0-9]+(\.[a-z]+){1,3}$ 网址:[a-zA-z]+://[^\s]* QQ号:[1-9][0-9]{4,9} 或者 ^[1-9]\d{4,11}$ 邮政编码:[1-9]\d{5} 身份证:[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x 正则表达式的一个面试题:删除字符串首尾的空格 <scrip

android开发最常用例子整理----(2)自定义ListView(SimpleAdapter实现)

android开发最常用例子整理----(2)自定义ListView(SimpleAdapter实现) 一.Activity MainActivity.java源码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layou

Jquery的常用例子

网上找了很久都没有找到,验证单选 radio 中的一个input id="yes" 是否被选择,于是自己写了个:如下 注释:1.obj为 JQuery对象,$(this)调用此validateIschecked  方法即可,然后传入obj : $("#yes") //radio ischecked $.fn.validateIschecked = function(obj){ var flag = obj.attr('checked'); /*alert(flag)

tcpdump常用用法+wireshark分析cap包

工作中的常用用法一.tcpdump常用用法: 1,-i 指定网口 -vnn 常用选项,显示详细信息并且不解析IP,端口 :抓取某个网口上发往或来自某个IP的报文tcpdump -i ethX host 192.168.1.100 -vnn 2,可以用or 或者and 连接多个过滤条件,port前的tcp表示tcp协议,也可为udp:抓取某个网口上发往或来自某个IP.并且指定端口的报文tcpdump -i ethX host 192.168.1.100 and tcp port 22(端口号) -

java stream的常用例子

一.标题 java stream的常用例子 二.描述 stream在当前互联网技术社区传播的已经很广泛了,且有阿里11.11用stream很好的完成数据处理案例,为此迎着互联网技术风口细细地学习一下stream,说不定能让代码飘起来 三.常用的例子 以下内容均使用该代码作为前提: 1 public class AppTest { 2 3 public static void main(String[] args){ 4 List<StreamDemo> list = new ArrayList