【最详细】Tcpdump使用实验

简介: 【最详细】Tcpdump使用实验

【原理】

tcpdump和wireshark一样,是一个抓包工具,基于libpcap开发的,过滤机制使用内核的BPF过滤(伯克利数据包过滤器,Berkeley Packet Filter,工作在操作系统的内核态,由网络转发和数据包过滤两部分组成。感兴趣的同学可以自己看一下),在linux下使用,也可以把tcpdump当成linux的命令。多数linux服务器是不按照图形界面的,在这种情况下,就可以使用tcpdump。

【步骤】

安装

tcpdump一般在linux服务器上是默认安装的,也可以说tcpdump是linux服务器端一个命令,可以用whereis命令看下,他的安装位置;用tcpdump -help看下

切换至su模式

sudo su

2.常用命令选项

跟进不同用户的权限,如果需要sudo的,在命令前面加上sudo

2.1

指定要抓的数据包的数量,指定"-c 10"将获取10个包,但可能已经处理了100个包,只不过只有10个包是满足条件的包

tcpdump -c 10

2.2 查看哪些端口可以抓包

tcpdump -D

2.3 指定接口

tcpdump -i eth0 -c 10

2.4 -n和-nn

-n: 对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析


-nn: 把端口显示为数值,否则显示端口服务名


对比下上图tcpdump -i eth0 -c 10红色方框的部分


tcpdump -i eth0 -c 10 -n


tcpdump -i eth0 -c 10 -nn


2.5 -x和-xx;-X和-XX,最常用的是-XX
-x:以16进制打印出每个包的数据(不包括连接层的头部)
-xx:以16进制打印出每个包的数据
-X:输出包头部的数据,以16进制和ASCII两种方式同时输出(不包括连接层的头部)
-XX:输出包头部的数据,会以16进制和ASCII两种方式同时输出。

2.6 -v,-vv答应详细输出,一个比一个详细,看一下吧

如果没带-v或者-vv选项的时候,会有如下提示

对比一下带-v和不带-v的(tcpdump -i eth0 -c 10 -nn)区别,会多输出一些信息。

2.7 包保存到指定文件-w,从指定文件读取包答应到屏幕-r

3.常用过滤字段

3.1 过滤指定主机,首先ping下qiyun,看看ip是多少,然后用host过滤,抓到的都是指定host的包
tcpdump host qiyun

3.2 源与目的,src与dst
tcpdump -i eth0 -c 10 -nn src host qiyun tcpdump -i eth0 -c 10 -nn dst host qiyun

tcpdump -i eth0 -c 10 -nn src host 218.30.116.184 tcpdump -i eth0 -c 10 -nn dst host 218.30.116.184

3.3 协议过滤

过滤udp协议,可能服务器上目前没有udp的包,再开一个窗口,自己创造点儿包出来,用curl http://www.baidu.com;curl http://www.hao123.com;curl http://www.163.com tcpdump -i eth0 -c 10 -nn udp


抓ping包

tcpdump -i eth0 -c 10 -nn icmp

3.4 过滤网段

tcpdump -i eth0 -c 10 -nn net 192.168

3.5 过滤端口

tcpdump udp port 53

tcpdump port 2222是我ssh的端口

3.6 协议字段过滤

表达式单元之间可以使用操作符" and / && / or / || / not / ! "进行连接


过滤syn包和fin包


tcpdump -i eth0 -c 10 -nn 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0'


过滤tcp 80端口,ip包长度大于1000的包(ip[2:2]表示整个ip数据包的长度)

tcpdump -i eth0 -c 10 -nn 'tcp port 80 and ip[2:2] > 1000'


过滤icmp的reply包

tcpdump -i eth0 -c 10 -nn 'icmp[icmptype] == icmp-echoreply'

【总结】

tcpdump是linux抓包非常有用的工具

相关文章
|
机器学习/深度学习 网络协议 安全
网络抓包工具 - tcpdump
【1月更文挑战第1天】
1572 4
|
网络协议 Ubuntu Linux
如何搭建权威DNS服务器
【1月更文挑战第3天】
995 2
|
2月前
|
人工智能 安全 API
阿里云零门槛部署 Hermes Agent/OpenClaw、集成几大神级 Skills 教程
在2026年AI智能体浪潮中,OpenClaw(前身为Clawdbot、Moltbot)凭借开源灵活的特性引爆全网——短短20多天,GitHub星标数从几百飙升至175K,远超同类项目数年积累。这款被网友戏称为“买Mac Mini只为给它安家”的AI工具,本质是一款跨平台个人AI助手,支持文件操作、命令执行、多工具协同等核心能力,而阿里云的一键部署方案更让其门槛骤降,无需复杂配置即可实现7×24小时稳定运行。
271 0
|
人工智能 算法 数据可视化
智慧停车场车位引导及反向寻车解决方案
智慧停车场导航系统结合了先进的室内定位技术和导航算法,旨在解决大型公共场所停车难、找车难等问题。系统不仅提供精准的停车引导、反向寻车及停车场内导航服务,还通过大数据分析优化停车场管理和用户体验,是提升现代城市智能化水平的重要组成部分。
2042 19
|
运维 监控 Java
微服务:知识点梳理(SOA、服务拆分、服务治理、分布式事务)
微服务:知识点梳理(SOA、服务拆分、服务治理、分布式事务)
微服务:知识点梳理(SOA、服务拆分、服务治理、分布式事务)
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
1015 1
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
存储 网络协议 物联网
网络中的“客户端”和“服务器
【8月更文挑战第24天】
2031 0
|
XML Java 应用服务中间件
SpringBoot同时可以处理多少请求?
Spring Boot 的并发处理能力取决于其内置的 Web 容器,如 Tomcat、Undertow 或 Jetty。默认是 Tomcat,最大连接数为 8192,最大等待数为 100,因此默认可同时处理 8292 个请求。可通过配置 `server.tomcat.max-connections` 和 `server.tomcat.accept-count` 修改这些值。另外,可以通过排除 Tomcat 并引入 Jetty 或 Undertow 的依赖来更换 Web 容器。
2843 0
|
机器学习/深度学习 监控 算法框架/工具
用Python实现简单的图像分类器
用Python实现简单的图像分类器
494 0