tcpdump基本使用和实战分析

tcpdump 抓包工具详细图文教程(下) tcpdump 抓包工具详细图文教程 阅读详情

1. tcpdump基本命令

  tcpdump -n                    将主机名转换为IP地址
    tcpdump -v                    信息增多
    tcpdump -i lo                 指定网络接口,eth或者lo这类的
    tcpdump -w ./tcpdata.pcap     将信息保存为tcpdata.pcap,支持使用wireshark工具分析
    tcpdump -r ./tcpdata.pcap     从tcpdata.pcap读数据
    tcpdump -s 100                指定抓包大小,缺省抓65535字节的,可以指定100字节,表示过滤掉超过100字节的size
    tcpdump -c 100                抓100个数量包就退出
    tcpdump -XX(xx)                   打印16进制数据
    tcpdump -A                    只打印ASCII码

2. tcpdump过滤

   tcpdump -nvvv -i lo host 127.0.0.1                              查找特定网卡和特定主机的流量
    tcpdump -nvvv -i lo src host 127.0.0.1                          只显示源地址为特定主机的流量
    tcpdump -nvvv -i lo dst host 127.0.0.1                          只显示目标ip的主机流量
    tcpdump -nvvv -i lo port 9877 and port 65522                    只显示端口9877和65522的流量
    tcpdump -nvvv -i lo '(port 9877 or port 22) and host 127.0.0.1' 查找两个特定端口和来自特定主机的数据流
    tcp dump -nvvv -i lo 'port 80 and host 127.0.0.1'
    tcpdump tcp -nvvv -i lo                                         对tcp协议进行抓包,网卡为回环
注意: 如果写成
        tcpdump tcp -nvvv -i lo host 127.0.0.1会报错,因为tcp层检测的是port,所以可以按照如下 tcpdump tcp -nvvv -i lo port 22 或者 tcpdump tcp -nvvv -i lo and host 127.0.0.1

3. 实战

1)客户端代码

代码资源和编译传送:链接: unpv13e在arm上编译
代码路径和运行

root@ubuntu:/opt/socket/unpv13e/intro# ./daytimetcpcli 127.0.0.1
Tue May 31 13:57:16 2022

#include	"unp.h"

int
main(int argc, char **argv)
{
	int					sockfd, n;
	char				recvline[MAXLINE + 1];
	struct sockaddr_in	servaddr;

	if (argc != 2)
		err_quit("usage: a.out <IPaddress>");

	if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
		err_sys("socket error");

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port   = htons(13);	/* daytime server */
	if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
		err_quit("inet_pton error for %s", argv[1]);

	if (connect(sockfd, (SA *) &servaddr, sizeof(servaddr)) < 0)
		err_sys("connect error");

	while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {
		recvline[n] = 0;	/* null terminate */
		if (fputs(recvline, stdout) == EOF)
			err_sys("fputs error");
	}
	if (n < 0)
		err_sys("read error");

	exit(0);
}

2) 服务端代码

编译后的可执行文件和路径:

root@ubuntu:/opt/socket/unpv13e/intro# pwd
/opt/socket/unpv13e/intro
root@ubuntu:/opt/socket/unpv13e/intro# ./daytimetcpsrv

#include	"unp.h"
#include	<time.h>

int
main(int argc, char **argv)
{
	int					listenfd, connfd;
	struct sockaddr_in	servaddr;
	char				buff[MAXLINE];
	time_t				ticks;

	listenfd = Socket(AF_INET, SOCK_STREAM, 0);

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family      = AF_INET;
	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
	servaddr.sin_port        = htons(13);	/* daytime server */

	Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));

	Listen(listenfd, LISTENQ);

	for ( ; ; ) {
		connfd = Accept(listenfd, (SA *) NULL, NULL);

        ticks = time(NULL);
        snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
        Write(connfd, buff, strlen(buff));

		Close(connfd);
	}
}

3)抓包和运行

先行运行服务端, 后运行客户端, 在运行客户端前运行tcpdump抓包:

  1. 查看Flags,[s]表示主动连接,SYN J, [S.]表示确认 SYN K, ACK J+1,[.]表示ACK K+1
    [P]表示数据推送,[F] -FIN表示主动关闭, [R] -RST,表示重启连接
