在Linux中,如何按照該要求抓包:只過濾出訪問http服務的,目標ip為192.168.0.111,一共抓1000個包,並且儲存到1.cap檔案中?

黄嘉波發表於2024-07-01

在Linux中,可以使用tcpdump工具來抓取網路包。根據你的需求,我們需要過濾出只訪問HTTP服務的包,目標IP為192.168.0.111,並且只抓取1000個包,最後將這些包儲存到1.cap檔案中。

以下是具體的步驟和命令:

  1. 開啟終端:首先,你需要開啟Linux系統的終端。

  2. 使用tcpdump命令tcpdump是一個常用的網路抓包工具,可以用來捕獲經過網路介面的資料包。

  3. 指定過濾條件

    • 只捕獲HTTP服務的包,可以透過埠號來過濾,HTTP服務預設使用埠80。
    • 目標IP為192.168.0.111,使用dst關鍵字指定目標地址。
  4. 限制捕獲的包數量:使用-c選項來指定要捕獲的包的數量,這裡是1000個包。

  5. 儲存到檔案:使用-w選項來指定輸出檔案,這裡是1.cap

  6. 執行命令:將上述條件組合成一個命令,如下所示:

    tcpdump -i any -nn port 80 and dst 192.168.0.111 -c 1000 -w 1.cap
    

    解釋一下命令中的各個部分:

    • -i any:表示在所有網路介面上抓包。如果你知道流量透過特定的介面,你可以將any替換為該介面的名稱,比如eth0
    • -nn:告訴tcpdump不要解析網路名稱(比如,不要將IP地址轉換為主機名),也不要解析埠名稱(比如,不要將埠號轉換為服務名稱,如http)。
    • port 80:過濾只捕獲目標埠為80的包,即HTTP服務。
    • and dst 192.168.0.111:指定只捕獲目標IP為192.168.0.111的包。
    • -c 1000:捕獲1000個包後停止。
    • -w 1.cap:將捕獲的包儲存到1.cap檔案中。
  7. 執行命令:在終端中執行上述命令,tcpdump將開始捕獲資料包,直到捕獲到1000個HTTP包為止。

綜上所述,你可能需要具有相應的許可權(通常是root許可權)才能在某些網路介面上捕獲資料包。此外,確保tcpdump已經安裝在你的系統上,如果沒有,可以透過包管理器安裝它,例如在Debian/Ubuntu上使用sudo apt-get install tcpdump,在RedHat/CentOS上使用sudo yum install tcpdump

相關文章