计算机网络--tcpdump和iptable设置、内核参数优化策略

news2024/11/16 21:49:36

tcpdump工具

tcpdump命令:
在这里插入图片描述

选项字段:

在这里插入图片描述

过滤表达式:

在这里插入图片描述

实用命令:

TCP三次握手抓包命令:
#客户端执行tcpdump 抓取数据包
tcpdump -i etho tcp and host 192.168.12.36 and port 80 -W timeout.pcap

netstat命令

netstat -a 命令可以显⽰所有⽹络连接

-t:TCP -u:UDP

-l :哪些端口正在监听连接

-p :显⽰与每个⽹络连接关联的进程ID和进程名

netstat -anp | grep 端口号 ⽤于查看指定端口的占⽤情况

-a:所有socket

-n:直接显⽰数字类型的IP和端口

-p:显⽰正在使⽤连接的进程ID和进程名称

查看TCP连接状态
netstat -napt | grep 192.168.12.37

在这里插入图片描述

查看TCP半连接队列的大小
netstat -napt | grep SYN_RECV | wc -l

在这里插入图片描述

netstat -s 观察半连接队列溢出的情况:
netstat -s | grep "SYNS to LISTEN"

在这里插入图片描述

隔几秒执行几次,如果有上升的趋势,说明当前存在半连接队列溢出的现象

查看TCP全连接队列溢出情况
netstat -s | grep overflowed

在这里插入图片描述

ss命令:主要⽤于获取socket统计信息,它可以显⽰和 netstat 命令类似的输出内容。但ss命令的优势在于它能够显⽰更多更详细的有关TCP和UDP连接状态的信息,而且⽐netstat更快速更高效

查看服务端进程accept队列的长度
ss -ltn

在这里插入图片描述

Wireshark 工具

命令: 把抓取的数据包保存到 ping.pcap 文件

tcpdump -i eth1 icmp and host 183.232.231.174 -W ping. pcap

将跑ping.pcap文件用wireshark打开

在这里插入图片描述

在这里插入图片描述

iptable防火墙配置规则

#客户端配置的防火墙规则
iptables -I INPUT -S 192.168.12.36 -j DROP

在服务端配置防火墙,屏蔽客户端 TCP 报文中标志位是 ACK 的包,也就是当服务端收到客户端的 TCP ACK 的报文时就会丢弃。

iptables -I INPUT -s 192.168.12.37 -p tcp --tcp-flag ACK ACK -j DROP
客户端设置了防火墙,屏蔽了服务端的网络包,为什么 tcpdump 还能抓到服务端的网络包?

添加 iptables 限制后, tcpdump 是否能抓到包 ,这要看添加的 iptables 限制条件:

  • 如果添加的是 INPUT 规则,则可以抓得到包
  • 如果添加的是 OUTPUT 规则,则抓不到包

网络包进入主机后的顺序如下:

  • 进来的顺序 Wire -> NIC -> tcpdump -> netfilter/iptables
  • 出去的顺序 iptables -> tcpdump -> NIC -> Wire

TCP内核参数以及优化策略

优化三次握手的参数

策略TCP内核参数
调整SYN报文重传次数tcp_syn_retries
调整SYN半连接队列的长度tcp_max_syn_backlog somaxconn
backlog(非内核参数,NGINX配置参数)
调整SYN+ACK报文的重传次数tcp_synack_retries
调整accept队列的长度 m i n ( b a c k l o g , s o m a x c o n n ) min(backlog, somaxconn) min(backlog,somaxconn)
绕过三次握手(类似于长连接)tcp_fastopen

backlog参数:也就是listen(int sockfd, int backlog)的参数,也就是NGINX/Tomcat的参数

优化四次挥手的参数

策略TCP内核参数
调整FIN报文重传次数tcp_orphan_retries
调整FIN_WAIT2状态的时间
(只适用close函数关闭的连接)
tcp_fin_timeout
调整孤儿连接的上限个数
(只适用close函数关闭的连接)
tcp_max_orphans
调整TIME_WAIT状态的上限个数tcp_max_tw_buckets
复用TIME_WAIT状态的连接tcp_tw_reuse(只适用客户端)
tcp_timestamps

数据传输的优化

策略TCP内核参数
扩大窗口大小tcp_window_scaling
调整发送缓冲区范围tcp_wmem
调整接收缓冲区的范围tcp_rmem
打开接收缓冲区动态调节tcp_moderate_rcvbuf
调整内存范围tcp_mem
TCP接收和发送缓冲区和Ring Buffer是一个东西吗?

