當前位置:首頁 > 公眾號精選 > strongerHuang
[導讀]概述用簡單的話來定義tcpdump,就是:dumpthetrafficonanetwork,根據使用者的定義對網絡上的數據包進行截獲的包分析工具。tcpdump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網絡層、協(xié)議、主機、網絡或端口的過濾,并提供and、or...

概述

用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網絡上的數據包進行截獲的包分析工具。

tcpdump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網絡層、協(xié)議、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息。

tcpdump基于底層libpcap庫開發(fā),運行需要root權限。

一、tcpdump安裝

  1. 環(huán)境 虛擬機:vmware 15.5.2 os: ubuntu 12.04

  2. 安裝tcpdump

sudo?apt-get?install?tcpdump
3. 版本查看

tcpdump?--h
tcpdump version 4.0。

libpcap version 1.1.1 ? ?表示libpcap的版本。

二、tcpdump參數

常用參數選項說明:

參數含義
-a將網絡地址和廣播地址轉變成名字
-c在收到指定的包的數目后,tcpdump就會停止;
-d將匹配信息包的代碼以人們能夠理解的匯編格式給出;以可閱讀的格式輸出。
-dd將匹配信息包的代碼以c語言程序段的格式給出;
-ddd將匹配信息包的代碼以十進制的形式給出;
-e在輸出行打印出數據鏈路層的頭部信息;
-f將外部的Internet地址以數字的形式打印出來;
-l使標準輸出變?yōu)榫彌_行形式;
-n直接顯示IP地址,不顯示名稱;
-nn端口名稱顯示為數字形式,不顯示名稱;
-t在輸出的每一行不打印時間戳;
-v輸出一個稍微詳細的信息,例如在ip包中可以包括ttl和服務類型的信息;
-vv輸出詳細的報文信息;
-F從指定的文件中讀取表達式,忽略其它的表達式;
-i指定監(jiān)聽的網絡接口;
-r從指定的文件中讀取包(這些包一般通過-w選項產生);
-w直接將包寫入文件中,并不分析和打印出來;
-T將監(jiān)聽到的包直接解釋為指定的類型的報文,常見的類型有rpc (遠程過程調用)和snmp(簡單 網絡管理協(xié)議;)

三、命令選項使用舉例

1. 截獲主機收到和發(fā)出的所有數據包。

命令:

tcpdump
說明:

tcpdump截取包默認顯示數據包的頭部。

普通情況下,直接啟動tcpdump將監(jiān)視第一個網絡接口上所有流過的數據包。

基礎格式:時間 數據包類型 源IP 端口/協(xié)議 > 目標IP 端口/協(xié)議 協(xié)議詳細信息

按下Ctrl C會終止tcpdump命令。且會在結尾處生成統(tǒng)計信息。

終止tcpdump

2. 指定抓包數量 -c

指定抓取2個數據包。

命令:

tcpdump?-c?2
說明:

最后會自動生成統(tǒng)計信息?!咀⒁?,已經切換到管理員了,虛擬機中要產生數據包,可以另外開一個窗口ping baidu.com后面不再提示】

ping baidu.com

3. 將抓包信息寫入文件 -w

使用-w選項指定記錄文件。

命令:

tcpdump?-c?10?-w?tcpdump_test.log
說明:

保存的文件不是文本格式,不能直接查看。tcpdump保存的文件的格式是幾乎所有主流的抓包工具軟件都可以讀取。所以可以使用更易讀的圖形界面工具來查看記錄文件。

4. 讀取記錄文件 -r

使用-r選項讀取文件。

命令:

