简介

    简单的说,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. IDEA阿里巴巴Java开发规约插件使用

    前言 2017年2月9日,首次公布<阿里巴巴Java开发手册>; 2017年9月25日,阿里巴巴集团发布了<阿里巴巴Java开发手册>PDF终极版; 2017年10月14日,在 ...

  2. java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V

    环境: Spark2.1.0 .Hadoop-2.7.5   代码运行系统:Win 7在运行Spark程序写出文件(savaAsTextFile)的时候,我遇到了这个错误: // :: ERROR U ...

  3. linux磁盘空间使用问题

    linux磁盘空间用满的处理方法 linux下空间满可能有两种情况 可以通过命令 df -h  查看磁盘空间占用,实际上是查看磁盘块占用的文件(block) df -i  查看索引节点的占用(Inod ...

  4. Xcel 测试版使用手册

    基于无任何文笔可言,所以直接上使用方法吧. 1.引用dll,如何引用dll请谷歌. 2.使用 //实例化对象 LT.XMLExcel.XlsxOption xOption = new LT.XMLEx ...

  5. 获取用户真实Ip地址

    REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP.如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP.HTTP_CLIENT_IP 是代理服务器发送的HTTP头.如 ...

  6. 2018 China Collegiate Programming Contest Final (CCPC-Final 2018)

    Problem A. Mischievous Problem Setter 签到. #include <bits/stdc++.h> using namespace std; #defin ...

  7. uva1401 dp+Trie

    这题说的是给了一个长的字符串长度最大300000,又给了4000个单词 单词的长度不超过100.计算这个字符串能组成多少种不同单词的组合,求出方案总数.dp[i]以第i个字符为开始的字符串能有多少种的 ...

  8. Entity Framework 复杂类型(转)

    为了说明什么是复杂属性,先举一个例子. public class CompanyAddress { public int ID { get; set; } public string CompanyN ...

  9. TED #03# 10 ways to have a better conversation

    Teach you how to talk and how to listen Many of you have already heard a lot of advice on this, thin ...

  10. mongodb的存储引擎

    mongodb版本为3.4 mongodb存储引起的一些概述 存储引擎是MongoDB的核心组件,负责管理数据如何存储在硬盘和内存上.从MongoDB 3.2 版本开始,MongoDB 支持多数据存储 ...