news 2026/7/2 9:17:47

Linux TCP海量连接系统如何配置?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux TCP海量连接系统如何配置?

前言

Linux系统默认的tcp连接数是比Windows少很多的,服务端程序在Windows上成功接收大量设备连接,Linux却不行,就需要我们自己来手动配置;

1、查看ipv4端口范围

cat /proc/sys/net/ipv4/ip_local_port_range

2、更改ipv4端口范围

sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535"

3、查看系统允许操作数

ulimit -n

4、更改系统允许操作数(重中之中)

ulimit -n 65535

提醒:可能在这一步操作之后,再启动服务端程序,海量设备连接就已经可以成功了,若设备过多,可将65535 改为 1000000...

永久更改:

sudo vim /etc/security/limits.conf

复制下方:

限制root用户:

root soft nofile 65535 root hard nofile 65535

允许所有用户:

* soft nofile 65535 * hard nofile 65535

复制完成后,输入:wq保存并退出;

5、配置TCP监听、连接数等

配置路径:

vim /etc/sysctl.conf

复制下方(可去除文字):

fs.file-max = 2097152 net.core.somaxconn = 65535 net.ipv4.tcp_max_syn_backlog = 65535 net.core.netdev_max_backlog = 65535 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30

复制之后,输入:wq保存并退出

6、结语讲解

1.fs.file-max = 2097152

  • 含义‌:‌系统级最大文件句柄数‌。

  • 作用‌:限制整个操作系统所有进程可以打开的文件描述符(File Descriptor, FD)总数。在 Linux 中,TCP 连接、普通文件、Socket 等都视为文件描述符。

  • 为什么调大‌:默认值通常较小(如几万个)。在高并发场景下,如果系统总 FD 数达到上限,即使单个进程的ulimit足够,新连接也会因系统资源耗尽而被拒绝,表现为Too many open files或连接建立失败。

  • 数值解读‌:2097152 约等于 200 万,意味着系统同时最多能维持约 200 万个打开的文件或网络连接。

2.net.core.somaxconn = 65535

  • 含义‌:‌监听队列的最大长度(全连接队列)‌。

  • 作用‌:定义了处于ESTABLISHED状态(即已完成三次握手,等待应用程序accept()取走)的 Socket 队列最大长度。

  • 为什么调大‌:默认值通常为 128。如果并发连接请求瞬间激增,而应用程序处理accept的速度跟不上,队列就会满。一旦队列满,新的已握手连接会被丢弃或重置,导致客户端连接超时或报错Connection refused

  • 注意‌此值不应超过应用层 backlog 参数(如 Nginx 的listen backlog或 Java 的backlog参数)。

3.net.ipv4.tcp_max_syn_backlog = 65535

  • 含义‌:‌半连接队列的最大长度‌。

  • 作用‌:定义了处于SYN_RECV状态(已收到客户端 SYN 包,发送了 SYN+ACK,等待客户端 ACK)的连接队列最大长度。这是 TCP 三次握手的中间状态。

  • 为什么调大‌:默认值通常为 1024 或 2048。在面对 SYN Flood 攻击或极高并发新建连接时,如果半连接队列满,内核会丢弃新的 SYN 包,导致客户端连接超时。增大此值可以容纳更多正在握手的连接。

  • 关联‌:通常建议此值与somaxconn保持一致或略大,以应对握手阶段的突发流量。

4.net.core.netdev_max_backlog = 65535

  • 含义‌:‌网络设备接收队列的最大长度‌。

  • 作用‌:当网卡接收数据包的速度快于内核协议栈处理速度时,数据包会暂存于此队列中。如果队列满,新到达的数据包将被直接丢弃。

  • 为什么调大‌:默认值通常为 1000。在高带宽或高包率(PPS)场景下,内核软中断可能来不及处理所有数据包,导致丢包。增大此值可以作为缓冲区,吸收突发流量,减少因内核处理延迟导致的丢包。

  • 适用场景‌:特别适用于千兆/万兆网卡、高吞吐量的网关或负载均衡器。

