linux设置预留端口号,防止监听端口被占用 ip_local_reserved_ports
1. 背景
linux服务器启动时,会对指定的端口进行监听bind,如果同一个机器上这个端口已经被使用,则监听失败,程序无法启动。
linux客户端连接服务器accept时,系统会分配本地临时端口用于网络连接。
目前是”大混部”的时代,一台物理机可能会部署多个服务,如果端口号设置不好,很可能会出现端口被其他程序占用的情况。
2. 解决方法
针对我的linux机器看看
本地临时端口配置(2个数: start, end)
1 2 | cat /proc/sys/net/ipv4/ip_local_port_range 32768 61000 |
预留端口配置(可支持逗号分隔的多个数字,比如10000, 10005-10010)
1 | 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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步