tcpdump是一個很常用的網(wǎng)絡(luò)包分析工具,可以用來顯示通過網(wǎng)絡(luò)傳輸?shù)奖鞠到y(tǒng)的 TCP/IP 以及其他網(wǎng)絡(luò)的數(shù)據(jù)包。tcpdump使用 libpcap 庫來抓取網(wǎng)絡(luò)報,這個庫在幾乎在所有的 Linux/Unix 中都有。
tcpdump可以從網(wǎng)卡或之前創(chuàng)建的數(shù)據(jù)包文件中讀取內(nèi)容,也可以將包寫入文件中以供后續(xù)使用。必須是 root 用戶或者使用 sudo 特權(quán)來運(yùn)行tcpdump。
在本文中,我們將會通過一些實(shí)例來演示如何使用tcpdump命令,但首先讓我們來看看在各種 Linux 操作系統(tǒng)中是如何安裝tcpdump的。
推薦閱讀:使用 iftop 命令監(jiān)控網(wǎng)絡(luò)帶寬
安裝
tcpdump默認(rèn)在幾乎所有的 Linux 發(fā)行版中都可用,但若你的 Linux 上沒有的話,使用下面方法進(jìn)行安裝。
CentOS/RHEL
使用下面命令在 CentOS 和 RHEL 上安裝tcpdump,
$sudo yum install tcpdump*
Fedora
使用下面命令在 Fedora 上安裝tcpdump:
$dnf install tcpdump
Ubuntu/Debian/Linux Mint
在 Ubuntu/Debain/Linux Mint 上使用下面命令安裝tcpdump:
$apt-get install tcpdump
安裝好tcpdump后,現(xiàn)在來看一些例子。
案例演示
從所有網(wǎng)卡中捕獲數(shù)據(jù)包
運(yùn)行下面命令來從所有網(wǎng)卡中捕獲數(shù)據(jù)包:
$tcpdump -iany
從指定網(wǎng)卡中捕獲數(shù)據(jù)包
要從指定網(wǎng)卡中捕獲數(shù)據(jù)包,運(yùn)行:
$tcpdump-ieth0
將捕獲的包寫入文件
使用-w選項(xiàng)將所有捕獲的包寫入文件:
$tcpdump -ieth1 -wpackets_file
讀取之前產(chǎn)生的 tcpdump 文件
使用下面命令從之前創(chuàng)建的 tcpdump 文件中讀取內(nèi)容:
$tcpdump-rpackets_file
獲取更多的包信息,并且以可讀的形式顯示時間戳
要獲取更多的包信息同時以可讀的形式顯示時間戳,使用:
$tcpdump -ttttnnvvS
查看整個網(wǎng)絡(luò)的數(shù)據(jù)包
要獲取整個網(wǎng)絡(luò)的數(shù)據(jù)包,在終端執(zhí)行下面命令:
$tcpdump net192.168.1.0/24
根據(jù) IP 地址查看報文
要獲取指定 IP 的數(shù)據(jù)包,不管是作為源地址還是目的地址,使用下面命令:
$tcpdump host192.168.1.100
要指定 IP 地址是源地址或是目的地址則使用:
$tcpdump src192.168.1.100
$tcpdump dst192.168.1.100
查看某個協(xié)議或端口號的數(shù)據(jù)包
要查看某個協(xié)議的數(shù)據(jù)包,運(yùn)行下面命令:
$tcpdump ssh
要捕獲某個端口或一個范圍的數(shù)據(jù)包,使用:
$tcpdump port22
$tcpdump portrange22-125
我們也可以與src和dst選項(xiàng)連用來捕獲指定源端口或指定目的端口的報文。
我們還可以使用“與” (and,&&)、“或” (or,||) 和“非”(not,!) 來將兩個條件組合起來。當(dāng)我們需要基于某些條件來分析網(wǎng)絡(luò)報文是非常有用。
使用“與”
可以使用and或者符號&&來將兩個或多個條件組合起來。比如:
$tcpdump src192.168.1.100 && port22 -wssh_packets
使用“或”
“或”會檢查是否匹配命令所列條件中的其中一條,像這樣:
$tcpdump src192.168.1.100ordst192.168.1.50 && port22 -wssh_packets
$tcpdump port443or80 -whttp_packets
使用“非”
當(dāng)我們想表達(dá)不匹配某項(xiàng)條件時可以使用“非”,像這樣:
$tcpdump -ieth0 src port not22
這會捕獲 eth0 上除了 22 號端口的所有通訊。
我們的教程至此就結(jié)束了,在本教程中我們講解了如何安裝并使用tcpdump來捕獲網(wǎng)絡(luò)數(shù)據(jù)包。如有任何疑問或建議,歡迎留言。
-
Linux
+關(guān)注
關(guān)注
87文章
11509瀏覽量
213715
原文標(biāo)題:通過實(shí)例學(xué)習(xí) tcpdump 命令
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Wireshark抓包和Tcpdump抓包實(shí)例分析
Linux tcpdump命令示例 如何在Linux中安裝tcpdump

tcpdump命令介紹
使用tcpdump抓包后生成的pcap文件大小為0
網(wǎng)絡(luò)行抓包分析工具tcpdump安裝介紹

tcpdump如何實(shí)現(xiàn)抓內(nèi)核態(tài)的包

詳解tcpdump命令的六個常用選項(xiàng)
Linux網(wǎng)絡(luò)分析tcpdump工作原理和應(yīng)用

評論