在线关闭 CLOSE_WAIT状态TCP连接
1、查看某个端口的所有TCP连接:
[root@Centos projects]# netstat -anp | grep
tcp6 ::: :::* LISTEN /java
tcp6 192.168.229.140: 192.168.229.1: CLOSE_WAIT /java
tcp6 192.168.229.140: 192.168.229.1: CLOSE_WAIT /java
tcp6 192.168.229.140: 192.168.229.1: CLOSE_WAIT /java
tcp6 192.168.229.140: 192.168.229.1: CLOSE_WAIT /java
tcp6 192.168.229.140: 192.168.229.1: CLOSE_WAIT /java
[root@Centos projects]#
2、获取 CLOSE_WAIT 状态连接的文件描述符:
[root@Centos projects]# lsof -np | grep "CLOSE_WAIT"
java root 27u IPv6 0t0 TCP 192.168.229.140:simplifymedia->192.168.229.1: (CLOSE_WAIT)
java root 28u IPv6 0t0 TCP 192.168.229.140:simplifymedia->192.168.229.1: (CLOSE_WAIT)
java root 30u IPv6 0t0 TCP 192.168.229.140:simplifymedia->192.168.229.1: (CLOSE_WAIT)
java root 31u IPv6 0t0 TCP 192.168.229.140:simplifymedia->192.168.229.1: (CLOSE_WAIT)
java root 33u IPv6 0t0 TCP 192.168.229.140:simplifymedia->192.168.229.1: (CLOSE_WAIT)
[root@Centos projects]# lsof -np | grep "CLOSE_WAIT" | awk '{print $4}'
27u
28u
30u
31u
33u
[root@Centos projects]#
3、使用GDB关闭 CLOSE_WAIT状态连接:
[root@Centos projects]# gdb -p 4931 # 连接到 4931 进程
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.-.el7
Copyright (C) Free Software Foundation, Inc.
License GPLv3+: GNU GPL version or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Attaching to process
...(略去内容)...
(gdb) # 这里为 gdb 命令提示符
然后根据文件描述符关闭指定的 socket 连接:
(gdb) call close(27u) # 27u即 close_wait 状态连接的文件描述符
...(略去内容)...
在线关闭 CLOSE_WAIT状态TCP连接的更多相关文章
- close_wait状态和time_wait状态(TCP连接)
1.CLOSE_WAIT的简单解决方案 不久前,我的Socket Client程序遇到了一个非常尴尬的错误.它本来应该在一个socket长连接上持续不断地向服务器发送数据,如果socket连接断开,那 ...
- tcp连接出现close_wait状态?可能是代码不够健壮
一.问题概述 今天遇到个小问题. 我们的程序依赖了大数据那边的服务,大数据那边提供了restful接口供我们调用. 测试反映接口有问题,我在本地重现了. 我这边感觉抓包可能对分析问题有用,就用wire ...
- Java网络编程系列之TCP连接状态
1.TCP连接状态 LISTEN:Server端打开一个socket进行监听,状态置为LISTEN SYN_SENT:Client端发送SYN请求给Server端,状态由CLOSED变为SYN_SEN ...
- 我为 Netty 贡献源码 | 且看 Netty 如何应对 TCP 连接的正常关闭,异常关闭,半关闭场景
欢迎关注公众号:bin的技术小屋,本文图片加载不出来的话可查看公众号原文 本系列Netty源码解析文章基于 4.1.56.Final版本 写在前面..... 本文是笔者肉眼盯 Bug 系列的第三弹,前 ...
- TIME_WAIT和CLOSE_WAIT状态区别
[TIME_WAIT和CLOSE_WAIT状态区别] 常用的三个状态是:ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭. TCP协议规定,对 ...
- Java面试-TCP连接及其优化
作为一个后端程序员,网络连接这块是一个绕不过的砍,当你在做服务器优化的时候,网络优化也是其中一环,那么作为网络连接中最基础的部分-TCP连接你了解吗?今天我们来仔细看看这个部分. TCP建立连接-三次 ...
- 经典!服务端 TCP 连接的 TIME_WAIT 过多问题的分析与解决
开源Linux 专注分享开源技术知识 本文给出一个 TIME_WAIT 状态的 TCP 连接过多的问题的解决思路,非常典型,大家可以好好看看,以后遇到这个问题就不会束手无策了. 问题描述 模拟高并发的 ...
- 详解TCP四次挥手(断开TCP连接过程)
在讲述TCP四次挥手,即断开TCP连接的过程之前,需要先介绍一下TCP协议的包结构. TCP协议包结构: 这里只对涉及到四次挥手过程的字段做解释 (1) 序号(Sequence number) 我们通 ...
- TCP连接的状态与关闭方式及其对Server与Client的影响
TCP连接的状态与关闭方式及其对Server与Client的影响 1. TCP连接的状态 首先介绍一下TCP连接建立与关闭过程中的状态.TCP连接过程是状态的转换,促使状态发生转换的因素包括用户调用. ...
随机推荐
- mcast_join函数
#include <errno.h> #include <string.h> #include <net/if.h> #include <netinet/in ...
- mysql服务删除成功,依然存在
重启电脑, 这可能是缓存, mysqld remove 删除后,偶尔,mysql服务依然存在,重启电脑,解决,
- Nginx禁止使用ip访问,只允许使用域名访问
Nginx虚拟主机配置,vhosts下面有很多域名的配置: [root@external-lb01 vhosts]# pwd/data/nginx/conf/vhosts [root@external ...
- C/C++网络编程5——实现基于TCP的服务器端/客户端2
三次握手过程详解: 1:客户端的协议栈向服务器端发送SYN包,并告诉服务器端当前放送序号为j,客户端进入SYNC_SEND状态. 2:服务器端的协议栈收到这个包以后,和客户端进行ACK应答,应答值为j ...
- 多项式输出 (0)<P2009_1>
多项式输出 (poly.pas/c/cpp) [问题描述] 一元n次多项式可用如下的表达式表示: 其中,称为i次项,ai称为i次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输 ...
- 安卓LED跑马灯 超炫酷的表白神器破解版
链接:https://pan.baidu.com/s/11Wxll4iLdcEPq0wUBK6Ong 提取码:all4
- 二、linux基础-路径和目录_用户管理_组_权限
2.1路径和目录1.相对路径:参照当前目录进行查找. 如:[root@localhost ~]# cd ../opt/hosts/备注:相对路径是从你的当前目录开始为基点,去寻找另外一个目录(或者 ...
- 微擎系统BUG漏洞解决方法汇总
微擎微赞系统BUG漏洞解决方法汇总 弄了微擎系统来玩玩,发觉这个系统BUG还不少,阿里云的提醒都一大堆,主要是没有针对SQL注入做预防,处理的办法基本都是用转义函数. 汇总: 1. 漏洞名称: 微擎任 ...
- ABC155F - Perils in Parallel
简述题意 给你N个数对 表示坐标与状态(0/1), M个操作,给定一个区间,区间内的坐标的状态翻转 思路:看到区间修改,很容易想到差分,对数对sort,每个a_i与a_i-1异或构造差分数组b,每次对 ...
- Codeforces 1304D. Shortest and Longest LIS
根据题目,我们可以找最短的LIS和最长的LIS,找最短LIS时,可以将每一个increase序列分成一组,从左到右将最大的还未选择的数字填写进去,不同组之间一定不会存在s[i]<s[j]的情况, ...