手動殺掉 tcp 連接的方式


一、背景

       當服務調用另一個服務的接口或者與另一個服務建立 socket 通信等,都需要建立 tcp 連接,對於長連接 tcp 連接,往往要求服務斷開時能夠自動恢復 tcp 連接。為了驗證 tcp 斷開,連接是否能夠自動恢復,我們需要用到 tcpkill 工具。

二、安裝 dsniff

1、yum 安裝 dsniff

# 搜索 yum 中是否有 dsniff 包以及其對一個的版本,當前 yum 不存在 dsniff 包時,按照 2 章節進行手動安裝

yum  search dsniff

# 當 yum 存在可安裝的 dsniff 時,直接通過以下命令進行安裝

yum -y install xxxxx 

2、手動通過 rpm 安裝 dsniff

  1) 下載地址:http://rpmfind.net/linux/rpm2html/search.php?query=dsniff(x86-64)     (原始地址:https://rpmfind.net/linux/rpm2html/

   2) 將下載下來的該文件上傳到 linux 服務器上 並 遠程到 linux 服務器上 (centos)

 依次按照以下的方式 開始 安裝 libICE、libSM、libXmu、libcrypto、libnet、libnids、libssl

 

 通過該方式還剩下以下內容未安裝(libcrypto、libnids、libssl):

  3) libnids 安裝

        仍是在 rpm 網站上下載這個  libnids ,根據上圖提示需要安裝 1.24 版本的

       下載下來之后使用  rpm -ivh    xxxxxx  命令進行安裝

  4)libcrypto、libssl 安裝

      libcrypto.so.1.1 、libssl.so.1.1  是  openssl11 的庫,但通過命令  openssl version 發現當前環境安裝的不是該版本

     查資料發現 這兩個 so 文件在 openssl11-libs 中,所以直接 安裝該軟件即可

          a) 下載 openssl11-libs 軟件  (下載網站:https://centos.pkgs.org/)

 

          b) 安裝  openssl11-libs

     將 下載下來的 rpm 上傳到服務器上,並執行 rpm -ivh xxxx 命令進行安裝

 此時直接 /usr/lib64 下可以 查到 libssl.so.1.1 以及 libcrypto.so.1.1  軟鏈接

  5)安裝 dsniff 

  通過上圖可以看到我們安裝的是 2.4 的版本,至此  dsniff 安裝好了 ,可以使用  tcpkill 命令 殺死指定 的 tcp 連接

3、使用 tcpkill 命令殺死指定的 tcp 連接

    1) 命令

tcpkill -i eth0 -9 port yyyy

tcpkill -i eth0 host xxx.xxx.xxx.xxx and port yyyy

     2) 操作

 從圖中可以看出 畫橫線的 2條 是tcp 的雙向連接 ,146 和 148 是同一個網卡上的2個IP,目標是 殺死 10.19.214.148:64478 上的 tcp 連接,看10.19.214.148 是否還會再次向 10.19.214.145:7003 上發起 tcp 連接。

通過上面的截圖可以看出, 64478 上的連接 的確被殺死了,同時有重新 向 145:7003 上發起了 tcp 連接,使用的端口號為 64456。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM