简介

    简单的说,tcpdump就是一个抓包工具,类似Wireshark。

    tcpdump可以根据使用者的定义过滤/截取网络上的数据包,并进行分析。tcpdump可以将数据包的头部完全接货下来进行分析。支持网络层、协议层、主机、端口等特定规则的过滤。

tcpdump的使用

快速入门

    首先接收两个选项
-i 指定网络接口
-w 将截取到的数据包写入文件

    为什么先介绍这两个选项呢,因为有了这两个选项,结合Wireshark,你不想学tcpdump就可以不学了,直接把通过某个网络接口的所有数据包都保存到一个文件中,再到Wireshark中进行分析即可。
      命令如下:
windeal@ubuntu:~$ sudo tcpdump -i eth0 -w hello.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C129 packets captured
129 packets received by filter
0 packets dropped by kernel
windeal@ubuntu:~$

可以看出例子中一共截获了129个数据包,然后直接用Wireshark打开文件hello.cap即可对其进行分析。
如下图:


tcpdump常用命令:

    tcpdump提供了一系列的参数来满足用户需求,根据使用者定义分析过滤数据包。
windeal@ubuntu:~$ tcpdump --help
tcpdump: invalid option -- '-'
tcpdump version 4.2.1
libpcap version 1.1.1
Usage: tcpdump [-aAbdDefhHIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -z command ]
[ -Z user ] [ expression ]
windeal@ubuntu:~$

这些参数大致可以分为以下几类:
捕获过滤类:类似Wireshark的capture filter
显示过滤类:类似Wireshark的display filter,就是Wireshark左上角有个下拉框的那个
辅助类

默认情况下,tcpdump显示格式如下:
04:57:52.195631 IP 192.168.1.2.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
04:57:52.662335 IP 192.168.1.2.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
04:57:52.944999 IP 192.168.1.2.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAS

下面介绍一些常用的参数:
-i  前面已经介绍,用于指定网络接口
-v 显示稍微详细信息
-vv 显示比-v更详细的信息
-e 打印链路层头部信息
-t 不输出时间戳
-tttt 输出date格式的时间戳
host 指定主机

在tcpdump中也可以使用src、dst 以及and or not之类的参数

应用举例:
tcpdump host widneal-PC  #进出windeal-PC的数据包
tcpdump host 192.168.1.1 #指定ip, 进出192.168.1.1 的数据包
tcpdump src host 192.168.1.1 #指定源ip, 来自192.168.1.1 的数据包
tcpdump tcp port 23 host 192.168.1.1 #获取主机192.168.1.1 接收或发出的telnet(端口号23)包 #To print all ICMP packets that are not echo requests/replies (i.e., not ping packets)
tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'


tcpdump学习笔记的更多相关文章

  1. TCPDUMP学习笔记。

    1.启动 普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包,注意这里使用超级用户.当用户上网得时候,就会将监视得数据打印出来. 我没使用root用户,结果输入tcpdump命令 ...

  2. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  3. FreeSWITCH 学习笔记

    [1]FreeSWITCH学习笔记 1.Windows安装包下载地址:http://files.freeswitch.org/windows/installer/ 2.源码下载地址:http://fi ...

  4. 学习笔记:CentOS7学习之十九:Linux网络管理技术

    目录 学习笔记:CentOS7学习之十九:Linux网络管理技术 本文用于记录学习体会.心得,兼做笔记使用,方便以后复习总结.内容基本完全参考学神教育教材,图片大多取材自学神教育资料,在此非常感谢MK ...

  5. Java IO学习笔记一:为什么带Buffer的比不带Buffer的快

    作者:Grey 原文地址:Java IO学习笔记一:为什么带Buffer的比不带Buffer的快 Java中为什么BufferedReader,BufferedWriter要比FileReader 和 ...

  6. Java IO学习笔记四:Socket基础

    作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...

  7. 网络协议学习笔记(二)物理层到MAC层,交换机和VLAN,ICMP与ping原理

    概述 之前网络学习笔记主要讲解了IP的诞生,或者说整个操作系统的诞生,一旦有了IP,就可以在网络的环境里和其他的机器展开沟通了.现在开始给大家讲解关于网络底层的相关知识. 从物理层到MAC层:如何在宿 ...

  8. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  9. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

随机推荐

  1. RDD的基础知识

    以下的这些分析都是基于spark2.1进行的 (一)什么是RDD A Resilient Distributed Dataset (RDD), the basic abstraction in Spa ...

  2. 数据挖掘-聚类分析(Python实现K-Means算法)

    概念: 聚类分析(cluster analysis ):是一组将研究对象分为相对同质的群组(clusters)的统计分析技术.聚类分析也叫分类分析,或者数值分类.聚类的输入是一组未被标记的样本,聚类根 ...

  3. js判断display隐藏显示

    // 判断是否为隐藏(css)样式 function isHide(obj) {   var ret = obj.style.display === "none" || obj.s ...

  4. SpringData关键字查询练习

    我们在上一节知道SpringData关键字有很多,我就拿几个例子练练手 1.需求我们查询lastName like sun and id < ?的查询 package com.fxr.sprin ...

  5. VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box)

    言归正传,鸡啄米上一节中讲了编辑框的用法,本节继续讲解常用控件--按钮控件的使用. 按钮控件简介 按钮控件包括命令按钮(Button).单选按钮(Radio Button)和复选框(Check Box ...

  6. Codeforces Round #524 (Div. 2) Solution

    A. Petya and Origami Water. #include <bits/stdc++.h> using namespace std; #define ll long long ...

  7. ACM-ICPC 2018 焦作赛区网络预赛 Solution

    A. Magic Mirror 水. #include <bits/stdc++.h> using namespace std; int t; ]; inline bool work() ...

  8. MyEclipse优化,解决MyEclipse运行慢、卡顿问题

    工具: myeclipse2015 2.0 最近想用myeclipse做一下测试,发现myeclipse运行非常卡,直接影响代码的开发,而且还出现软件卡退的情况,让我十分恼火.   一.加大JVM的非 ...

  9. 实验五分析system_call中断处理过程

    一.实验要求: 1.使用gdb跟踪分析一个系统调用内核函数 2.根据本周所学知识分析系统调用的过程,从system_call开始到iret结束之间的整个过程,并画出简要准确的流程图 二.实验步骤: 1 ...

  10. linux内核分析第二周-完成一个简单的时间片轮转多道程序内核代码

    中断时计算机运行的一个非常重要的功能.之所以重要,是因为由于种种原因,计算机不能将一个程序从头执行到尾不间断,而是可能会出现很多像等待输入设备输出设备的过程,如果没有中断系统,CPU只能等待,造成资源 ...