Linux:以TIME_WAIT状态强制关闭服务器上的套接字/端口
时间:2020-01-09 10:41:20 来源:igfitidea点击:
Linux中有许多旧的IP处于TIME_WAIT状态。
在Linux操作系统下,如何在TIME_WAIT状态下强制和关闭所有内容?
服务器或客户端程序上都可以存在TIME-WAIT状态。它表示等待足够的时间来确保远程TCP收到其连接终止请求的确认。 /proc/sys/net/ipv4/tcp_fin_timeout
设置确定TCP/IP释放封闭的连接并重用其资源之前必须经过的时间。
这称为TIME_WAIT状态。
TIME_WAIT是TCP连接的正常部分。
但是,如果必须以TIME_WAIT状态关闭套接字,请尝试:
- 重新启动网络服务
- cutter命令
找出当前的TIME_WAIT设置
输入以下命令
$ cat /proc/sys/net/ipv4/tcp_fin_timeout
输出示例:
60
您可以通过以超级用户身份执行以下命令来降低此值:
# echo 20 > /proc/sys/net/ipv4/tcp_fin_timeout
要将/proc/sys/net/ipv4/tcp_fin_timeout永久设置为20,请编辑文件/etc/sysctl.conf并进行如下设置:
net.ipv4.tcp_fin_timeout=20
重启网络服务
要在基于RHEL/CentOS的系统下重新启动网络服务,请执行:
# service network restart
或者
# /etc/init.d/network restart
Ubuntu/Debian Linux,用户请尝试以下命令:
$ sudo service networking restart
或者
$ sudo /etc/init.d/networking restart
cutter命令
Cutter是一个开放源代码程序,它允许Linux防火墙管理员中止通过运行它的防火墙或路由器路由的TCP/IP连接。
例子
要切断从192.168.1.10到服务器的所有连接,请执行:
# cutter 192.168.1.10
要切断从192.168.1.1到服务器的所有ssh连接,请执行:
# cutter 192.168.1.1 22
要将所有http连接从192.168.1.5切断到ssh服务器192.54.1.20,请运行:
# cutter 192.54.1.20 192.168.1.5 80