root@ubuntu:/opt/socket/unpv13e/intro# tcpdump  tcp -nvvv -i lo 'port 13 and host 127.0.0.1' -XX
tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes
13:51:26.547092 IP (tos 0x0, ttl 64, id 32738, offset 0, flags [DF], proto TCP (6), length 60)
    127.0.0.1.56914 > 127.0.0.1.13: Flags [S], cksum 0xfe30 (incorrect -> 0x8813), seq 2966685731, win 65495, options [mss 65495,sackOK,TS val 1016067079 ecr 0,nop,wscale 7], length 0
	0x0000:  0000 0000 0000 0000 0000 0000 0800 4500  ..............E.
	0x0010:  003c 7fe2 4000 4006 bcd7 7f00 0001 7f00  .<..@.@.........
	0x0020:  0001 de52 000d b0d4 0823 0000 0000 a002  ...R.....#......
	0x0030:  ffd7 fe30 0000 0204 ffd7 0402 080a 3c8f  ...0..........<.
	0x0040:  f407 0000 0000 0103 0307                 ..........
13:51:26.547181 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    127.0.0.1.13 > 127.0.0.1.56914: Flags [S.], cksum 0xfe30 (incorrect -> 0x0dc8), seq 1034488838, ack 2966685732, win 65483, options [mss 65495,sackOK,TS val 1016067079 ecr 1016067079,nop,wscale 7], length 0
	0x0000:  0000 0000 0000 0000 0000 0000 0800 4500  ..............E.
	0x0010:  003c 0000 4000 4006 3cba 7f00 0001 7f00  .<..@.@.<.......
	0x0020:  0001 000d de52 3da9 0c06 b0d4 0824 a012  .....R=......$..
	0x0030:  ffcb fe30 0000 0204 ffd7 0402 080a 3c8f  ...0..........<.
	0x0040:  f407 3c8f f407 0103 0307                 ..<.......
13:51:26.547195 IP (tos 0x0, ttl 64, id 32739, offset 0, flags [DF], proto TCP (6), length 52)
    127.0.0.1.56914 > 127.0.0.1.13: Flags [.], cksum 0xfe28 (incorrect -> 0x3483), seq 1, ack 1, win 512, options [nop,nop,TS val 1016067080 ecr 1016067079], length 0
	0x0000:  0000 0000 0000 0000 0000 0000 0800 4500  ..............E.
	0x0010:  0034 7fe3 4000 4006 bcde 7f00 0001 7f00  .4..@.@.........
	0x0020:  0001 de52 000d b0d4 0824 3da9 0c07 8010  ...R.....$=.....
	0x0030:  0200 fe28 0000 0101 080a 3c8f f408 3c8f  ...(......<...<.
	0x0040:  f407                                     ..
13:51:26.547398 IP (tos 0x0, ttl 64, id 32815, offset 0, flags [DF], proto TCP (6), length 78)
    127.0.0.1.13 > 127.0.0.1.56914: Flags [P.], cksum 0xfe42 (incorrect -> 0x16bc), seq 1:27, ack 1, win 512, options [nop,nop,TS val 1016067080 ecr 1016067080], length 26
	0x0000:  0000 0000 0000 0000 0000 0000 0800 4500  ..............E.
	0x0010:  004e 802f 4000 4006 bc78 7f00 0001 7f00  .N./@.@..x......
	0x0020:  0001 000d de52 3da9 0c07 b0d4 0824 8018  .....R=......$..
	0x0030:  0200 fe42 0000 0101 080a 3c8f f408 3c8f  ...B......<...<.
	0x0040:  f408 5475 6520 4d61 7920 3331 2031 333a  ..Tue.May.31.13:
	0x0050:  3531 3a32 3620 3230 3232 0d0a            51:26.2022..
13:51:26.549227 IP (tos 0x0, ttl 64, id 32740, offset 0, flags [DF], proto TCP (6), length 52)
    127.0.0.1.56914 > 127.0.0.1.13: Flags [.], cksum 0xfe28 (incorrect -> 0x3466), seq 1, ack 27, win 512, options [nop,nop,TS val 1016067082 ecr 1016067080], length 0
	0x0000:  0000 0000 0000 0000 0000 0000 0800 4500  ..............E.
	0x0010:  0034 7fe4 4000 4006 bcdd 7f00 0001 7f00  .4..@.@.........
	0x0020:  0001 de52 000d b0d4 0824 3da9 0c21 8010  ...R.....$=..!..
	0x0030:  0200 fe28 0000 0101 080a 3c8f f40a 3c8f  ...(......<...<.
	0x0040:  f408                                     ..
13:51:26.550707 IP (tos 0x0, ttl 64, id 32741, offset 0, flags [DF], proto TCP (6), length 52)
    127.0.0.1.56914 > 127.0.0.1.13: Flags [F.], cksum 0xfe28 (incorrect -> 0x3463), seq 1, ack 28, win 512, options [nop,nop,TS val 1016067083 ecr 1016067080], length 0
	0x0000:  0000 0000 0000 0000 0000 0000 0800 4500  ..............E.
	0x0010:  0034 7fe5 4000 4006 bcdc 7f00 0001 7f00  .4..@.@.........
	0x0020:  0001 de52 000d b0d4 0824 3da9 0c22 8011  ...R.....$=.."..
	0x0030:  0200 fe28 0000 0101 080a 3c8f f40b 3c8f  ...(......<...<.
	0x0040:  f408                                     ..


4) 分析

三次握手
在这里插入图片描述

连接终止

在这里插入图片描述
在这里插入图片描述

别再被hostname迷惑了!tcpdump抓包时用-n和-nn参数让IP和端口一目了然 本文深入解析tcpdump抓包工具中-n和-nn参数的使用技巧,帮助网络运维人员快速识别IP地址和端口号,提升网络诊断效率。通过实际案例对比,展示如何避免hostname和协议名带来的混淆,适用于复杂网络环境下的精准问题定位。 阅读详情

相关推荐

1、tcpdump——网络数据包捕获和分析的工具

tcpdump抓取报文

weixin_45981798的博客 3080

linux tcpdump

1、抓取回环网口的包:tcpdump -i lo 2、防止包截断:tcpdump -s0 3、以数字显示主机及端口:tcpdump -n    第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明

qq_27403547的博客 958

Tcpdump 网络抓包实战一看就会

今天给伙伴们分享一下Tcpdump 网络抓包实战,希望看了有所收获。

mohuanfenghuang的博客 864

tcpdump命令使用详解

tcpdump命令使用详解

lza20001103的博客 2万+

TCPDump实战手册:协议/端口/IP过滤与组合分析指南

本文提供了一份全面的TCPDump实用指南,涵盖基础过滤、组合应用和高级分析技巧。主要内容包括:1)基础速查表(协议、端口、IP过滤);2)组合过滤实战(协议+端口、IP+端口、复杂逻辑);3)高级协议分析(HTTP、DNS、TCP连接问题);4)场景化分析指南(网站访问失败、数据库连接超时等);5)TCP报文深度解析(标志位含义、分析方法与工具)。文章还提供了性能优化技巧和常用命令速查表,帮助网络工程师快速定位和解决各类网络问题。掌握这些技巧可显著提升TCP/IP协议栈的故障排查效率。

