转载请注明出处:

TCPDump是一个功能强大的网络抓包工具,它能够在命令行界面捕获、分析和解析网络数据包。下面是TCPDump命令的使用总结,包括使用语法、常用参数说明等:

使用语法:tcpdump [options] [expression]

参数说明:

  • -i <interface>:指定要监听的网络接口。

  • -n:禁用主机名解析,只显示IP地址。

  • -l:使输出行立即被缓冲并且刷新到标准输出,而不是按照缓冲区大小进行缓冲。

  • -c <count>:设置捕获数据包的数量限制。

  • -s <snaplen>:设置每个数据包的最大捕获长度。

  • -w <filename>:将捕获的数据包写入文件。

  • expression:可以是过滤器表达式,用于选择要捕获的数据包。

常见用法示例:

  • tcpdump -i eth0:捕获并显示来自eth0接口的所有网络数据包。

  • tcpdump -n -l -c 10:捕获并输出前10个数据包的IP地址(禁用主机名解析)。

  • tcpdump -i any tcp port 80:捕获并显示所有通过任意接口的源或目的端口为80的TCP数据包。

一些常用过滤器表达式:

  • host <ip>:捕获指定主机的数据包。

  • net <network>:捕获指定网络的数据包。

  • port <port>:捕获指定端口的数据包。

  • src <ip>:捕获源IP地址为指定IP的数据包。

  • dst <ip>:捕获目的IP地址为指定IP的数据包。

高级选项:

  • -A:以ASCII形式显示捕获到的数据包内容。

  • -X:以十六进制和ASCII组合形式显示捕获到的数据包内容。

  • -vvv:显示更详细的输出信息,如协议解析和标志位。

使用示例:

tcpdump -n -l -i any  tcp  port 24009

响应示例:

这段抓包响应显示了网络流量捕获结果。下面是对每个捕获数据包的分析:

  第一个数据包:

  • 时间戳:13:30:46.092550

  • 源IP地址和端口:192.168.118.11.62964

  • 目标IP地址和端口:192.168.118.32.24009

  • 标志(Flags):[S],表示这是一个建立连接的请求数据包

  • 序列号(seq):507702909

  • 窗口大小(win):64512

  • 选项:mss 1460, nop, wscale 3, sackOK, TS val 775689058 ecr 0

  • 长度:0

  第二个数据包:

  • 时间戳:13:30:46.092594

  • 源IP地址和端口:192.168.118.32.24009

  • 目标IP地址和端口:192.168.118.11.62964

  • 标志(Flags):[R.],表示连接被重置(reset)

  • 序列号(seq):0

  • 确认序列号(ack):507702910

  • 窗口大小(win):0

  • 长度:0

TCP协议中的标志(Flags)字段用于在数据包中传递特定的控制信息。

  下面是常见的TCP标志及其说明:

  • SYN (Synchronize):用于建立连接的请求标志。当一个主机尝试与另一个主机建立连接时,它会发送一个带有SYN标志的数据包。

  • ACK (Acknowledgment):确认标志。表示收到了对方发送的数据包,并发送了确认响应。

  • RST (Reset):重置标志。用于终止连接或表示连接出现错误。当一方收到无效的、不可接受的数据包时,可以发送RST标志来告知对方重置连接。

  • FIN (Finish):结束标志。用于终止连接的请求。当发送方发送了所有数据后,会发送一个带有FIN标志的数据包,请求关闭连接。

  • PSH (Push):推送标志。指示接收方应该立即将数据交给应用层,而不是等待缓冲区填满或者等待其他条件。

  • URG (Urgent):紧急标志。表示数据包中有紧急数据需要优先处理。

这些标志可以单独使用或组合在一起,以便传递更多的控制信息。例如,一个数据包可以同时设置SYN和ACK标志,表示建立连接并进行确认。