5.net.ipv4.tcp_syncookies = 1

  • 含义‌:‌启用 SYN Cookies 机制‌。

  • 作用‌:一种防御 SYN Flood 攻击的保护机制。当半连接队列(tcp_max_syn_backlog)满时,内核不再丢弃新的 SYN 包,而是通过一种特殊的算法(Cookie)生成初始序列号回应客户端,而不分配完整的 Socket 结构体内存。只有当客户端返回正确的 ACK 时,内核才分配资源建立连接。

  • 为什么开启‌:在不显著增加内存消耗的前提下,极大提高了服务器抵御 SYN Flood 攻击的能力,保证在极端压力下仍能为合法用户提供服务。

6.net.ipv4.tcp_tw_reuse = 1

  • 含义‌:‌允许重用 TIME_WAIT 状态的 Socket‌。

  • 作用‌:默认情况下,TCP 连接关闭后会进入TIME_WAIT状态持续 60 秒(由tcp_fin_timeout或其他参数决定),期间该端口不能被复用。开启此选项后,如果新的连接请求使用的四元组(源IP、源端口、目的IP、目的端口)与处于TIME_WAIT状态的连接相同,内核允许直接复用该 Socket,跳过等待时间。

  • 为什么开启‌:对于作为‌客户端‌发起大量短连接 outbound 连接的服务器(如微服务调用、代理后端),可以快速回收端口资源,避免Cannot assign requested address错误。

  • 注意‌:在 NAT 环境下需谨慎使用,可能导致数据包混淆;但在大多数内部集群通信中是安全的且必要的。

7.net.ipv4.tcp_fin_timeout = 30

  • 含义‌:‌FIN-WAIT-2 状态的超时时间‌。

  • 作用‌:定义了当本地主动关闭连接并收到对方的 FIN 包后,进入FIN-WAIT-2状态的保持时间。默认值通常为 60 秒。

  • 为什么调小‌:将其从 60 秒降低到 30 秒(甚至更低,如 15 秒),可以加速无效连接的清理过程,释放内核内存和文件描述符资源。这对于高并发短连接场景非常有效,能更快地回收系统资源。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/2 9:17:47

iPhone 丢失微信记录没备份?官方迁移工具自救

换机引发的"消失案"小王换了新iPhone,旧手机上的微信聊天记录没来得及备份。更糟的是,她在旧手机上清理存储时不小心把一个重要工作群的聊天记录删了。没有iCloud备份,没有电脑备份——这些记录真的就彻底没了吗?很多iP…

作者头像 李华
网站建设 2026/7/2 9:17:46

合同总是找不到?合同台账标准化建立指南

"那份合同在哪里?"这句话,在很多企业的法务和财务部门几乎每周都会被问到。合同散落在不同人的电脑里、不同部门的共享盘上、不同格式的台账表格中,要找一份三年前签的合同,往往需要翻遍邮件、询问多个部门、最终还未必…

作者头像 李华
网站建设 2026/7/2 9:17:46

Proxmox VE终极配置指南:10分钟掌握pvetools脚本工具集

Proxmox VE终极配置指南:10分钟掌握pvetools脚本工具集 【免费下载链接】pvetools proxmox ve tools script(debian9 can use it).Including email, samba, NFS set zfs max ram, nested virtualization ,docker , pci passthrough etc. for english user,please lo…

作者头像 李华
网站建设 2026/6/27 17:06:54

Prometheus发现故障只是第一步,把告警送到钉钉才是真正的闭环

前言 很多团队搭建Prometheus监控的时候,都会把重点放在指标采集和可视化上。 服务器CPU、内存、磁盘、容器状态、数据库性能,各种监控大盘做得越来越漂亮。Grafana里的曲线实时跳动,看起来整个系统都尽在掌握之中。但真正经历过线上故障的…

作者头像 李华
网站建设 2026/6/27 16:54:45

膜结构汽车棚的膜材容易损坏吗?

《【膜结构汽车棚膜材】哪家好:专业深度测评排名前五》开篇:定下基调在城市中,膜结构汽车棚越来越常见,它不仅美观,还能为车辆提供良好的防护。然而,膜结构汽车棚的膜材是否容易损坏是众多消费者关心的问题…

作者头像 李华