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.手動分析數據

 


免責聲明!

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



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