位置: IT常识 - 正文

linux tcpdump抓取HTTP包的详细解释(linux抓包 udp)

编辑:rootadmin
这篇文章主要介绍了linux tcpdump抓取HTTP包的详细解释,需要的朋友可以参考下... 18-02-17

推荐整理分享linux tcpdump抓取HTTP包的详细解释(linux抓包 udp),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux抓tcp包,linux tcpdump 抓包,linux tcpdump 抓包,linux抓取dump文件,linux tcpdump 抓包,linux抓tcp包,linux抓tcp包,linux tcpdump 抓包,内容如对您有帮助,希望把文章链接给更多的朋友!

tcpdump

tcpdump是linux系统自带的抓包工具,主要通过命令行的方式,比较适合在线上服务器进行抓包操作,如果是windows或者ubuntu完全可 以选择一些图形化的工具,ubuntu比较推荐用wireshark,安装方式很简单sudo apt一下即可。

命令行格式:tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名] [ -s snaplen ][ -T 类型 ] [ -w 文件名 ] [表达式 ]

常用的参数:-l    使标准输出变为缓冲行形式;-n    不把网络地址转换成名字;

-c    在收到指定的包的数目后,tcpdump就会停止;-i    指定监听的网络接口;(如果没有指定可能在默认网卡上监听,需要指定绑定了特定IP的网卡)-w    直接将包写入文件中,并不分析和打印出来;-s 指定记录package的大小,常见 -s 0 ,代表最大值65535,一半linux传输最小单元MTU为1500,足够了-X 直接输出package data数据,默认不设置,只能通过-w指定文件进行输出

常用表达式:

关于类型的关键字,主要包括host,net,port传输方向的关键字,主要包括src , dst ,dst or src, dst and src协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'or' ,'||'其他重要的关键字如下:gateway, broadcast,less,greater

实际例子:

1. http数据包抓取 (直接在终端输出package data)

tcpdump tcp port 80 -n -X -s 0 指定80端口进行输出

2. 抓取http包数据指定文件进行输出package

tcpdump tcp port 80 -n -s 0 -w /tmp/tcp.cap

对应的/tmp/tcp.cap基本靠肉眼已经能看一下信息,比如http Header , content信息等

3. 结合管道流

tcpdump tcp port 80 -n -s 0 -X -l | grep xxxx

这样可以实时对数据包进行字符串匹配过滤

4. mod_proxy反向代理抓包

linux tcpdump抓取HTTP包的详细解释(linux抓包 udp)

线上服务器apache+jetty,通过apache mod_proxy进行一个反向代理,80 apache端口, 7001 jetty端口

apache端口数据抓包: tcpdump tcp port 80 -n -s 0 -X -i eth0   注意:指定eth0网络接口jetty端口数据抓包: tcpdump tcp port 7001 -n -s 0 -X -i lo 注意:指定Loopback网络接口

5. 只监控特定的ip主机tcpdump tcp host 10.16.2.85 and port 2100 -s 0 -X 需要使用tcp表达式的组合,这里是host指示只监听该ip

小技巧:

1. 可结合tcpdump(命令) + wireshark(图形化)

操作: 

在服务器上进行tcpdump -w /tmp/tcp.cap 指定输出外部文件scp /tmp/tcp.cap 拷贝文件到你本地wireshark &  启动wireshark通过 File -> Open  打开拷贝下来的文件,这样就可以利用进行数据包分析了剩下来的事就非常方便了

tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854

0x4745 为"GET"前两个字母"GE"

0x4854 为"HTTP"前两个字母"HT"

说明: 通常情况下:一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手

里面的几个概念:

SYN: (同步序列编号,Synchronize Sequence Numbers)ACK: (确认编号,Acknowledgement Number)FIN: (结束标志,FINish)

TCP三次握手(创建 OPEN)

