tcpdump教程入門

2022-04-10 11:22:25 字數 1834 閱讀 5685

tcpdump是乙個最基本重要的網路分析工具, 掌握好這, 對於學習tcp/ip協議也是很有幫助的. 理解了tcp/ip協議棧的知識, 分析調優網路的能力才會更高. 所以使用tcpdump相比其它的工具, 更能幫我們理解協議.

-n不要轉換一些數值, 比如把80埠轉換成http顯示.

-i需要監控的網絡卡. 如果不指定, 則監控所有有效的網絡卡資料.

-c抓取多少個包後自動停止抓取

-s預設是只抓取96bytes的資料, 如果想要抓取更多的資料, 則要通過這指定更大的數值. 比如-s 1500抓取1500byte

-s預設每個包的sequence是顯示相對的值, 如果想顯示絕對值, 通過此選項開啟.

我們抓包時, 一般是有針對性的去關注感興趣的東西, 不然太多的資訊會對我們分析資料造成干擾, tcpdump支援過濾語法.

host指定主機, 可以是ip或者網域名稱.

tcpdump -s0  -i wlan0 host www.baidu.com
上面的功能是抓取本機網絡卡wlan0上和www.baidu.com這個主機打交道的資料. 其中-s0指定抓取所有資料, 查考前面選項介紹.

有時候我們只關心資料流其中乙個方向上的資料, 可以通過src: 源端, dst:目的端來指定過濾.

tcpdump  -i wlan0 dst  www.baidu.com
指定埠

tcpdump -i wlan0  port 6379
抓取redis的資料.

指定協議資料, 比如: tcp, udp, icmp

tcpdump -i wlan0  tcp and udp
抓取所有的tcp和udp資料報.

tcpdump表示式可以支援邏輯組合運算, 提供更強大的功能.

這些和所有開發語言中的語義是一樣的. 下面看一些例子:

# 源主機是192.168.1.34, 並且目標埠是80

tcpdump -i eth0 src 192.168.1.34 and dst port 80

# 所有tcp協議並且埠不是22

tcpdump -i eth0 tcp and not port 22

有時候表示式太複雜了, 我們要進行分組, 即用()把一些表示式組合在一起.

# 源主機是192.168.1.34並且目標埠是22或者3389

tcpdump -i eth0 'src 192.168.1.34 and (dst port 22 or 3389)'

我們還可以通過分析資料報其中的部分資料計算過濾:

# 抓取帶有syn標誌的資料, tcp[13]的意思是從tcp資料報頭中取第14個byte資料, 詳細參考tcp協議頭

sudo tcpdump -i wlan0 'host www.baidu.com and tcp[13]&2!=0'

一般在伺服器上擷取到資料報後, 用於之後的分析, 比如傳到本地機器後用wireshark分析. 可以通過-w選項儲存:

tcpdump -i eth0 src www.baidu.com -w file.cap
上面把資料儲存到了file.cap檔案中

參考:

Tcpdump安裝教程

2.安裝c編譯所需包 apt get install build essential 3.安裝 libpcap的前置 apt get install flex,apt get install bison 4.安裝libpcap。tcpdump的使用必須有這庫。tar xvfz libpcap 1.2...

網路抓包教程之tcpdump

獲取itunes獲取裝置udid 開啟終端 terminal 建立虛擬網絡卡 在終端輸入rvictl s udid,建立虛擬網絡卡。啟動tcpdump監控流量 在終端繼續輸入sudo tcpdump i rvi0 aal,啟動tcpdump監控。android裝置沒辦法通過rvictl建立虛擬網絡卡...

Linux 基礎教程 31 tcpdump命令 3

經過前面的學習,tcpdump的用法相信應該都掌握了,今天我們來學習對tcpdump輸出內容的學習和了解。我們以第乙個示例進行講解如下所示 root localhost tcpdump i ens5f1 nn x port 22 c 1 tcpdump verbose output suppress...