Hello World

Linux TCP自连接问题

【参考文章】:net.ipv4.ip_local_port_range 的值究竟影响了啥

【参考文章】:Linux内核参数优化

 

  最近卸载MySQL服务偶尔会遇到MySQL端口自连接问题。导致MySQL服务卸载失败,需要手动 kill  自连接进程,然后才可以进行卸载操作。

  什么是自连接问题?

  自连接就是自己连接自己的现象。当我们去连接一个正在监听的端口时,系统自动为我们分配一个临时端口去进行连接,这样就有可能分配到正在监听的端口号,然后出现自己连接自己的问题。

1. 临时端口号

  当在服务器上了启动 socket 去连接某个IP的端口号时,系统会随机分配一个临时端口去连接目标 socket 。

  临时端口号的范围可以进行设置。

  vim  /etc/sysctl.conf 

  net.ipv4.ip_local_port_range=1024  65535  # 表示的就是临时端口范围,默认范围是 1024-65535,

  好像支持一个端口段的设置,没有找到多个端口段的设置方式。

  我按照默认的配置方式,设置了多个端口段 (比如:1024  3306  3307  65535)我是瞎蒙的,经测试发现只有第一个端口段生效了,所以暂时认为只支持一个端口段

2. 预留端口号

  预留端口号就是给第三方组件预留的端口号,在分配临时端口时不会分配该端口。

  服务器内核版本要大于2.6.18-164,否则不支持该参数

  vim  /etc/sysctl.conf 

  net.ipv4.ip_local_reserved_ports=3306   #预留端口号设置

  支持多个端口段配置

  net.ipv4.ip_local_reserved_ports=3306,3308-3310,3312

  

posted @ 2019-09-29 15:22  小小忧愁米粒大  阅读(980)  评论(0编辑  收藏  举报
瞅啥瞅,好好看书