Linux中tcp连接不释放怎么回事,处理方案是什么
Admin 2022-07-21 群英技术资讯 1233 次浏览
这篇文章主要讲解了“Linux中tcp连接不释放怎么回事,处理方案是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux中tcp连接不释放怎么回事,处理方案是什么”吧!解决方法:1、利用修改keepalive配置为合适的值可以快速释放端口连接,利用echo设置“设置tcp_keepalive_time”即可,语法为“echo "指定值" > /proc/sys/net/ipv4/tcp_keepalive_time”;2、编辑“/etc/sysctl.conf”文件,语法为“net.ipv4.tcp_keepalive_time=指定值”。

本教程操作环境:linux7.3系统、Dell G3电脑。
问题描述
在开发测试时发现断开与服务器端口后再次连接时拒绝连接。
分析:服务器上查看端口占用情况,假设端口为8080。
netstat -anp |grep 8080
发现端口8080端口显示被占用(ip为本机ip确定是上次连接)且状态为ESTABLISHED,然而实际上连接已经断开,但是服务端没有断开连接,查看TCP的keepalive配置。
sysctl -a |grep keepalive
发现为默认的配置
net.ipv4.tcp_keepalive_time = 7200 net.ipv4.tcp_keepalive_probes = 9 net.ipv4.tcp_keepalive_intvl = 75
默认情况下在连接空闲7200秒即2个小时后才会发送keepalive探测包来确认连接情况。
解决方案
解决:
1、通过修改keepalive配置为合适的值(如改为200秒)可以快速释放端口连接。
临时修改,通过echo设置tcp_keepalive_time。
echo "200" > /proc/sys/net/ipv4/tcp_keepalive_time
2、永久生效,编辑/etc/sysctl.conf,新增或修改为
net.ipv4.tcp_keepalive_time = 200
然后执行命令使修改后的配置生效
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在linux中,可以使用“useradd 用户名”命令来创建新用户;然后使用“passwd 用户名”命令来给已创建的用户设置密码,需要输入两次密码来确保密码的正确。新创建的用户会在“/home”下创建一个用户名目录。
linux交换分区不是必须的;linux系统可以在没有交换分区的情况下完美运行,在某些情况下,可以像嵌入式解决方案一样,linux可以不交换运行,交换分区拥有尽可能多的物理内存是避免交换的最佳解决方案。
Centos系统中彻底删除Mysql数据库
首先考虑一个问题,计算机网络为什么要采用分层结构,这样做的好处是什么。网络采用分层结构是因为计算机想要相互通信是一件非常麻烦的事情,需要考虑的事情有很多,采用分层结构时为了将一个大的复杂的问题,分割成若干个小的局部问题,然后研究局部问题就比较简单容易些了。
linux系统怎么使用alias创建命令别名?linux系统中有很多命令,今天我们就来看看alias命令的使用方法,详细请看下文介绍
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008