牟同學的博客 1801

tcpdump离线安装实战指南

在信息技术行业中,网络问题的诊断与解决是日常运维工作中的重要组成部分。tcpdump工具,作为一种广泛使用的命令行网络分析工具,以其强大的功能和灵活性,成为了网络工程师和系统管理员手中不可或缺的利器。从基础的数据包捕获到复杂网络问题的故障排查,tcpdump都能够提供关键的信息帮助。本章将对tcpdump的基本概念和功能进行介绍,为您掌握和使用这一工具打下坚实基础。

weixin_42298254的博客 978

Linux性能优化实战 38:怎么使用 tcpdump 和 Wireshark 分析网络流量?

一、tcpdump 1. 命令解释 tcpdump -nn udp port 53 or host 35.190.27.188 -nn :不解析抓包中的域名(即不反向解析)、协议以及端口号。 udp port 53 :只显示 UDP 协议的端口号(包括源端口和目的端口)为 53 的包。 host 35.190.27.188:表示只显示 IP地址(包括源地...

479

史上最全的Logisim运算器实验教程(基于华中科技大学计算机组成原理实验)

本博客是实现了Logisim的运算器设计,有具体的运算器设计的思路和运算器设计的电路,适合一步一步的按照思路做。

qq_62325622的博客 4万+

tcpdump 使用抓包使用方法

Tcpdump是一款功能强大的命令行包分析工具,可用于捕获和显示计算机网络中传输或接收的数据包。无论是日常的网络维护,还是网络安全事件的调查,Tcpdump都可以提供强大的支持。在进行长时间的网络监控或需要后续分析时,将捕获的数据保存到文件是非常有用的。过滤数据包是Tcpdump的一项重要功能,可以根据特定条件捕获特定的数据包,从而减少不必要的流量,使分析更加简单高效。然而,如果你的系统中没有预装Tcpdump,可以使用包管理器来安装它。Tcpdump不仅可以捕获数据包,还可以对数据包的内容进行详细分析。

5266的博客 1071

电池保护板为什么采用NTC热敏电阻而不是PTC热敏电阻?

R25=10K,即环境温度25°时,阻值是10K),温度变化1°C,阻值相应地明显变化,温度响应很灵敏,也就能精准地反向换算出阻值对应的温度。另外,还有功率型NTC热敏电阻,其主要用在开关电源设计中,串联在市电输入上,抑制浪涌电流。电池保护板上的NTC热敏电阻(NTC一端接地,另一端接电池充电控制IC管脚),在电池温度上升时,NTC热敏电阻温度也会随之上升,从而NTC电阻值会下降,因此电池充电控制IC用ADC检测的电压值就降低,当检测到的电压值达到下限阈值时,电池充电控制IC就会停止对电池的充电或放电。

