linux的tcpdump命令主要用于網(wǎng)絡(luò)問題的調(diào)試中,通過抓取傳輸過程的數(shù)據(jù)包進(jìn)行分析和調(diào)試。而wireshark則是一款功能強(qiáng)大,使用方便的數(shù)據(jù)包分析工具,tcpdump+wireshark組合使用,完美,perfect,讓網(wǎng)絡(luò)問題無處遁形。
1 tcpdump及wireshark基本介紹
1.1 tcpdump
tcpdump是基于Unix系統(tǒng)的命令行式的數(shù)據(jù)包嗅探工具,可以抓取流動在網(wǎng)卡上的數(shù)據(jù)包。默認(rèn)情況下,tcpdump不會抓取本機(jī)內(nèi)部通訊的報(bào)文。根據(jù)網(wǎng)絡(luò)協(xié)議棧的規(guī)定,對于報(bào)文,即使是目的地是本機(jī),也需要經(jīng)過本機(jī)的網(wǎng)絡(luò)協(xié)議層,所以本機(jī)通訊肯定是通過API進(jìn)入了內(nèi)核,并且完成了路由選擇。
linux抓包原理:
Linux抓包是通過注冊一種虛擬的底層網(wǎng)絡(luò)協(xié)議來完成對網(wǎng)絡(luò)報(bào)文(準(zhǔn)確的說是網(wǎng)絡(luò)設(shè)備)消息的處理權(quán)。當(dāng)網(wǎng)卡接收到一個網(wǎng)絡(luò)報(bào)文之后,它會遍歷系統(tǒng)中所有已經(jīng)注冊的網(wǎng)絡(luò)協(xié)議,例如以太網(wǎng)協(xié)議、x25協(xié)議處理模塊來嘗試進(jìn)行報(bào)文的解析處理,這一點(diǎn)和一些文件系統(tǒng)的掛載相似,就是讓系統(tǒng)中所有的已經(jīng)注冊的文件系統(tǒng)來進(jìn)行嘗試掛載,如果哪一個認(rèn)為自己可以處理,那么就完成掛載。當(dāng)抓包模塊把自己偽裝成一個網(wǎng)絡(luò)協(xié)議的時候,系統(tǒng)在收到報(bào)文的時候就會給這個偽協(xié)議一次機(jī)會,讓它來對網(wǎng)卡收到的報(bào)文進(jìn)行一次處理,此時該模塊就會趁機(jī)對報(bào)文進(jìn)行窺探,也就是把這個報(bào)文完完整整的復(fù)制一份,假裝是自己接收到的報(bào)文,匯報(bào)給抓包模塊。
1.2 wireshark
wireshark是一種數(shù)據(jù)包分析工具,在各種網(wǎng)絡(luò)應(yīng)用中,比如通過思博倫的Spirent_TestCenter(TC)、Ixia測試儀抓取接口報(bào)文或者利用本文介紹的linux自帶的tcpdump監(jiān)聽抓包工具,抓包后導(dǎo)出報(bào)文再導(dǎo)入wireshark工具中進(jìn)行圖形化分析。
2 tcpdump抓包
2.1 常用命令
2.1.1 默認(rèn)啟動
# tcpdump
普通情況下,直接啟動tcpdump將監(jiān)視第一個網(wǎng)絡(luò)接口上所有流過的數(shù)據(jù)包。但是由于linux默認(rèn)網(wǎng)卡的問題,可能出現(xiàn)下面報(bào)錯:
tcpdump: packet printing is not supported for link type NFLOG: use -w
此時,可以通過ifconfig或者ip address命令查看網(wǎng)卡信息,并通過指定網(wǎng)口進(jìn)行數(shù)據(jù)抓包
2.1.2 監(jiān)視指定網(wǎng)絡(luò)接口的數(shù)據(jù)包
# tcpdump -i ens33
2.1.3 監(jiān)視指定主機(jī)的數(shù)據(jù)包
指定通過網(wǎng)口ens33, 并且進(jìn)出口IP地址為10.193.12.119的數(shù)據(jù)包
# tcpdump -i ens33 host 10.193.12.119
指定通過網(wǎng)口ens33, 并且主機(jī)10.193.12.12 和主機(jī)10.193.17.4 或10.193.12.119之間的通信
# tcpdump -i ens33 -n host 10.193.12.12 and ( 10.193.17.4 or 10.193.12.119 )
指定通過網(wǎng)口ens33, 并且主機(jī)10.193.12.12 和非主機(jī)10.193.17.4之間的通信
# tcpdump -i ens33 -n host 10.193.12.12 and ! 10.193.17.4
指定通過網(wǎng)口ens33, 并且由主機(jī)10.193.12.12發(fā)送的所有數(shù)據(jù)
# tcpdump -i ens33 -n src 10.193.12.12
指定通過網(wǎng)口ens33, 并且由主機(jī)10.193.12.12接收的所有數(shù)據(jù)
# tcpdump -i ens33 -n dst 10.193.12.12
2.1.4 指定抓包數(shù)量
指定通過網(wǎng)口ens33, 并且由主機(jī)10.193.12.12接收的連續(xù)5個數(shù)據(jù)包
# tcpdump -i ens33 -n dst 10.193.12.12 -c 5
2.1.5 抓包精簡顯示
# tcpdump -i ens33 -n dst 10.193.12.12 -c 5 -q
指定通過網(wǎng)口ens33, 并且由主機(jī)10.193.12.12接收的連續(xù)5個數(shù)據(jù)包,并采用精簡顯示,可與上圖進(jìn)行對比
2.1.6 按照協(xié)議類型抓包
以ping為例,我們知道ping的協(xié)議類型為icmp,我們可以指定icmp協(xié)議類型進(jìn)行抓包
# tcpdump -i ens33 -n icmp
2.1.7 指定主機(jī)和端口號進(jìn)行抓包
指定網(wǎng)卡ens33,端口號為55555并且ip地址為10.193.12.12的連續(xù)10個數(shù)據(jù)包
# tcpdump -i ens33 -n tcp port 55555 and host 10.193.12.12 -c 10
2.1.8 抓包并保存
抓包并保存package.cap文件,可導(dǎo)出后再導(dǎo)入wireshark進(jìn)行包分析
# tcpdump -i ens33 -n port 55555 and host 10.193.12.12 -c 10 -w package.cap
2.2 tcpdump詳細(xì)參數(shù)
-a 嘗試將網(wǎng)絡(luò)和廣播地址轉(zhuǎn)換成名稱。
-c<數(shù)據(jù)包數(shù)目> 收到指定的數(shù)據(jù)包數(shù)目后,就停止進(jìn)行傾倒操作。
-d 把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成可閱讀的格式,并傾倒到標(biāo)準(zhǔn)輸出。
-dd 把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成C語言的格式,并傾倒到標(biāo)準(zhǔn)輸出。
-ddd 把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成十進(jìn)制數(shù)字的格式,并傾倒到標(biāo)準(zhǔn)輸出。
-e 在每列傾倒資料上顯示連接層級的文件頭。
-f 用數(shù)字顯示網(wǎng)際網(wǎng)絡(luò)地址。
-F<表達(dá)文件> 指定內(nèi)含表達(dá)方式的文件。
-i<網(wǎng)絡(luò)界面> 使用指定的網(wǎng)絡(luò)截面送出數(shù)據(jù)包。
-l 使用標(biāo)準(zhǔn)輸出列的緩沖區(qū)。
-n 不把主機(jī)的網(wǎng)絡(luò)地址轉(zhuǎn)換成名字。
-N 不列出域名。
-O 不將數(shù)據(jù)包編碼最佳化。
-p 不讓網(wǎng)絡(luò)界面進(jìn)入混雜模式。
-q 快速輸出,僅列出少數(shù)的傳輸協(xié)議信息。
-r<數(shù)據(jù)包文件> 從指定的文件讀取數(shù)據(jù)包數(shù)據(jù)。
-s<數(shù)據(jù)包大小> 設(shè)置每個數(shù)據(jù)包的大小。
-S 用絕對而非相對數(shù)值列出TCP關(guān)聯(lián)數(shù)。
-t 在每列傾倒資料上不顯示時間戳記。
-tt 在每列傾倒資料上顯示未經(jīng)格式化的時間戳記。
-T<數(shù)據(jù)包類型> 強(qiáng)制將表達(dá)方式所指定的數(shù)據(jù)包轉(zhuǎn)譯成設(shè)置的數(shù)據(jù)包類型。
-v 詳細(xì)顯示指令執(zhí)行過程。
-vv 更詳細(xì)顯示指令執(zhí)行過程。
-x 用十六進(jìn)制字碼列出數(shù)據(jù)包資料。
-w<數(shù)據(jù)包文件> 把數(shù)據(jù)包數(shù)據(jù)寫入指定的文件。
3 wireshark導(dǎo)入數(shù)據(jù)包進(jìn)行分析
審核編輯:湯梓紅
-
Linux
+關(guān)注
關(guān)注
87文章
11509瀏覽量
213748 -
命令
+關(guān)注
關(guān)注
5文章
737瀏覽量
22876 -
數(shù)據(jù)包
+關(guān)注
關(guān)注
0文章
269瀏覽量
24988 -
Wireshark
+關(guān)注
關(guān)注
0文章
49瀏覽量
6777
原文標(biāo)題:3 wireshark導(dǎo)入數(shù)據(jù)包進(jìn)行分析
文章出處:【微信號:網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號:網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
藍(lán)牙數(shù)據(jù)包的抓取與分析!
wireshark抓包數(shù)據(jù)分析問題
如何使用WireShark進(jìn)行網(wǎng)絡(luò)抓包
如何使用FRDM-KW41Z devkit和Wireshark創(chuàng)建一個zigbee數(shù)據(jù)包嗅探器?
基于Jpcap的數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
數(shù)據(jù)包過濾原理

什么是數(shù)據(jù)包?
基于數(shù)據(jù)包長度的網(wǎng)絡(luò)隱蔽通道

Wireshark數(shù)據(jù)抓包網(wǎng)絡(luò)協(xié)議的分析

如何使用WIRESHARK抓以太網(wǎng)數(shù)據(jù)包?
SRT協(xié)議的工作流程、數(shù)據(jù)包結(jié)構(gòu)及Wireshark抓包分析
網(wǎng)絡(luò)數(shù)據(jù)包分析軟件wireshark的基本使用
Wireshark網(wǎng)絡(luò)數(shù)據(jù)包分析軟件簡介

WireShark的常用操作

超詳細(xì)的WireShark抓包使用教程

評論