客户端发起一个和服务创建TCP链接的请求,这里是SYN(J)服务端接受到客户端的创建请求后,返回两个信息: SYN(K) + ACK(J+1)客户端在接受到服务端的ACK信息校验成功后(J与J+1),返回一个信息:ACK(K+1)服务端这时接受到客户端的ACK信息校验成功后(K与K+1),不再返回信息,后面进入数据通讯阶段

数据通讯

客户端/服务端 read/write数据包

TCP四次握手(关闭 finish)

客户端发起关闭请求,发送一个信息:FIN(M)服务端接受到信息后,首先返回ACK(M+1),表明自己已经收到消息。服务端在准备好关闭之前,最后发送给客户端一个 FIN(N)消息,询问客户端是否准备好关闭了客户端接受到服务端发送的消息后,返回一个确认信息: ACK(N+1)最后,服务端和客户端在双方都得到确认时,各自关闭或者回收对应的TCP链接。

详细的状态说明(以及linux相关参数调整)

SYN_SEND客户端尝试链接服务端,通过open方法。也就是TCP三次握手中的第1步之后,注意是客户端状态sysctl -w net.ipv4.tcp_syn_retries = 2 ,做为客户端可以设置SYN包的重试次数,默认5次(大约180s)引用校长的话:仅仅重试2次,现代网络够了SYN_RECEIVED服务接受创建请求的SYN后,也就是TCP三次握手中的第2步,发送ACK数据包之前注意是服务端状态,一般15个左右正常,如果很大,怀疑遭受SYN_FLOOD攻击sysctl -w net.ipv4.tcp_max_syn_backlog=4096 , 设置该状态的等待队列数,默认1024,调大后可适当防止syn-flood,可参见man 7 tcpsysctl -w net.ipv4.tcp_syncookies=1 , 打开syncookie,在syn backlog队列不足的时候,提供一种机制临时将syn链接换出sysctl -w net.ipv4.tcp_synack_retries = 2 ,做为服务端返回ACK包的重试次数,默认5次(大约180s)引用校长的话:仅仅重试2次,现代网络够了ESTABLISHED客户端接受到服务端的ACK包后的状态,服务端在发出ACK在一定时间后即为ESTABLISHEDsysctl -w net.ipv4.tcp_keepalive_time = 1200 ,默认为7200秒(2小时),系统针对空闲链接会进行心跳检查,如果超过net.ipv4.tcp_keepalive_probes * net.ipv4.tcp_keepalive_intvl = 默认11分,终止对应的tcp链接,可适当调整心跳检查频率目前线上的监控 waring:600 , critial : 800FIN_WAIT1主动关闭的一方,在发出FIN请求之后,也就是在TCP四次握手的第1步CLOSE_WAIT被动关闭的一方,在接受到客户端的FIN后,也就是在TCP四次握手的第2步FIN_WAIT2主动关闭的一方,在接受到被动关闭一方的ACK后,也就是TCP四次握手的第2步sysctl -w net.ipv4.tcp_fin_timeout=30, 可以设定被动关闭方返回FIN后的超时时间,有效回收链接,避免syn-flood.LASK_ACK被动关闭的一方,在发送ACK后一段时间后(确保客户端已收到),再发起一个FIN请求。也就是TCP四次握手的第3步TIME_WAIT主动关闭的一方,在收到被动关闭的FIN包后,发送ACK。也就是TCP四次握手的第4步sysctl -w net.ipv4.tcp_tw_recycle = 1 , 打开快速回收TIME_WAIT,Enabling this option is not recommended since this causes problems when working with NAT (Network Address Translation)sysctl -w net.ipv4.tcp_tw_reuse =1, 快速回收并重用TIME_WAIT的链接,貌似和tw_recycle有冲突,不能重用就回收?net.ipv4.tcp_max_tw_buckets: 处于time_wait状态的最多链接数,默认为180000.

相关说明

主动关闭方在接收到被动关闭方的FIN请求后,发送成功给对方一个ACK后,将自己的状态由FIN_WAIT2修改为TIME_WAIT,而必须 再等2倍的MSL(Maximum Segment Lifetime,MSL是一个数据报在internetwork中能存在的时间)时间之后双方才能把状态 都改为CLOSED以关闭连接。目前RHEL里保持TIME_WAIT状态的时间为60秒keepAlive策略可以有效的避免进行三次握手和四次关闭的动作

