Linux 端口冲突原因分析

2023-03-24  本文已影响0人  weaponxx

在复杂系统运维过程中,很可能出现应用节点启动的时候出现端口冲突,下面对遇到过端口冲突的情况做一个统一的整理.

处理思路

  1. 确认是和那个进程端口冲突了,通过以下命令确认和那个进程冲突了.
lsof -i:port
  1. 判断是和进程的服务器端口冲突了还是客户端端口冲突
    1. 服务器端口,对外提供服务的端口,这种情况一般是最常见的,一般直接修改端口就能接近
    2. 客户端端口,访问外部服务的端口,比如进程需要连接数据库,创建的数据库连接会占用一个本地端口.
      这种情况重启一次程序可能问题又消失了,但是过了一段时间有出现了.要如何根本避免这个问题.
      需要调整Linux的配置文件,Linux系统有一个ip_local_port_range 参数,这个参数定义客户端端口的使用范围,如下面的参数定义,端口范围是20000-65500,这样客户端端口只会使用这个范围内的.
      我们的服务端端口只要定义小于20000就永远不会和客户端端口冲突了.
      #set ip_local_port_range
      sed -i '$a #set ip_local_port_range' /etc/sysctl.conf
      sed -i '$a net.ipv4.ip_local_port_range=20000 65500' /etc/sysctl.conf
      sed -i '$a #set param end' /etc/sysctl.conf
      
      sysctl -p
      
  2. 可能发现没有端口冲突的进程
    1. 这种情况可能也是2.2这样的原因,和自己本进程的客户端端口冲突了,启动失败进程退出了,这个冲突端口被自动释放了
上一篇下一篇

猜你喜欢

热点阅读