首页 > 系统相关 >tcpdump必知必会

tcpdump必知必会

时间:2023-11-10 11:01:08浏览次数:40  
标签:必知 tcpdump host 10.178 length 必会 数据包 抓包

  1. tcpdump原理 & 在tcp协议栈的位置
  2. tcpdump用法
  • 基于协议、主机、端口过滤
  • 使用and or逻辑运算符做复杂的过滤操作
  • tcpdump flags

1. tcpdump原理

linux中非常有用的网络工具,运行在用户态


数据包到达网卡,经过数据包过滤器bpf筛选后,拷贝至用户态的tcpdump程序。

tcpdump抓包

“抓” 这个动作是由数据包过滤器bpf完成, bpf的主要作用就是根据用户输入的过滤规则,直将用户关心的数据包拷贝至tcpdump。注意是拷贝,不是剪切。

面试题: 某些数据包被iptables封禁,是否可通过tcpdump抓包?

linux中netfilter是工作在tcp协议栈阶段, tcpdump的过滤器bpf是工作在更底层,所以当然是可以抓到包。

2. tcpdump常规用法

抓包上帝视角:

  • 可将tcpdump当做网络请求的对端。
  • tcpdump 支持网络层、协议、铸就、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助过滤。

2.1抓包前置参数:

  • -D: 提供可以捕获流量的设备列表
  • -c n:捕获n个包后终止
  • -n: tcpdump默认会对(ip:port)转换为主机名,影响抓包效率,-n可设置不做转换,直接显示ip地址;
  • -s 0 : 设置抓取(已经筛选出的数据包的)长度,如果不设置默认是68 字节,0 意味着tcpdump自动选择合适的长度抓包;
  • -w: 抓取的内容输出到文件
  • -r : 跟-w 是对应的,从文件读取
  • -vvv :输出详细的最高级别

2.2 抓包筛选参数:

  • host: 过滤特定主机的流量,可填hostname或者ip;

注意:命令中的hostname会被解析成ip地址,如果解析出来的是vip(可能会作用到多个实际的业务Host),会抓取到非预期的数据包。

可以使用 src host 或者 dst host来抓取特定方向的流量。

tcpdump -n -i eth0 host janus.qa.xxxx.com -vvv -tttt

2023-11-08 14:37:48.478256 IP (tos 0x0, ttl 64, id 47134, offset 0, flags [DF], proto TCP (6), length 554)
    10.178.75.56.44054 > 10.98.21.3.http: Flags [P.], cksum 0x776b (incorrect -> 0x1251), seq 514:1028, ack 186, win 589, length 514: HTTP, length: 514
	POST /janus-api/api/agent/tasks HTTP/1.1
	Host: janus.qa.****.com
	User-Agent: Go-http-client/1.1
	Content-Length: 366
	Accept-Encoding: gzip

	{"groupId":"63fefa20b1e3c135612005c9","ip":"10.178.75.56","env":"qa","idc":"officeidc_hd2","tags":["10.178.75.56","officeidc_hd2","machine"],"lastTaskId":"202303210000000017","versionInfo":{"staticConfigVersionId":"v2023.03.20.004","autoConfigVersionId":"v2023.03.20.004","configVersionId":"0","status":true,"ipTime":"2019-12-04 01:06:06"},"lastTasks":{"status":[]}}[!http]
2023-11-08 14:37:48.520706 IP (tos 0x0, ttl 52, id 64787, offset 0, flags [DF], proto TCP (6), length 40)
    10.98.21.3.http > 10.178.75.56.44054: Flags [.], cksum 0xa1f6 (correct), seq 186, ack 1028, win 150, length 0
2023-11-08 14:37:48.523697 IP (tos 0x0, ttl 52, id 64788, offset 0, flags [DF], proto TCP (6), length 225)
    10.98.21.3.http > 10.178.75.56.44054: Flags [P.], cksum 0xb2f6 (correct), seq 186:371, ack 1028, win 150, length 185: HTTP, length: 185
	HTTP/1.1 200 OK
	Content-Type: application/json; charset=utf-8
	Content-Length: 38
	Connection: keep-alive
	Date: Wed, 08 Nov 2023 06:37:48 GMT