其他网络重要参数

net.ipv4.tcp_rmem 参数

默认值: min=4096 default=87380 max=4194304

net.ipv4.tcp_wmem 参数

默认值: min=4096 default=16384 max=4194304

本文链接地址:https://www.jiuchutong.com/zhishi/283552.html 转载请保留说明!

上一篇:如何统计前端项目有多少行代码(前端数据统计图)

下一篇:年度固态硬盘大盘点,哪款ssd性能最好?哪个(固态硬盘近年价格走势)

  • 用博客做网站的排名(博客网站制作)

    用博客做网站的排名(博客网站制作)

  • 家属行程码怎么弄(家属的行程码)

    家属行程码怎么弄(家属的行程码)

  • 华为荣耀9x能不能双卡(华为荣耀9X能不能添加钥匙)

    华为荣耀9x能不能双卡(华为荣耀9X能不能添加钥匙)

  • 微信官方收款码能换吗(微信官方收款码和个人收款码的区别)

    微信官方收款码能换吗(微信官方收款码和个人收款码的区别)

  • qq回执编号在哪里查(qq回执编号在哪里)

    qq回执编号在哪里查(qq回执编号在哪里)

  • 华为手机怎么设置蓝牙(华为手机怎么设置下面的三个功能键)

    华为手机怎么设置蓝牙(华为手机怎么设置下面的三个功能键)

  • 快手注销第三个条件(快手注销第三个号还在吗)

    快手注销第三个条件(快手注销第三个号还在吗)

  • 快手退款商家不处理到时间了会自动退款不(快手退款商家不回复怎么办)

    快手退款商家不处理到时间了会自动退款不(快手退款商家不回复怎么办)

  • excel无法新增列怎么办(excel无法新增列,提示会挤掉末尾单元格分类汇总)

    excel无法新增列怎么办(excel无法新增列,提示会挤掉末尾单元格分类汇总)

  • 电脑主机后面的插孔分别是什么(电脑主机后面的音频插孔图)

    电脑主机后面的插孔分别是什么(电脑主机后面的音频插孔图)

  • 公众号违规记录多少次封号(公众号违规记录id是什么)

    公众号违规记录多少次封号(公众号违规记录id是什么)

  • 缩进2字符什么意思(缩进二字)

    缩进2字符什么意思(缩进二字)

  • 苹果5支持4g网络吗(苹果5能不能用4g网)

    苹果5支持4g网络吗(苹果5能不能用4g网)

  • 电脑要装固态硬盘吗(电脑装固态硬盘多少钱找人安装)

    电脑要装固态硬盘吗(电脑装固态硬盘多少钱找人安装)

  • 微信头像旁边有个耳朵(微信头像旁边有个音符)

    微信头像旁边有个耳朵(微信头像旁边有个音符)

  • 手机京东怎么看预约(手机京东怎么看发货地址)

    手机京东怎么看预约(手机京东怎么看发货地址)

  • 淘宝个人主页怎么进(淘宝个人主页怎么设置不让别人看评价)

    淘宝个人主页怎么进(淘宝个人主页怎么设置不让别人看评价)

  • 预售订单怎么加入购物车(预售订单怎么加库存)

    预售订单怎么加入购物车(预售订单怎么加库存)

  • iphone电池优化什么意思(苹果手机电池优化有什么用)

    iphone电池优化什么意思(苹果手机电池优化有什么用)

  • 抖音怎么上商品橱窗(抖音怎么上商品类目)

    抖音怎么上商品橱窗(抖音怎么上商品类目)

  • 拼多多新品标签怎么来(拼多多新品标签突然消失)

    拼多多新品标签怎么来(拼多多新品标签突然消失)

  • oppok3怎么隐藏虚拟导航键(oppok3如何隐藏桌面图标)

    oppok3怎么隐藏虚拟导航键(oppok3如何隐藏桌面图标)

  • 小米手机分身初始密码(红米手机分身)

    小米手机分身初始密码(红米手机分身)

  • 手机管家闪充模式在哪(手机管家怎么闪充)

    手机管家闪充模式在哪(手机管家怎么闪充)

  • 如何在QQ好友旁边显示王者荣耀?(如何在qq好友旁边打字)

    如何在QQ好友旁边显示王者荣耀?(如何在qq好友旁边打字)

  • python 查看程序的GPU显存占用(python程序怎么看)

    python 查看程序的GPU显存占用(python程序怎么看)

  • 【微信小程序】全局配置 - tabBar(微信小程序开发公司)

    【微信小程序】全局配置 - tabBar(微信小程序开发公司)

  • 耕地占用税中的耕地是指什么
  • 税务金三系统是什么?
  • 会计报税
  • 总公司和分公司可以在一个城市吗
  • 金蝶迷你版年结怎么操作
  • 期初是什么
  • 通过公账直接转账可以吗
  • 租房违约金怎么计算,怎么写
  • 销售额营业收入怎么填
  • 预告登记与备案的区别
  • 关于合并商誉应该减值还是摊销的辩论
  • 其他业务收入的核算内容
  • 给非企业员工佣金怎么交税
  • 分配利润顺序
  • 收到的借款利息计入什么科目
  • 餐饮发票怎么进行财税处理?
  • 税务机关核定征收契税
  • 以销定产 以产定销
  • 物流公司货车报废款怎么做账
  • 火车票的进项税率是多少
  • u盘如何进行杀毒
  • win10新建文件夹快捷键ctrl加什么
  • 帮公司垫付的钱怎么要
  • thinkphp5开发教程
  • linux系统情况
  • 设置u盘优先启动怎么设置
  • live updater
  • 结转完工工程成本是什么
  • 长期待摊费用如何结转
  • 操作系统的类型和比较
  • thinkphp登录验证
  • 汇算清缴哪些表必填
  • 库存现金清点怎么做
  • 建房转让协议书
  • 小型微利企业税收优惠2023
  • [Vue]Vue3学习笔记(尚硅谷)
  • 印花税的相关问题
  • eterm指令退出a
  • php ajax 实现
  • 开票提示未安装控件
  • 房地产企业所得税计算方法
  • 印花税实收资本和资本公积
  • 所得税汇算清缴退税会计分录怎么做
  • 积分兑换业务有风险吗
  • 月初领票是不是要等到报完税才可以领
  • 资源税申报怎么操作
  • 海外工作工资税收问题
  • 累计折旧借贷方向表示什么意思
  • 对方多开票账务会怎么样
  • 产业扶持资金管理办法
  • 一般纳税人的月销售额是多少可以不用交增值税
  • 投资性房地产的定义
  • 银行承兑汇票怎么操作
  • 慈善捐款流程
  • 年底所得税的会计分录
  • 总分类账的记账
  • mysql 数据修改
  • win7网页无法访问
  • ubuntu 9.04 X3100 显卡开启3D特效
  • centos6 docker
  • win7系统怎么把c盘的内存加到d盘
  • win10周年版
  • win8怎么查看隐藏文件
  • win7系统电脑蓝牙怎么开
  • android 数据库app
  • linux运维是必死之路
  • cocos2dx quick lua 学习笔记1
  • javascript数据结构
  • React Native react-navigation 导航使用详解
  • js中的filter方法和map方法
  • 怎么用python下载付费音乐
  • js判断字符串字符出现的次数
  • c#委托实现的步骤
  • Unity GameObject.activeSelf, GameObject.activeInHierarchy,GameObject.SetActive和SetActiveRecursively
  • 广东省税务局官网 国家税务总局
  • linux显示中文
  • 地税的发票是什么样
  • 江苏省南京市国医堂
  • 天津静海离天津市区多远
  • 地税注销需要什么资料
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设