数据流从网卡到用户空间的过程

一次数据流从网卡到用户空间的过程:

  • 数据到达网卡:数据包通过网络到达网卡,网卡硬件将数据包放入环形缓冲区中。
  • 硬件中断:网卡生成一个硬件中断通知CPU有新数据包到达。
  • 中断处理程序:CPU执行网卡驱动程序的中断处理程序,读取环形缓冲区中的数据包并将其传递给内核网络栈。
  • 网络协议栈处理:内核网络栈处理数据包,将其存放到对应的TCP接收缓冲区(受tcp_rmem参数限制)。
  • 传递到用户空间:用户空间应用程序通过系统调用(如recvread)从TCP接收缓冲区读取数据。
sk_buff和发送缓冲区也不是一个东西

发送网络数据的时候,涉及的内存拷贝操作:

  • 调用发送数据的系统调用的时候,内核会申请一个内核态的 sk_buff 内存,将用户待发送的数据拷贝到 sk_buff 内存,并将其加入到发送缓冲区。这里的发送缓冲区其实就是tcp_wmem控制的缓冲区。
    • TCP协议需要将sk_buff拷贝出一份保证收到ACK
    • IP层发现sk_buff大于MTU时也需要进行拆分拷贝
  • DMA从内核缓冲区将数据拷贝到网卡的Ring Buffer中。等待网卡发送。
    参考:
  1. https://blog.csdn.net/weixin_36338224/article/details/107035214
  2. 小林coding-图解网络

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1924235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

昇思25天学习打卡营第12天 | ResNet50图像分类

昇思25天学习打卡营第12天 | ResNet50图像分类 文章目录 昇思25天学习打卡营第12天 | ResNet50图像分类ResNet网络模型残差网络结构Building BlockBottleneck 训练数据准备训练数据可视化 网络构建Build Block结构Bottleneck结构ResNet50网络 模型训练与评估训练验证迭代数据集…

Swiftui中几种常用的数据存储方式@AppStorage/UserDefaults/CoreData/File Storage/Keychain等

在 SwiftUI 中,有多种常用的数据存储方式,根据需求的不同,可以选择适合的存储方案。以下是几种常用的数据存储方式: AppStorage/UserDefaults/CoreData/File Storage/Keychain,分别来看一下他们的使用场景和区别。 1.…

【Linux 文件读写描述符重定向 Linux 一切皆文件缓冲区】

文章目录 一、文件的读写操作二、文件描述符三、文件重定向四、理解 Linux 一切皆文件五、文件缓冲区 一、文件的读写操作 文件内容属性 当文件没有被操作的时候,一般文件还是在磁盘当中 文件操作文件内容的操作文件属性的操作,文件操作有可能即改变内容…

实战:docker式部署frp内网穿透-2024.7.13(测试成功)

前提 首先就需要准备好一台云服务器,用于提供公网 IP 和流量转发。至于购买哪家的云服务产品,本着能省则省的原则,这个当然是哪家便宜用哪家呢。 我手上目前有闲置的腾讯云的服务器,刚好可以用来作为内网穿透的机器,…

MySQL篇十:事务

文章目录 前言1. 什么是事务?2. 为什么会出现事务3. 事务的版本支持4. 事务提交方式5. 事务常见操作方式6. 事务隔离级别6.1 如何理解隔离性16.2 如何理解隔离性26.2.1 读-写6.2.2 undo 日志6.2.3 模拟 MVCC6.2.4 RR 与 RC的本质区别 前言 CURD不加控制,…

【探索Linux】P.39(传输层 —— TCP的三次 “握手” 和四次 “挥手” )

阅读导航 引言一、TCP的三次握手1. 简介2. 图解三次握手3. 名词解释(1)SYN(同步序列编号)包(2)SYN-ACK(同步确认)包(3)ACK(确认)包 4.…

【CTF-Crypto】数论基础-02

【CTF-Crypto】数论基础-02 文章目录 【CTF-Crypto】数论基础-021-16 二次剩余1-20 模p下-1的平方根*1-21 Legendre符号*1-22 Jacobi符号*2-1 群*2-2 群的性质2-3 阿贝尔群*2-4 子群2-11 群同态2-18 原根2-21 什么是环2-23 什么是域2-25 子环2-26 理想2-32 多项式环 1-16 二次剩…

C语言的神髓

从应用的角度出发,聊一聊C语言最精妙的部分。 ​​​​​​​ ​​​​​​​

