轉載地址:https://www.cnblogs.com/archoncap/p/5125180.html
利用dsniff的tcpkill殺TCP鏈接html
Linux鏈接久久不能釋放的現象不常見,但偶然也會發生。進程雖不復存在,可是客戶端的鏈接咬定青山不放鬆,死活也不願吐出鏈接,致使重啓進程時因操做系統判斷監聽端口被佔用而沒法啓動。常規手段已經一籌莫展,這時候不得不想辦法殺鏈接。
1、tcpkill介紹
tcpkill是網絡嗅探工具包dsniff其中提供的一個利器,用於殺掉TCP鏈接。所以事先要安裝dsniff。如rhel5中,搜索下載dsniff-2.4-0.1.b1.el5.rf.rpm,rpm -ivh安裝後,很容易調出tcpkill命令。express
咱們能夠先看看manual:
[root@xxxx ~]# man tcpkill
TCPKILL(8) TCPKILL(8)
NAME
tcpkill - kill TCP connections on a LAN網絡
SYNOPSIS
tcpkill [-i interface] [-1...9] expressionapp
DESCRIPTION
tcpkill kills specified in-progress TCP connections (useful for libnids-based applications which require a full
TCP 3-whs for TCB creation).tcp
OPTIONS
-i interface
Specify the interface to listen on.ide
-1...9 Specify the degree of brute force to use in killing a connection. Fast connections may require a higher number in order to land a RST in the moving receive window. Default is 3. expression Specify a tcpdump(8) filter expression to select the connections to kill.
SEE ALSO
dsniff(8), tcpnice(8)工具
AUTHOR
Dug Song <dugsong@monkey.org>
TCPKILL(8)
2、tcpkill實戰
在該示例中,FIN_WAIT1 的TCP鏈接一直沒法釋放,頑強無比。ui
進程監聽端口16000,客戶端鏈接端口43255。操作系統
使用tcpkill的效果又是如何呢?code
命令以下:tcpkill -9 host 客戶端鏈接ip
能夠看到客戶端140.4:43255的鏈接被殺掉後,它又從新嘗試新的鏈接。
親測 好用 厲害