linux的tcpdump命令主要用于網(wǎng)絡(luò)問題的調(diào)試中,通過抓取傳輸過程的數(shù)據(jù)包進行分析和調(diào)試。而wireshark則是一款功能強大,使用方便的數(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不會抓取本機內(nèi)部通訊的報文。根據(jù)網(wǎng)絡(luò)協(xié)議棧的規(guī)定,對于報文,即使是目的地是本機,也需要經(jīng)過本機的網(wǎng)絡(luò)協(xié)議層,所以本機通訊肯定是通過API進入了內(nèi)核,并且完成了路由選擇。
linux抓包原理:
Linux抓包是通過注冊一種虛擬的底層網(wǎng)絡(luò)協(xié)議來完成對網(wǎng)絡(luò)報文(準(zhǔn)確的說是網(wǎng)絡(luò)設(shè)備)消息的處理權(quán)。當(dāng)網(wǎng)卡接收到一個網(wǎng)絡(luò)報文之后,它會遍歷系統(tǒng)中所有已經(jīng)注冊的網(wǎng)絡(luò)協(xié)議,例如以太網(wǎng)協(xié)議、x25協(xié)議處理模塊來嘗試進行報文的解析處理,這一點和一些文件系統(tǒng)的掛載相似,就是讓系統(tǒng)中所有的已經(jīng)注冊的文件系統(tǒng)來進行嘗試掛載,如果哪一個認(rèn)為自己可以處理,那么就完成掛載。當(dāng)抓包模塊把自己偽裝成一個網(wǎng)絡(luò)協(xié)議的時候,系統(tǒng)在收到報文的時候就會給這個偽協(xié)議一次機會,讓它來對網(wǎng)卡收到的報文進行一次處理,此時該模塊就會趁機對報文進行窺探,也就是把這個報文完完整整的復(fù)制一份,假裝是自己接收到的報文,匯報給抓包模塊。
1.2 wireshark
wireshark是一種數(shù)據(jù)包分析工具,在各種網(wǎng)絡(luò)應(yīng)用中,比如通過思博倫的Spirent_TestCenter(TC)、Ixia測試儀抓取接口報文或者利用本文介紹的linux自帶的tcpdump監(jiān)聽抓包工具,抓包后導(dǎo)出報文再導(dǎo)入wireshark工具中進行圖形化分析。
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)下面報錯:
tcpdump: packet printing is not supported for link type NFLOG: use -w
此時,可以通過ifconfig或者ip address命令查看網(wǎng)卡信息,并通過指定網(wǎng)口進行數(shù)據(jù)抓包
2.1.2 監(jiān)視指定網(wǎng)絡(luò)接口的數(shù)據(jù)包
# tcpdump -i ens33
2.1.3 監(jiān)視指定主機的數(shù)據(jù)包
指定通過網(wǎng)口ens33, 并且進出口IP地址為10.193.12.119的數(shù)據(jù)包
# tcpdump -i ens33 host 10.193.12.119
指定通過網(wǎng)口ens33, 并且主機10.193.12.12 和主機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, 并且主機10.193.12.12 和非主機10.193.17.4之間的通信
# tcpdump -i ens33 -n host 10.193.12.12 and ! 10.193.17.4
指定通過網(wǎng)口ens33, 并且由主機10.193.12.12發(fā)送的所有數(shù)據(jù)
# tcpdump -i ens33 -n src 10.193.12.12
指定通過網(wǎng)口ens33, 并且由主機10.193.12.12接收的所有數(shù)據(jù)
# tcpdump -i ens33 -n dst 10.193.12.12
2.1.4 指定抓包數(shù)量
指定通過網(wǎng)口ens33, 并且由主機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, 并且由主機10.193.12.12接收的連續(xù)5個數(shù)據(jù)包,并采用精簡顯示,可與上圖進行對比
2.1.6 按照協(xié)議類型抓包
以ping為例,我們知道ping的協(xié)議類型為icmp,我們可以指定icmp協(xié)議類型進行抓包
# tcpdump -i ens33 -n icmp
2.1.7 指定主機和端口號進行抓包
指定網(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進行包分析
# 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ù)目后,就停止進行傾倒操作。
-d 把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成可閱讀的格式,并傾倒到標(biāo)準(zhǔn)輸出。
-dd 把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成C語言的格式,并傾倒到標(biāo)準(zhǔn)輸出。
-ddd 把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成十進制數(shù)字的格式,并傾倒到標(biāo)準(zhǔn)輸出。
-e 在每列傾倒資料上顯示連接層級的文件頭。
-f 用數(shù)字顯示網(wǎng)際網(wǎng)絡(luò)地址。
-F<表達文件> 指定內(nèi)含表達方式的文件。
-i<網(wǎng)絡(luò)界面> 使用指定的網(wǎng)絡(luò)截面送出數(shù)據(jù)包。
-l 使用標(biāo)準(zhǔn)輸出列的緩沖區(qū)。
-n 不把主機的網(wǎng)絡(luò)地址轉(zhuǎn)換成名字。
-N 不列出域名。
-O 不將數(shù)據(jù)包編碼最佳化。
-p 不讓網(wǎng)絡(luò)界面進入混雜模式。
-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ù)包類型> 強制將表達方式所指定的數(shù)據(jù)包轉(zhuǎn)譯成設(shè)置的數(shù)據(jù)包類型。
-v 詳細(xì)顯示指令執(zhí)行過程。
-vv 更詳細(xì)顯示指令執(zhí)行過程。
-x 用十六進制字碼列出數(shù)據(jù)包資料。
-w<數(shù)據(jù)包文件> 把數(shù)據(jù)包數(shù)據(jù)寫入指定的文件。
3 wireshark導(dǎo)入數(shù)據(jù)包進行分析
審核編輯:湯梓紅
-
Linux
+關(guān)注
關(guān)注
87文章
11351瀏覽量
210497 -
命令
+關(guān)注
關(guān)注
5文章
697瀏覽量
22124 -
數(shù)據(jù)包
+關(guān)注
關(guān)注
0文章
267瀏覽量
24517 -
Wireshark
+關(guān)注
關(guān)注
0文章
49瀏覽量
6554
原文標(biāo)題:3 wireshark導(dǎo)入數(shù)據(jù)包進行分析
文章出處:【微信號:網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號:網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
藍牙數(shù)據(jù)包的抓取與分析!
wireshark抓包數(shù)據(jù)分析問題
如何使用WireShark進行網(wǎng)絡(luò)抓包
如何使用FRDM-KW41Z devkit和Wireshark創(chuàng)建一個zigbee數(shù)據(jù)包嗅探器?
基于Jpcap的數(shù)據(jù)包捕獲器的設(shè)計與實現(xiàn)
數(shù)據(jù)包過濾原理
![<b class='flag-5'>數(shù)據(jù)包</b>過濾原理](https://file1.elecfans.com//web2/M00/A5/07/wKgZomUMNp6AZDGdAADIS9oKJUk812.jpg)
什么是數(shù)據(jù)包?
基于數(shù)據(jù)包長度的網(wǎng)絡(luò)隱蔽通道
![基于<b class='flag-5'>數(shù)據(jù)包</b>長度的網(wǎng)絡(luò)隱蔽通道](https://file.elecfans.com/web2/M00/49/4E/pYYBAGKhtESAMLHxAAAM2fKaXuc381.jpg)
Wireshark數(shù)據(jù)抓包網(wǎng)絡(luò)協(xié)議的分析
![<b class='flag-5'>Wireshark</b><b class='flag-5'>數(shù)據(jù)</b>抓<b class='flag-5'>包</b>網(wǎng)絡(luò)協(xié)議的<b class='flag-5'>分析</b>](https://file.elecfans.com/web1/M00/CA/08/pIYBAF-DtQ-AO-kFAACAqDhp-pA933.png)
如何使用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ù)包分析軟件簡介
![<b class='flag-5'>Wireshark</b>網(wǎng)絡(luò)<b class='flag-5'>數(shù)據(jù)包</b><b class='flag-5'>分析</b>軟件簡介](https://file1.elecfans.com/web2/M00/82/48/wKgZomRIhGmAcgaKAAASisbkOqk636.png)
WireShark的常用操作
![<b class='flag-5'>WireShark</b>的常用操作](https://file1.elecfans.com/web2/M00/88/BC/wKgaomRwXOGALM7KAAAHvk06bIo808.jpg)
超詳細(xì)的WireShark抓包使用教程
![超詳細(xì)的<b class='flag-5'>WireShark</b>抓<b class='flag-5'>包</b>使用教程](https://file1.elecfans.com/web2/M00/89/3B/wKgZomR-iwKAEkBAAAAIRsl982A246.png)
評論