linux保留端口避免被随机分配占用方式(ip_local_reserved_ports)

 更新时间:2025年09月19日 09:18:32   作者:IT杂人  
文章分析Nginx服务器偶发端口冲突问题,指出因端口复用机制导致的连接数虚高现象,提出通过扩大端口范围、保留特定端口及分离Nginx与应用服务部署的解决方案,强调端口动态分配特性与实际资源消耗的差异

现象

nginx所在服务器上的应用偶现规划的端口被探测到激活,从而导致被ng分配请求,但却给不了正常的数据;

同时:

  • 通过命令netstat -anlp|wc -l 显示有大量tcp连接,对open files值也有参考意义
  • 通过命令netstat -anlp|awk '{print $4}'|sort|uniq -c|wc -l显示有大量端口占用,统计第四列表示本地使用的端口(会重复)

解决1:范围增大和保留端口不被占用

TCP/IP协议栈从ip_local_port_range中随机选取源端口时,会排除ip_local_reserved_ports中定义的端口,因此不会出现端口被占用导致服务无法启动的问题。

使用net.ipv4.ip_local_port_range参数,规划出一段端口段预留作为服务的端口,这种方法是可以解决当前问题,但是会有个问题,端口使用量减少了,当服务器需要消耗大量的端口号的话,比如反代服务器,就存在瓶颈了。

判断是否规划的端口在随机分配端口(也可增加范围)

sysctl -a |grep net.ipv4.ip_local_port_range

默认:

net.ipv4.ip_local_port_range = 32768 60999

当长连接比较多时,可适当增加此参数

如果端口在随机分配端口之内

则写如下配置,以保留不会被分配。

vim /etc/sysctl.conf

#支持“-”写端口段:33000-33100
net.ipv4.ip_local_reserved_ports = 35080

保存后,执行命令生效:sysctl -p

解决2:把ng服务与应用服务分开部署

当ng与需要反代的服务放一起时,会随机分配端口与反代服务映射,而因为都在同一台服务器,并发高时,此端口会被占用;

最大可用端口数

IP的端口是双字节,也就是256256-1, 256256对计算机来说就是0,因为此最大的端口号是65535而不是65536,当然端口数值是0-65535,数量是65536个,但0一般不用,故而我们通常都说65535,而且端口号最大也是65535,所以我们都说端口是65535

如何突破端口限制

每个机器还可以装多个网卡,在极端情况下,是可能通过增加网卡IP的形式来突破。

根据tcp连接四要素:

【源IP、源Port、目标IP、目标Port】,机器自身系统无关,在交互时以网卡标识。

实际几乎大多情况

端口不是说占用了就一直是你的了,你不用了还可以释放,释放后别的程序还能接着使用,所以,动态利用之下,很难把端口占完的。

其二、要分清端口和连接。一个端口可以有若干个连接,如nginx,普通linux上,一个80端口就能并发10万+的连接,极限情况下,可以近百万。所以,由于端口复用,其实并不会用到那么多端口。

所以,65536个端口用完的话基本上不会出现。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux中的screen命令使用详解

    Linux中的screen命令使用详解

    这篇文章主要介绍了Linux中的screen命令使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Linux之CentOS7下如何关闭SELINUX

    Linux之CentOS7下如何关闭SELINUX

    这篇文章主要介绍了Linux之CentOS7下如何关闭SELINUX问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Linux虚拟机复制文件到Windows主机的解决办法

    Linux虚拟机复制文件到Windows主机的解决办法

    这篇文章主要介绍了Linux虚拟机复制文件到Windows主机的解决办法,文中通过代码示例和图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-07-07
  • Linux VPS备份教程 数据库/网站文件自动定时备份

    Linux VPS备份教程 数据库/网站文件自动定时备份

    这篇文章老左分享目前大家比较常用的自动定时备份方案,数据库发送到我们的邮箱、文件发送同步到我们另外空间FTP中
    2012-09-09
  • Ubuntu服务器下搭建php运行环境的方法

    Ubuntu服务器下搭建php运行环境的方法

    这篇文章主要介绍了Ubuntu服务器下搭建php运行环境的方法,简单分析了Ubuntu操作系统环境下搭建Apache、php及mysql模块相关步骤、命令与操作技巧,需要的朋友可以参考下
    2018-04-04
  • 如何修改linux操作系统下文件颜色提示

    如何修改linux操作系统下文件颜色提示

    修改Linux下文件颜色提示的方法:拷贝`DIR_COLORS`文件到home目录,编辑并修改颜色代码,保存后使用`eval dircolors ~/.dircolors`使更改生效,如果`ls`命令没有变化,可以使用`ls --color=auto`,在`~/.cshrc`中添加别名alias ls='ls --color=auto'
    2025-01-01
  • linux查看网络设备类型的实现方式

    linux查看网络设备类型的实现方式

    这篇文章主要介绍了linux查看网络设备类型的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Linux系统实现日志的无损迁移的完整方案介绍

    Linux系统实现日志的无损迁移的完整方案介绍

    这篇文章主要为大家详细介绍了Linux系统实现日志的无损迁移的完整方案,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下
    2025-09-09
  • Linux实现双网卡绑定的代码详解

    Linux实现双网卡绑定的代码详解

    linux 主机安装双网卡,共享一个IP地址,对外提供访问,实际同样连接两条物理线路到交换机实现平时双网卡同时工作,分流网络压力,同时提供冗余备份,监控,防止物理线路的单点故障,本文介绍了Linux实现双网卡绑定的代码示例,需要的朋友可以参考下
    2024-07-07
  • Linux下PHP网站服务器安全配置加固防护方法【推荐】

    Linux下PHP网站服务器安全配置加固防护方法【推荐】

    本文详细总结了PHP网站在Linux服务器上面的安全配置,包含PHP安全、mysql数据库安全、web服务器安全、木马查杀和防范等,很好很强大很安全。感兴趣的朋友跟随脚本之家小编一起看看吧
    2018-08-08

最新评论