电子绿洲的博客 5626

TSMaster实战:如何用LIN总线唤醒你的汽车电子系统(附波形分析)

本文通过TSMaster工具实战解析LIN总线唤醒机制。详细介绍了LIN网络唤醒的协议要求、时序参数计算,并演示了如何在TSMaster中配置唤醒信号、捕获分析波形,以及验证休眠流程。文章结合常见问题排查,为汽车电子工程师提供了从理论到实践的完整调试指南。

weixin_28308325的博客 459

TCPDUMP使用及分析

TCPDUMP 使用总结 一、tcpdump 说明 什么是tcpdump,tcpdump是Linux上一个强大的网络请求采集工具。它可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 二、tcpdump 安装 通过yum直接安装:yum install tcpdump; 通过rpm包安装:rpm -ivh tcpdump.rpm; 离线安装,需要安装libcap,通过./configure

djp304的博客 5793

详解从无人机倾斜实景三维建模→模型修复→成果网络发布展示分享全流程

1、倾斜实景三维建模软件:CC(Smart3D)软件2、实景三维模型网页在线发布展示、分享平台:图新地球网页端(Wish3D·Earth平台)图新地球网页端(Wish3D·Earth平台)是基于 WebGL技术研发的国产实景三维模型Web端发布展示平台,可实现TB级倾斜实景三维数据快速加载,支持多种格式的三维模型,如OSGB实景模型、OBJ人工模型、SKP人工模型、RVT格式BIM模型等,同时支持模型单体化、三维模型测量分析、水面特效、日照分析等特殊效果呈现,此外也可以根据您的需要进行本地化部署级功能定制。

GISWorld3D的博客 4375

WireShark分析过滤和tcpdump抓包

!

hao_wujing的专栏 959

基于AIS动态数据与AI结合得经纬度标示算法

港口船舶智能标注系统 本系统通过结合摄像头视频流和AIS船舶动态数据,利用AI技术实现船舶实时标注功能。系统架构包括视频流处理、AIS数据解析、船舶检测匹配和坐标映射转换等模块。关键技术步骤: AIS数据获取:通过本地接收机或网络API获取船舶位置、航速等信息 AI目标检测:采用YOLOv8等模型识别视频中的船舶 船舶匹配算法:通过位置投影或运动轨迹匹配视频目标与AIS数据 坐标映射:使用相机标定技术将经纬度转换为图像坐标 实时标注:在视频画面上叠加船名、位置等关键信息 应用场景包括港口监控、智能海事管理和

qianbo042311的博客 1807

[QMT量化交易小白入门]-九十五、多因子选股和趋势择时股票量化交易策略,年化收益率40.61%

本策略采用“双层过滤”机制:第一层基于多维度财务指标进行股票池筛选(多因子选股),第二层运用均线系统和MACD指标实施动态择时(趋势跟踪)。这种设计既保证了组合的质量下限,又能灵活应对市场波动。因子配置科学性:涵盖估值、成长、盈利、动量四大类因子风险控制精细化:设置动态止损与仓位管理机制信号验证严格性:多重条件交叉验证提升胜率。

木头大左的博客 799

流量抓包和网络问题排查,网工不要只会Wireshark,用好TCPdump才是大神!零基础入门到精通,收藏这篇就够了

tcpdump是一款功能强大的命令行网络数据包分析工具。它由Lawrence Berkeley National Laboratory开发并作为开源项目发布。tcpdump可以将网络中传输的数据包的“头”完全截获下来提供分析,支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句来帮助去掉无用的信息。TCPdump 运行在用户态,本质上是通过调用 Libpcap 库的各种 API 来实现数据包的抓取功能。

