Linux使用tcpdump命令抓包並使用wireshark分析
阿新 • • 發佈:2018-12-16
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.手動分析資料