unity 2020版本packManager没有AssetBundles

1.Packages->manifest.json打开manifest.json文件 2.添加"com.unity.assetbundlebrowser": "1.7.0", 保存即可

Readiris PDF Corporate / Business v23 解锁版安装教程 (PDF管理软件)

前言 Readiris PDF Corporate / Business 是一款高性能的 OCR(光学字符识别)软件,能够帮助用户将纸质文档、PDF 文件或图像文件转换为可编辑和可搜索的电子文本。该软件提供专业级的功能和特性,非常适合企业和商业使用。使用 Rea…

win10 docker-compose搭建ELK日志收集

elk的威名大家都知道,以前前司有专门的人维护,现在换了环境,实在不想上服务器看,所以就摸索下自己搭建,由于现场服务器是需要类似向日葵那样连接,我还是把日志弄回来,自己本地filebeat上传到es中…

【软件测试】LoadRunner | 基本概念 | VUG录制脚本 | 脚本加强 | Controller设计测试场景 | Analysis产生测试报告

文章目录 LoadRunner一、LoadRunner的基本概念功能:原理:组成: 二、开发测试脚本1.VUG录制脚本1.WebTours系统WebTours的配置:成功访问后进行注册 2.脚本录制3.运行(回放) 2.脚本加强1.插入事务插入函数:注意事项 2.插…

如何计算摄像头一个像素对应的实际面积(热成像仪选型1)

1. 前言 热成像仪广泛应用于缺陷检测,那么如何选择热成像仪,以满足缺陷检测需求?关键问题是:如何知道热成像仪能不能拍摄清楚我的缺陷呢?,要回答这个问题,就需要计算出热成像仪在最佳拍摄距离下…

2.5 OJ 网站的使用与作业全解

目录 1 OJ 网站如何使用 1.1 注册账户 1.2 登录账户 1.3 做题步骤 2 本节课的 OJ 作业说明 3 章节综合判断题 4 课时2作业1 5 课时2作业2 6 课时2作业3 1 OJ 网站如何使用 〇J 是英文 Online Judge 的缩写,中文翻译过来是在线判题。当用户将自己编写的代码…

浪潮天启防火墙TQ2000远程配置方法SSL-V偏、L2xx 配置方法

前言 本次设置只针对配置V偏,其他防火墙配置不涉及。建议把防火墙内外网都调通后再进行V偏配置。 其他配置可参考:浪潮天启防火墙配置手册 配置SSLVxx 在外网端口开启SSLVxx信息 开启SSLVxx功能 1、勾选 “启用SSL-Vxx” 2、设置登录端口号&#xff0…

ROS1 DWB 与 ROS2 DWA 比较

“DWA算法(dynamic window approach)是移动机器人在运动模型下推算(v,w)对应的轨迹,确定速度采样空间或者说是动态窗口(三种限制);在速度空间(v,w)中采样多组速度,并模拟这些速度在一定时间内的运动轨迹,通过一个评价函数对这些轨迹打分,选取最优的轨迹来驱动机器人运动”。ROS…

如何利用桌面工作计划软件制定自己的to do清单?

在我们的日常生活和工作中,经常会遇到各种各样的任务需要完成。如果没有一个明确的计划和安排,我们可能会感到混乱和压力,而桌面工作计划软件可以帮助我们更好地管理和规划我们的时间和任务。今天,我们就来聊聊如何利用这些工具&a…

职升网:二级建造师考试科目分析!

二级建造师考试包含三个主要科目,它们分别是《建设工程施工管理》、《建设工程法规及相关知识》以及《专业工程管理与实务》。以下是这三个科目的详细考试内容: 建设工程施工管理: 此科目作为建造师考试的基础科目,其核心内容是…

走进linux

1、为什么要使用linux 稳定性和可靠性: Linux内核以其稳定性而闻名,能够持续运行数月甚至数年而不需要重新启动。这对于服务器来说至关重要,因为它们需要保持长时间的稳定运行,以提供持续的服务 安全性: Linux系统…

酷克数据亮相第13届PostgreSQL中国技术大会,获数据库杰出贡献奖

7 月 12 日,第 13 届 PostgreSQL 中国技术大会在杭州盛大开幕。本次大会以“聚焦云端创新,汇聚智慧共享”为主题,邀请了国内外 PG 领域众多行业大咖、学术精英及技术专家,共同探讨数据库领域的发展趋势、技术创新和实践经验。酷克…