Linux - 探秘/proc/sys/net/ipv4/ip_local_port_range

文章目录

  • Pre
  • 概述
  • 默认值及其意义
  • 评估需求
  • 如何调整
    • 临时修改
    • 永久修改
    • 测试和验证
  • 修改的潜在影响

在这里插入图片描述


Pre

Linux - 探秘 Linux 的 /proc/sys/vm 常见核心配置


计划:

  1. 简要解释 /proc/sys/net/ipv4/ip_local_port_range 文件的功能和作用。
  2. 介绍该文件的默认值及其影响。
  3. 说明如何修改该文件及其对系统的潜在影响。

概述

/proc/sys/net/ipv4/ip_local_port_range 是一个虚拟文件,用于定义Linux系统上用户态应用程序可以分配的本地端口范围。这个范围内的端口通常用于创建临时的、短时间使用的网络连接,例如客户端应用程序与服务器的连接。


默认值及其意义

在这里插入图片描述

默认情况下,ip_local_port_range 的值通常是 32768 60999。这意味着系统会在32768到60999之间为本地的临时端口分配端口号。这些端口用于系统发起的出站连接,并在出站连接结束时释放。

例如,当你在客户端系统上启动一个HTTP请求时,客户端的操作系统将从这个范围内选择一个端口号作为源端口,以用于与目标服务器的通信。


评估需求

在选择合适的端口范围之前,需要了解系统的实际使用场景。例如:

  • 高并发服务器:如果系统是高并发服务器,需要支持大量的出站连接,那么你需要一个更广的端口范围,以防止端口耗尽。
  • 安全考虑:某些服务可能需要限制端口范围以减少暴露面,尤其是在多租户环境中。

问题考量:

  • 当前系统需要处理多少个并发出站连接?
  • 是否有特定的服务或协议要求使用某些端口范围?

在考虑以上因素后,选择合适的端口范围:

  • 常见设置:如果系统需要支持高并发,建议选择较大的范围,如 1024-65535,这将提供超过60000个端口用于分配。
  • 定制设置:对于一般应用,32768-60999 是合理的默认设置。若需要更大的范围,可适当扩大范围。

例如,假设一个高并发应用需要处理大量短时间的出站连接,可以设置为:

echo "1024 65535" > /proc/sys/net/ipv4/ip_local_port_range

如何调整

可以通过以下方式查看当前的端口范围:

cat /proc/sys/net/ipv4/ip_local_port_range

输出将显示当前配置的端口范围,例如:

32768 60999

临时修改

要修改此范围,你可以使用以下命令:

echo "1024 65535" > /proc/sys/net/ipv4/ip_local_port_range

这个命令将本地端口范围修改为1024到65535。

永久修改

要永久更改该设置,建议在 /etc/sysctl.conf 文件中添加或修改以下行:

net.ipv4.ip_local_port_range = 1024 65535

然后执行以下命令以使更改生效:

sysctl -p

测试和验证

测试方法

  • 模拟负载:使用负载测试工具(如 abwrkjMeter)模拟高并发出站连接。
  • 监控工具:通过 netstatss 工具监控连接状态和端口使用情况,确保新的配置能支持预期的并发负载。

命令示例:

netstat -tn | grep -E "ESTABLISHED" | awk '{print $4}' | cut -d':' -f2 | sort | uniq -c

在这里插入图片描述

通过以上命令可以统计当前使用的端口,并分析端口分配的情况。

验证点

  • 确认端口分配是否符合预期的范围。
  • 系统无连接失败:所有端口均可正常分配,无端口耗尽或连接失败现象。
  • 性能达标:系统在高并发情况下仍然保持稳定,并且性能指标在可接受范围内。
  • 长期稳定性:在一段时间的运行后,系统仍然保持稳定,没有出现异常情况。

修改的潜在影响

修改这个范围可能影响到系统的网络连接行为。例如,扩展范围可以在高并发应用程序中减少端口耗尽的可能性。相反,缩小范围可能导致系统在高并发场景中无法分配足够的临时端口,从而导致连接失败。

此外,将范围设置得过小或者包含保留端口(如1024以下的端口)可能会带来安全风险或与某些系统服务产生冲突。

在这里插入图片描述

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

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

相关文章

螺丝、螺母、垫片等紧固件常用类型详细介绍

螺钉、螺母、垫片等紧固件介绍 螺钉 杯头内六角 首先介绍一下杯头内六角,杯头内六角是我们用的最常见的一种螺钉,如果你对选择螺钉没有什么想法,可以直接无脑选杯头内六角去使用。 比如说我们有一个零件加工了通孔,另一个零件加…

Vue3.0组合式API:setup()函数

1、什么是组合式API Vue 3.0 中新增了组合式 API 的功能,它是一组附加的、基于函数的 API,可以更加灵活地组织组件代码。通过组合式 API 可以使用函数而不是声明选项的方式来编写 Vue 组件。因此,使用组合式 API 可以将组件代码编写为多个函…

CPU 和 GPU:为什么GPU更适合深度学习?

目录 什么是 CPU ? 什么是 GPU ? GPU vs CPU 差异性对比分析 GPU 是如何工作的 ? GPU 与 CPU 是如何协同工作的 ? GPU vs CPU 类型解析 GPU 应用于深度学习 什么是 CPU ? CPU(中央处理器)…

git push : RPC failed; HTTP 400 curl 22 The requested URL returned error: 400

