简介

    简单的说,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. 一个C#读写Dxf的类库DXFLibrary

    https://github.com/Titifonky/DXFLibrary DXF 参考手册: http://docs.autodesk.com/ACD/2011/CHS/filesDXF/WSf ...

  2. HBase1.2.0增删改查Scala代码实现

    增删改查工具类 class HbaseUtils { /** * 获取管理员对象 * * @param conf 对hbase client配置一些参数 * @return 返回hbase的HBase ...

  3. PAT 1139 First Contact[难][模拟]

    1139 First Contact(30 分) Unlike in nowadays, the way that boys and girls expressing their feelings o ...

  4. sql server递归子节点、父节点,sql查询表结构,根据字段名查所在表

    一.查询当前部门下的所有子部门 WITH dept AS ( SELECT * FROM dbo.deptTab --部门表 WHERE pid = @id UNION ALL SELECT d.* ...

  5. 6.MySQL必知必会之数据过滤-WHERE组合子句

    数据过滤-WHERE组合子句 本章讲授如何组合WHERE子句以建立功能更强的更高级的搜索条件. 我们还将学习如何使用NOT和IN操作符. 1.组合WHERE子句 上一章介绍的WHERE子句在过滤数据时 ...

  6. hdu5073 贪心

    这题说的是给了 n个值每个值 然后 他们的品均值 作为中点 然后每个点到中点的均值的平方 和最小值是多少 有 k 个点可以重新 放过位置 , 这样我们 应该 会选 最近的那个 n-k个点 然后 取他们 ...

  7. 《Python网络编程基础》第四章 域名系统

    域名系统(DNS) 是一个分布式的数据库,它主要用来把主机名转换成IP地址.DNS以及相关系统之所以存在,主要有以下两个原因:   它们可以使人们比较容易地记住名字,如www.baidu.com. 它 ...

  8. 20155302 2016-2017-2 《Java程序设计》第八周学习总结

    20155302 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 在NIO中有几个比较关键的概念:Channel(通道),Buffer(缓冲区),Select ...

  9. SpringMVC中@pathVariable和@RequestParam注解的区别

    @pathVariable和@RequestParam的区别 @pathVariable:是从路径中获取变量,也就是把路径当做变量 @RequestParam:是从请求里面获取参数 案例分析: /Sp ...

  10. confluence wiki 安装

    1. 下载 wget https://www.atlassian.com/software/confluence/downloads/binary/atlassian-confluence-5.6.6 ...