linux tcpdump 使用小结(二)的更多相关文章

  1. Linux应急响应(二):捕捉短连接

    0x00 前言 ​ 短连接(short connnection)是相对于长连接而言的概念,指的是在数据传送过程中,只在需要发送数据时,才去建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一 ...

  2. Linux shell脚本编程(二)

    Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...

  3. Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码

    在上一篇随笔里面详细讲解了Linux系统的启动过程 (Linux学习之CentOS(二十一)--Linux系统启动详解),我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab ...

  4. Linux 常用工具小结:(5) lftp工具使用

    Linux 常用工具小结:(1) lftp工具使用. 这里会按照一些比较常用的功能列出,并举一个具体的例子逐一解释功能. 通常使用ftp过程是登陆ftp,浏览ftp内容,下载ftp文件,或者上传ftp ...

  5. Linux多线程编程小结

     Linux多线程编程小结 前一段时间由于开题的事情一直耽搁了我搞Linux的进度,搞的我之前学的东西都遗忘了,非常烦躁的说,如今抽个时间把之前所学的做个小节.文章内容主要总结于<Linux程序 ...

  6. Linux内核分析(二)----内核模块简介|简单内核模块实现

    原文:Linux内核分析(二)----内核模块简介|简单内核模块实现 Linux内核分析(二) 昨天我们开始了内核的分析,网上有很多人是用用源码直接分析,这样造成的问题是,大家觉得很枯燥很难理解,从某 ...

  7. Linux磁盘分区(二):删除

    ***********************************************声明************************************************ 原创 ...

  8. deepin linux 学习笔记(二)——文本编辑器

    目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...

  9. linux磁盘管理系列二:软RAID的实现

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  10. Linux内存管理(二)

    Linux内存管理之二:Linux在X86上的虚拟内存管理 本文档来自网络,并稍有改动. 前言 Linux支持很多硬件运行平台,常用的有:Intel X86,Alpha,Sparc等.对于不能够通用的 ...

随机推荐

  1. 上下文管理者(ServletContext)

    作用1.获取全局初始化参数2.资源共享(servlet通信) 能让上下文呢的Servlet相互关联起来3.获取资源文件 生命周期创建服务器启动的时候会为每个项目创建一个servletContext上下 ...

  2. 为什么要学习 Markdown?究竟有什么用?

    点击上方蓝字设为星标 下面开始今天的学习- 本文经授权转载自微信公众号:杰哥的 IT 之旅(ID:Jake_Internet),未经许可,禁止二次转载. 一.什么是 Markdown? Markdow ...

  3. STL-array(ACM)

    1.C++ 11 出现的, C++98没有 2.可以作为数组元素 pair<array<int, 3>, int>pair<int a[3], int > 不能这样 ...

  4. 深入探索C++对象模型(Inside the C++ object model) -- 摘阅笔记(关于对象 - esp 1)

    Object Lessons 关于对象 在C语言中,"数据"和"处理数据的操作(函数)"是分开声明的,也就是说 ,语言本身并没有支持"数据和函数&qu ...

  5. Python asyncio 库源码分析

    Python asyncio 库源码分析 前言 本着 「路漫漫其修远兮, 吾将上下而求索」 的精神.终于要开始深入研究 Python 中 asyncio 的源码实现啦. 本文章可能篇幅较长,因为是逐行 ...

  6. ASP.NET Core 6框架揭秘实例演示[40]:基于角色的授权

    ASP.NET应用并没有对如何定义授权策略做硬性规定,所以我们完全根据用户具有的任意特性(如性别.年龄.学历.所在地区.宗教信仰.政治面貌等)来判断其是否具有获取目标资源或者执行目标操作的权限,但是针 ...

  7. Java打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

    代码如下: public static void main(String[] args) { int a,b,c; for(int num = 100;num <= 999;num++) { a ...

  8. 【笔试实战】LeetCode题单刷题-编程基础 0 到 1【二】

    1822. 数组元素积的符号 题目链接 1822. 数组元素积的符号 题目描述 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 . 如果 x 是负数,返 ...

  9. 【C#/.NET】RESTful风格的Post请求与CreateAtAction

    ​  目录 引言 实现步骤 概念介绍 创建控制器 总结 引言 在构建Web应用程序时,遵循RESTful风格的API设计原则能够使我们的系统更加灵活.可扩展和易于维护.其中,Post请求在创建资源时起 ...

  10. 一文帮你搞定H5、小程序、Taro长列表曝光埋点

    对于很多前端同学来说,"埋点"常常是一个不愿面对却又无法逃避的话题.为什么这么说呢,相信很多前端同学都深有体会:首先埋点这个事基本是前端"独享"的,服务端基本不 ...