1. 程式人生 > >Linux使用tcpdump命令抓包並使用wireshark分析

Linux使用tcpdump命令抓包並使用wireshark分析

 

Linux使用tcpdump命令抓包並使用wireshark分析

 

介紹

  有時分析客戶端和伺服器網路互動的問題時,為了查詢問題,需要分別在客戶端和伺服器上抓包,我們的客戶端一般是windows上的,抓包比較簡單,直接使用wireshark抓取即可。而伺服器則是Linux,需要使用ssh遠端登陸到Linux系統中,使用tcpdump命令開啟抓包。

   tcpdump可以將網路中傳送的資料包的“頭”完全截獲下來提供分析。它支援針對網路層、協議、主機、網路或埠的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的資訊。

 

 

基本使用

 

預設啟動

tcpdump

注意:普通情況下,直接啟動tcpdump將監視第一個網路介面上所有流過的資料包,第一個網路介面就是eth0。

 

 

監視指定網路介面的資料包

tcpdump -i eth1

  

 

監視指定主機的資料包(主機pc1的ip為(210.27.48.1

例子:抓取流進和流出主機pc1的eth0的流量

tcpdump host pc1
或者
tcpdump host 210.27.48.1

 

 

 

指定埠或協議服務

例子:抓取ip為210.27.48.1的icmp包
tcpdump host 210.27.48.1 and icmp


例子:抓取ip為210.27.48.1的80埠和110和25以外的其他埠的包 
tcpdump host 210.27.48.1 and ! port 80 and ! port 25 and ! port 110

  

 

截獲主機間的通訊流量

列印helios 與 hot 或者與 ace 之間通訊的資料包
tcpdump host helios and \( hot or ace \)

截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通訊
tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)

 列印ace與任何其他主機之間通訊的IP 資料包, 但不包括與helios之間的資料包.

     tcpdump ip host ace and not helios


如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通訊的ip包
tcpdump ip host 210.27.48.1 and ! 210.27.48.2

截獲主機hostname傳送的所有資料
tcpdump src host hostname


監視所有送到主機hostname的資料包
tcpdump dst host hostname

  

 

 

輸出

tcpdump 的抓包儲存到檔案的命令引數是-w xxx.cap
tcpdump -w /tmp/xxx.cap

 

 

 

例項演示

 

1.使用tcp抓包,連線ftp伺服器

測試ftp伺服器ip:112.65.173.59(使用者名稱和密碼不正確,僅測試)

測試使用者名稱:admin

           密 碼 :admin123456

 

 

 2.拷貝到物理機,使用wireshark開啟

 

 3.手動分析資料