tcpdump?-r?tcpdump_test.log
![讀取記錄文件

5. 打印出所有可工作的接口 -D

命令:

tcpdump?-D
其中網卡為eth0。

6. 指定監(jiān)控的網卡 -i

命令:

tcpdump?-i?eth0
如果不指定網卡,默認tcpdump只會監(jiān)視第一個網絡接口,一般是eth0。

7. 顯示更詳細的數據包信息 -v ?-vv

選項-v,-vv可以顯示更詳細的抓包信息。

tcpdump -v
tcpdump -vv

8. 不使用域名反解 -n

使用-n后,tcpdump會直接顯示IP地址,不會顯示域名(與netstat命令相似)。

9. 增加抓包時間戳 -tttt選項

tcpdump的所有輸出打印行中都會默認包含時間戳信息;時間戳信息的顯示格式如下

hh:mm:ss.frac?(nt:?小時:分鐘:秒.)
此時間戳的精度與內核時間精度一致, 反映的是內核第一次看到對應數據包的時間;

而數據包從物理線路傳遞到內核的時間, 以及內核花費在此包上的中斷處理時間都沒有算進來;

使用-tttt選項,抓包結果中將包含抓包日期:

命令:

tcpdump?-tttt
增加抓包時間戳

四、條件過濾

1. 過濾:指定需要抓取的協(xié)議

tcpdump可以只抓某種協(xié)議的包,支持指定以下協(xié)議:「ip,ip6,arp,tcp,udp,wlan」等。

命令:

tcpdump?udp

tcpdump?icmp

tcpdump?tcp

tcpdump?arp

2. 過濾:指定協(xié)議的端口號

使用port參數,用于指定端口號。

命令:tcpdump tcp port 80

使用portrange參數,用于指定端口范圍。

命令:tcpdump tcp portrange 1-1024

3. 過濾:指定源與目標

src 表示源。

dst 表示目標。

命令:

tcpdump src port 8080

tcpdump dst port 80

4. 過濾:指定特定主機的消息包

使用host指定需要監(jiān)聽的主機。

命令:

tcpdump?host?192.168.1.113
注意:若使用了host參數使用了計算機名或域名。例tcpdump host shi-pc ,則無法再使用-n選項。

5. 過濾:指定數據包大小

使用greater(大于)與less(小于)可以指定數據包大小的范圍。

「例:只抓取大于1000字節(jié)的數據包?!?/strong>

命令:

tcpdump?greater?1000
「例:只抓取小于10字節(jié)的數據包?!?/strong>

命令:

tcpdump?less?10

五、 邏輯表達式

使用基本邏輯組合拼裝出更精細的過濾條件。

1. 邏輯與

邏輯與關系,使用and。

命令:

tcpdump?tcp?and?host?192.168.1.112

tcpdump?tcp?and?src?192.168.1.112?and?port?8080

2. 邏輯或

邏輯或關系,使用or。

命令:

tcpdump?host?192.168.1.112?or?192.168.1.113

3. 邏輯非

邏輯非關系,使用not,也可以使用 ! 。

若使用 ! 必須與其后面的字符隔開一個空格。

例:當通過ssh協(xié)議遠程使用tcpdump時,為了避免ssh的數據包的輸出,所以一般需要禁止ssh數據包的輸出。

命令:

tcpdump?not?tcp?port?22

tcpdump?!?tcp?port?22

4. 括號

括號需要使用在引號內,或轉意使用。否則會報錯。

例:抓取非22端口,且主機為192.168.1.112 和 192.168.1.113的TCP數據包。

命令:

tcpdump?not?tcp?port?22?and?host?192.168.1.112or192.168.1.113

tcpdump?"not?tcp?port?22?and?host?(192.168.1.112?or?192.168.1.113)"

tcpdump?not?tcp?port?22?and?host?"(192.168.1.112?or?192.168.1.113)"

六、其他實例

1. 打印所有進入或離開sundown的數據包.

tcpdump?host?sundown

2. 截獲主機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?\)??

3. 如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通信的ip包,使用命令:

tcpdump?ip?host?210.27.48.1?and?!?210.27.48.2

4. 監(jiān)視所有送到主機hostname的數據包

tcpdump?-i?eth0?dst?host?hostname

5. 獲取主機210.27.48.1接收或發(fā)出的telnet包

23為telnet的端口

tcpdump?tcp?port?23?and?host?210.27.48.1

6. 監(jiān)視本機的udp 123 端口

123 為ntp的服務端口

tcpdump?udp?port?123?

7. 使用tcpdump抓取HTTP包

tcpdump??-XvvennSs?0?-i?eth0?tcp[20:2]=0x4745?or?tcp[20:2]=0x4854
  • 0x4745 為"GET"前兩個字母"GE",
  • 0x4854 為"HTTP"前兩個字母"HT"。
tcpdump 對截獲的數據并沒有進行徹底解碼,數據包內的大部分內容是使用十六進制的形式直接打印輸出的。

顯然這不利于分析網絡故障,通常的解決辦法是先使用帶**-w參數的tcpdump 截獲數據并保存到文件中**,然后再使用其他程序(如Wireshark)進行解碼分析。當然也應該定義過濾規(guī)則,以避免捕獲的數據包填滿整個硬盤。

六、查看數據包完整內容

tcpdump默認不顯示數據包的詳細內容。

方法一:

使用-A參數能以ASCII碼顯示數據包。

例:只抓取1個數據包,并顯示其內容。

命令:

tcpdump?-c?1?-A

方法二:

使用-X參數能16進制數與ASCII碼共同顯示數據包。

例:只抓取1個數據包,并顯示其內容。

命令:

tcpdump?-c?1?-X

七、tcpdump 與wireshark

Wireshark(以前是ethereal)是Windows下非常簡單易用的抓包工具,現(xiàn)在也有Linux版本。

通過Tcpdump抓取的數據包分析比較麻煩,要想很方便的分析數據包, 我們可以用Tcpdump Wireshark 的完美組合實現(xiàn):在 Linux 里抓包,然后在Windows 里分析包。

保存數據包為wireshark能識別的文件:

tcpdump?tcp?-i?eth1?-t?-s?0?-c?100?and?dst?port?!?22?and?src?net?192.168.1.0/24?-w?./target.cap
參數含義
tcpip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個參數的位置,用來過濾數據報的類型
-i eth1只抓經過接口eth1的包
-t不顯示時間戳
-s 0抓取數據包時默認抓取長度為68字節(jié)。加上-S 0 后可以抓到完整的數據包
-c 100只抓取100個數據包
dst port ! 22不抓取目標端口是22的數據包
src net 192.168.1.0/24數據包的源網絡地址為192.168.1.0/24
-w ./target.cap保存成cap文件,方便用ethereal(即wireshark)分析
免責聲明:本文素材來源網絡,版權歸原作者所有。如涉及作品版權問題,請與我聯(lián)系刪除。
------------?END?------------

●嵌入式專欄精選教程●精選匯總 | ST工具、下載編程工具●精選匯總 | 嵌入式軟件設計與開發(fā)●精選匯總 | STM32、MCU、單片機
歡迎關注我的公眾號,回復“加群”按規(guī)則加入技術交流群,回復“1024”查看更多內容。
歡迎關注我的視頻號:


點擊“閱讀原文”查看更多分享,歡迎點分享、收藏、點贊、在看。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