git push 出现RPC failed; HTTP 400 curl 22 The requested URL returned error: 400 问题 git push Enumerating objects: 11, done. Counting objects: 100% (11/11), done. Delta compression using up to 8 threads Compressing objects: 100% (10/10), done. error: RPC …

对中文进行文本分类的常用方法

一:关键词分类和基于规则的分类 关键词分类和基于规则的分类是两种常见的文本分类方法,它们可以应用于中文文本的分类。下面我将详细介绍这两种方法: 关键词分类 原理:这种方法通过识别文本中出现的特定关键词或短语来确定文本的…

STM32常用数据采集滤波算法

例如,STM32进行滤波处理时,主要目的是处理数据采集过程中可能产生的噪声和尖刺信号。这些噪声可能来自电源干扰、传感器自身的不稳定性或其他外部因素。 1.一阶互补滤波 方法:取a0~1,本次滤波结果(1-a)本次采样值a上…

基于 jenkins 的持续集成、持续部署方案

工具介绍 python3.12 fastapi 0.92.0 uvicorn 开发部署web项目;git gitee 实现代码版本管理;jenkins docker 实现持续集成、持续部署;centos7 作为jenkins服务器 & 部署服务器;有条件的可以再启动一台服务器作为部署测试…

学习笔记(一)

前言 一、对象 1、由类建模而成,是消息、数据和行为的组合 2、可以接收和发送消息,并利用消息进行彼此的交互。消息要包含传送给对象接收的信息 3、类的实例化:把类转换为对象的过程叫类的实例化。 4、对象的特性 (1) 对象有状态&#…

RabbitMQ Spring客户端使用

注解声明式队列和交换机 java自带序列化工具类,将java对象序列化为字节数组,用于网络传输。 jdk序列号存在缺陷,(不安全,占用空间大等) 推荐使用JSON的序列化: springboot扫描包使配置生效&…

windows下自启springboot项目(jar+nginx)

1、将springboot项目打包为jar 2、新建文本文档 test.txt,并输入 java -jar D:\test\test.jar(修改为自己的jar包位置) 保存 然后修将后缀名改为 .bat 3、在同一目录再新建 文本文档test.txt,输入以下内容,&…

图数据库的力量:深入理解与应用 Neo4j

图数据库的力量:深入理解与应用 Neo4j 文章目录 图数据库的力量:深入理解与应用 Neo4j1、什么是 Neo4j?版本说明 2、Neo4j 的部署和安装Neo4j Web 工具介绍 3、体验 Neo4j加载数据查询数据数据结构 4、Cypher 入门创建数据查询数据关系深度查…

【数据结构篇】~排序(1)之插入排序

排序~插入排序 前言插入排序1.直接插入排序(时间复杂度:O(N^2))1.思想2.代码 2.希尔排序(时间复杂度:O(N∙))1.思路简易证明希尔排序的复杂度 2.代码 前言 四大排序,今天解决插入排序 堆排序和冒泡排序已经写过了&am…

从安装ffmpeg开始,把一个视频按照每秒30帧fps剪切为图片

ffmpeg -i demo.mp4 -vf fps1 -start_number 0 %5d.jpg没有ffmpeg 的去官网下载, ffmpeg.org/download.html 下载好之后,解压进入bin文件夹 复制当前路径,下一步 配置环境 进入本机环境变量,把地址添加到path中 之后进入anacond…

IO模型---BIO、NIO、IO多路复用、AIO详解

本篇将想给详细解释一下什么是BIO、NIO、IO多路复用以及AIO~ 同步的阻塞(BIO)和非阻塞(NIO)的区别 BIO:线程发来IO请求后,一直阻塞着IO线程,需要缓冲区这边数据准备好之后,才会进行下一步的操作。 举个🌰&#xff1…

Golang协程泄漏定位和排查

Golang协程泄漏定位和排查 1 场景:无缓冲channel写阻塞2 排查和定位思路2.1 Golang pprof2.2 协程数监控2.3 操作系统内存泄漏 参考 1 场景:无缓冲channel写阻塞 package mainimport ("log""net/http"_ "net/http/pprof"…

苍穹外卖 修改nginx的端口后websocket连接失败解决

苍穹外卖 修改nginx的端口后websocket连接失败解决 问题: 后端配置好websocket后前端仍显示如图所示的错误 解决: 先用websocket在线工具测试后端是否能正常连接(这个基本上不会出现问题)用f12观察前端发送的请求 正常来说这个请…

cJSON-轻量级解析模块、字符串的神——编织STM32C8T6与阿里云信息传递的纽带

编写方向:本人就不泛泛的编写一篇什么一文学会cJSON了,没什么突出点,也就我水水字数,你们看来看去也不懂,本人是从上阿里云传信息接触的cJSON的,我就此写一篇针对性的文章,希望对大家有用&#…

【小鹏汽车用户平台-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…

图解Self-Attention和代码实现,大语言模型基础思维导图

文章目录 1 Self-Attention的概念注意优缺点 2 Self-Attention的原理Q,K,V, and Self-Attention计算公式代码实现 Self-Attention的计算细节输入是如何Embedding的?Word EmbeddingsSentence EmbeddingsPre-trained Embeddings SelfAttention是如何计算的计算图 4 Se…

线性代数(宋浩版)(4)

2.4逆矩阵 (不要把矩阵放在分母上) 方阵的行列式 性质1 性质2 性质3 伴随矩阵(只有方阵才有) 1.求出所有元素的代数余子式(矩阵先求行列式)。 2.按行求的代数余子式按列放。 定理1(重要&…