linux设置预留端口号,防止监听端口被占用 ip_local_reserved_ports

Posted 旭东的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux设置预留端口号,防止监听端口被占用 ip_local_reserved_ports相关的知识,希望对你有一定的参考价值。

1. 背景

linux服务器启动时,会对指定的端口进行监听bind,如果同一个机器上这个端口已经被使用,则监听失败,程序无法启动。

linux客户端连接服务器accept时,系统会分配本地临时端口用于网络连接。

目前是”大混部”的时代,一台物理机可能会部署多个服务,如果端口号设置不好,很可能会出现端口被其他程序占用的情况。

2. 解决方法

针对我的linux机器看看

本地临时端口配置(2个数: start, end)

cat /proc/sys/net/ipv4/ip_local_port_range
32768	61000

 预留端口配置(可支持逗号分隔的多个数字,比如10000, 10005-10010)

cat /proc/sys/net/ipv4/ip_local_reserved_ports

 如下面参考链接说的,有2种方法:

(1) 修改临时端口范围 ip_local_port_range,因为一个程序的端口问题修改一个机器的临时端口范围,明显减少了临时端口的使用量。代价大。

(2) 修改预留端口ip_local_reserved_ports,即使没有发生冲突也可以预先设置,防止后续端口被占用。

贴一下参考链接里面的英文

ip_local_reserved_ports解释如下:
ip_local_reserved_ports - list of comma separated ranges
Specify the ports which are reserved for known third-party
applications. These ports will not be used by automatic port
assignments (e.g. when calling connect() or bind() with port
number 0). Explicit port allocation behavior is unchanged.

The format used for both input and output is a comma separated
list of ranges (e.g. "1,2-4,10-10" for ports 1, 2, 3, 4 and
10). Writing to the file will clear all previously reserved
ports and update the current list with the one given in the
input.

参考:

(1) http://www.ttlsa.com/linux/reserved-port-to-avoid-occupying-ip_local_reserved_ports/

(2) https://blog.csdn.net/bdss58/article/details/78546551?locationNum=10&fps=1

以上是关于linux设置预留端口号,防止监听端口被占用 ip_local_reserved_ports的主要内容,如果未能解决你的问题,请参考以下文章

oracle配置监听时提示端口被占用

linux 端口被占用,linux端口号被占用解决方法

linux下怎么查看程序使用的端口号

修改 Spring boot 启动端口号 Spring Boot 监听端口被占用无法启动

Linux学习30-如何根据端口号查看进程PID

Linux,deian 7怎么把占用80端口的程序kill掉