A1_3_9_7的博客 775

张力控制速度闭环控制算法

这个算法的核心思想是通过比较实际速度和期望速度的差异来调整控制信号,以达到稳定的速度控制。比例项用于直接根据误差调整输出,积分项用于积累误差并进行补偿,微分项用于预测误差的变化趋势并进行调整。张力控制是在许多工程和工业应用中非常重要的一个过程,它涉及到通过调节力的大小来实现稳定的工作状态。通过合理设置比例、积分和微分系数,并结合实际系统的特性进行调试和优化,可以实现准确稳定的张力控制。速度闭环控制算法通过比较实际速度和期望速度之间的差异,并根据差异调整系统的输出,以保持速度稳定。

LiJavascript的博客 1301

http抓包实战 pdf_实战:tcpdump抓包分析三次握手四次挥手

本文档以实战的形式介绍tcpdump抓包分析三次握手四次挥手的过程。执行tcpdump命令tcpdump -n -i ens32 host 192.168.10.10 and 42.186.113.26 >> /tmp/tcpdump.txtping game.campus.163.comcurl http://game.campus.163.comcurl http://game.c...

weixin_39685578的博客 198

HBV模型

据说mHM模型也是基于HBV模型原理。 网上不同版本的HBV模型稍有差别 def hbv_main(n_days, params, air_temp, prec, dpem): #n_days 模拟天数 #air_temp 每月温度 #prec 降水 #dpem 每月蒸发 Tsnow_thresh = 0.0 ca = 410. # Initialize arrays for the simiulation snow = np.zeros(air_temp.size

m0_46268055的博客 2326

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

网络抓包工具 Wireshark 和 tcpdump(三)

WireShark 为什么要抓包 1、定位网络问题; 2、分析接口数据; 3、学习网络协议,使用抓包工具分析网络数据更直观。 大部分场合都可以通过程序调试来定位问题,但有些场景使用抓包来定位接口问题更准 确、更方便,如以下场景: 1、你发送数据给后台,但后台没有收到,可以对接口进行抓包分析,看是后台处理有 问题,还是没有将数据发出去,或是发送数据格式有误; 2、你和后台接口联调测通,但业务数据对不上,你认为是后台问题,后台认为是你发 的问题,可以抓包确认问题所在.

nandao158的博客 918

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

linux没有tcpdump命令,大神教你在Linux中使用tcpdump命令

一般情况下Linux系统会自带tcpdump工具,如果系统没有安装,直接用命令安装就行了。安装命令:yum install -y tcpdump查看安装版本命令:tcpdump --help查看网卡命令:知道了网卡,就可以使用tcpdump工具针对服务器上的网卡监控、过滤网络数据。tcpdump常用命令:#抓取所有经过 eth0,目的或源地址是 192.168.29.162 的网络数据命令:tcp...

weixin_39763033的博客 1507

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

《Linux 环境下 TCP 通信的抓包分析:Wireshark 与 tcpdump 使用指南》

tcpdump:命令行工具,适合服务器环境Wireshark:图形化工具,提供深度分析能力| 实时网络流量 |----->| tcpdump 捕获原始包 |---> 保存为 .pcap 文件v| Wireshark 可视化分析|

gshjvklkl的博客 502

tcpdump的使用

tcpdump 是一个功能强大的网络抓包工具,它被广泛应用于网络分析和故障排除。用户可以通过指定网络接口、过滤规则和输出选项来捕获网络数据包,从而对网络活动进行监控和分析。

weixin_46121540的博客 185

tcpdump抓包分析详解_实战详解!我用“大白鲨”让你看见 TCP

前言“哈?啥是大白鲨?”咳咳,主要是因为网络分析工具 Wireshark 的图标特别像大白鲨顶部的角。不信你看:Wireshark“为什么拖了怎么久才发文?”为了让大家更容易「看得见」 TCP,我搭建不少测试环境,并且数据包抓很多次,花费了不少时间,才抓到比较容易分析的数据包。接下来丢包、乱序、超时重传、快速重传、选择性确认、流量控制等等 TCP 的特性,都能「一览无云」。没错,我把 TCP 的"...

weixin_39831170的博客 1939
上一篇: UNIX网络编程之基础
下一篇: 确认主机大小端的方式
帘下有白绿
博客等级 码龄12年 165粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值