2023-11-08 14:37:48.523718 IP (tos 0x0, ttl 64, id 47135, offset 0, flags [DF], proto TCP (6), length 40)
    10.178.75.56.44054 > 10.98.21.3.http: Flags [.], cksum 0x7569 (incorrect -> 0x9f7e), seq 1028, ack 371, win 597, length 0
    
  • port : 指定抓取某个X端口的网络数据包。

  • and or not逻辑运算符
    tcpdump -i eth0 “host redhat.com and (port 80 or port 443)”

  • tcp/udp: 过滤tcp/udp流量: tcpdump -i eth0 host janus.t.17usoft.com and tcp


2.3 tcpdump [Flags]

标签:必知,tcpdump,host,10.178,length,必会,数据包,抓包
From: https://www.cnblogs.com/JulianHuang/p/17823599.html

相关文章

  • 精通协程的必会十一个高级技巧
    在Android应用开发中,协程已经成为异步编程的首选工具之一。它使并发任务管理变得更加容易,但它的强大功能远不止于此。在本文中,我们将探讨协程的高级技巧,帮助您更好地处理复杂的并发需求,提高性能和可维护性。介绍协程是Kotlin的一项强大特性,它使并发编程更加直观、简单。它允许我们......
  • tcpdump抓包实例-syslog和ping
    在实际运维过程中经常遇到网络问题,比如发出去的包是否对端收到了,以下通过syslog和ping的两个例子看看tcpdump抓包过程。实例1:syslog测试主机A(本例中129.73)通过syslog发送信息:“123456”,给主机B日志服务器(本例中120.90,需要配置syslog服务514端口的tcp和udp打开),在日志服务器主机B上抓......
  • 抓包指令tcpdump和包处理editcap指令 使用
    editcap的使用按照时间范围进行截取包editcap-A'YYYY-MM-DDhh:mm:ss'-B'YYYY-MM-DDhh:mm:ss'infileoutfile 从infile文件中选取从A-B时间范围内的包输出到outfile中editcap-A'YYYY-MM-DDhh:mm:ss'infileoutfile从infile文件中选取A时间点之后的数据,输出......
  • SQL必知必会
    第二章检索数据2.1检索不同的值返回不同的值SELECTDISTINCTIDFROMProduct;不能部分使用DISTINCT,作用于所有的列2.2限制结果限制最多返回多少行SELECTTOP5prod_nameFROMProduct;2.3注释用--来表示用/**/来表示第三章排序检索数据3.1排序函数......
  • Linux小技巧之awk必知必会
    LinuxShell三剑客之一,废话不多说直接上干货。目录1.指定分隔符2.指定打印行数3.打印最后一列4.打印倒数第二列5.匹配输出6.if判断7.统计列总数值8.时间格式转换示例数据:1.指定分隔符awk-F'|''{print$1}'log.txt#awk-F'|''{print$1}'log.txttbname============......
  • 必知的PCB设计走线的常规规范要求
    原标题:必知的PCB设计走线的常规规范要求1、为满足国内板厂生产工艺能力要求,常规走线线宽≥4mil(0.1016mm)(特殊情况可用3.5mil,即0.0889mm);小于这个值会极大挑战工厂生产能力,报废率提高。2、走线不能出线任意角度走线挑战厂商生产能力,很多蚀刻铜线时候出现问题,推荐45°或135°走......
  • MySQL必知必会
    概述MySQL是一种数据库管理系统(DBMS),所管理的都是关系型数据库,特点就是以表的形式来存储数据,一个数据库中可以有多张表,表中划分为行和列,可以将一行对应于一个对象,而每一列所表示的就是对象的各个属性。在MySQL中用主键(PrimaryKey)来唯一的标识某一行,主键是一个列也可以是一组列,它......
  • Django必会三板斧
    HttpResponse=========返回字符串类型的数据render      ==========返回html页面并且支持传值redirect  =========重定向 使用方法:fromdjango.shortcutsimportrender,HttpResponse,redirectdefindex(request):""":paramrequest:请......
  • tcpdump抓包
    服务器(centos):192.168.1.112测试机器A(windows):192.168.19.xx测试机器B(windows):192.168.19.xx在centos服务器上抓取9515端口收到的数据tcpdump-iem1udpport9515抓包效果:可以看到服务器已经收到了两台windows发来的数据。下面是tcpdump相关解释tcpdump可以将网络中传送的数据包完全......
  • 研发必会-异步编程利器之CompletableFuture(含源码 中)
    微信公众号访问地址:研发必会-异步编程利器之CompletableFuture(含源码中)近期热推文章:    1、springBoot对接kafka,批量、并发、异步获取消息,并动态、批量插入库表;    2、SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据;    3、基于Redis的Geo实现附......