前言
Tcpdump
是用于分析網(wǎng)絡(luò)和查找相關(guān)網(wǎng)絡(luò)問題的出色工具。它會(huì)在數(shù)據(jù)包經(jīng)過時(shí)捕獲數(shù)據(jù)包,并向您顯示網(wǎng)絡(luò)上正在發(fā)生的事情和傳入情況。該命令的輸出顯示在 STDOUT
上,也可以存儲(chǔ)在文件中。
感謝開發(fā)人員,他們將Tcpdump
保留為開源項(xiàng)目。它可以在Unix和Linux系統(tǒng)上免費(fèi)獲得。視窗有一個(gè)“微海外杠TCPDUMP
用于視窗”變體,并帶有相關(guān)的價(jià)格標(biāo)簽。
tcpdump
有一長串可用的選項(xiàng)。在本文中,我將重點(diǎn)介紹經(jīng)常使用的核心選項(xiàng)。
檢查可用接口
要檢查要捕獲的所有可用接口,請(qǐng)使用-D
標(biāo)志作為:
sudo tcpdump -D
這將列出系統(tǒng)上的所有接口,包括無線和有線接口等。該標(biāo)志也可以獲得相同的功能:--list-interfaces
sudo tcpdump --list-interfaces
在這里插入圖片描述
捕獲特定接口的數(shù)據(jù)包
在不使用任何選項(xiàng)的情況下,Tcpdump
將掃描所有接口。該標(biāo)志捕獲來自特定接口的流量:-i
tcpdump -i <target-interface>
將 替換為要掃描的接口的名稱。例如,在 接口 的情況下,此命令將作為:target-interfaceeth0
sudo tcpdump -i eth0
注意:從現(xiàn)在開始,我將使用 or 作為目標(biāo)接口。因此,無論您在何處看到 -i 標(biāo)志,它都將伴隨界面或 eth0
eth1
eth0
eth1
預(yù)設(shè)捕獲計(jì)數(shù)
該標(biāo)志可用于預(yù)設(shè)要捕獲的數(shù)據(jù)包數(shù)-c
例如,我們將此值設(shè)置為 4
以捕獲四個(gè)數(shù)據(jù)包。在本例中,該命令將為:
sudo tcpdump -c 4 -i eth0
如果未指定計(jì)數(shù),則將使用組合鍵或 手動(dòng)中斷捕獲操作。
ctrl+cctrl+z
在下面的文章中,我將根據(jù)需要將標(biāo)志與其他標(biāo)志一起添加。這將有助于我們清晰,輕松地理解命令的輸出。-c
獲取詳細(xì)輸出
要獲取命令的詳細(xì)輸出,可以使用標(biāo)志:tcpdump-v
sudo tcpdump -c 6 -v -i eth0
您可以使用更多標(biāo)志 as 或 進(jìn)一步提高詳細(xì)程度。這將在終端上產(chǎn)生更詳細(xì)的輸出:-v
-vv
-vvv
sudo tcpdump -vv -i eth0
以 ASCII 格式打印捕獲的數(shù)據(jù)
有時(shí),我們可能要求 Tcp
轉(zhuǎn)儲(chǔ)輸出采用十六進(jìn)制或 ASCII 格式。我們可以使用 ASCII 格式以及 ASCII 和十六進(jìn)制格式的選項(xiàng)來解決這個(gè)問題:-A-
XX
sudo tcpdump -XX -i eth0
在這里插入圖片描述
捕獲從特定源 IP 發(fā)送的數(shù)據(jù)包
如果要檢查來自特定源 IP 地址的流量,請(qǐng)使用以下命令:
sudo tcpdump -i eth0 src address>
讓我們將源 IP 作為并查看流量的詳細(xì)信息:192.168.56.11
sudo tcpdump -i eth1 -c 5 src 192.168.56.11
此處的計(jì)數(shù) 5 將僅捕獲前五個(gè)數(shù)據(jù)包。
捕獲發(fā)送到特定目標(biāo) IP 的數(shù)據(jù)包
如果要檢查發(fā)送到特定目標(biāo) IP 地址的流量,請(qǐng)使用以下命令:
sudo tcpdump -i eth0 dst address>
讓我們將目標(biāo) IP 作為并查看流量的詳細(xì)信息:192.168.56.11
sudo tcpdump -i eth1 -c 5 dst 192.168.56.11
在這里插入圖片描述
將過濾選項(xiàng)與 Tcp 轉(zhuǎn)儲(chǔ)結(jié)合使用
這是縮小捕獲數(shù)據(jù)范圍以進(jìn)行檢查的好方法。這將消除不必要的流量并簡化您的工作。為此,您可以根據(jù)主機(jī)、端口、協(xié)議和其他條件篩選流量。
讓我們看看其中的一些:
端口號(hào)
如果要根據(jù)端口號(hào)過濾流量,例如端口 22
,則按如下方式執(zhí)行命令:tcpdump
sudo tcpdump -i eth0 port 22
此命令將捕獲 TCP 和 UDP 流量。
協(xié)議
與端口指令類似,該指令根據(jù)特定流量過濾數(shù)據(jù)包捕獲。在這里,您可以使用協(xié)議名稱或協(xié)議編號(hào)作為參數(shù)值:proto
sudo tcpdump -i eth0 proto tcp
sudo tcpdump -i eth0 proto 6
令您驚訝的是,上面的兩個(gè)命令是等效的。這是因?yàn)?是 TCP 的協(xié)議編號(hào)。6
主機(jī)過濾器
host
參數(shù)只是使用其 IP 過濾來自特定主機(jī)的流量:
sudo tcpdump -i eth0 host 192.168.56.10
這將捕獲所有流量并從此主機(jī)流出。有趣的是,您可以將多個(gè)過濾器應(yīng)用于主機(jī),以針對(duì)特定類型的數(shù)據(jù)包流量。
例如:
sudo tcpdump -i eth1 -c 50 “(host 192.168.56.11) and (port 443 or port 80)"
在這里,我將不同的過濾規(guī)則合并到一個(gè)規(guī)則中。您可以看到此規(guī)則是過濾和流量。這是因?yàn)樵撘?guī)則包含端口
80
和 443
(公共網(wǎng)絡(luò)端口)的篩選器。http
https
保存捕獲的數(shù)據(jù)
如果要將捕獲的數(shù)據(jù)存儲(chǔ)在文件中,可以這樣操作。
sudo tcpdump -i eth0 -c 10 -w my_capture.pcap
將數(shù)據(jù)包計(jì)數(shù)保持在較小的值;否則,您可能需要手動(dòng)停止該過程。
讀取捕獲的數(shù)據(jù)
您可以使用存儲(chǔ)在文件中的數(shù)據(jù)與Wireshark
或任何其他圖形網(wǎng)絡(luò)協(xié)議分析器進(jìn)行分析。.pcap
您可以使用 tcp
轉(zhuǎn)儲(chǔ)本身來讀取它。
tcpdump -r my_capture.pcap
上面的屏幕截圖顯示了上述文件的數(shù)據(jù)。
my_capture.pcap
結(jié)語
希望您對(duì)如何使用不同的方式使用tcpdump命令有一個(gè)很好的想法。當(dāng)您從遠(yuǎn)程無外設(shè)計(jì)算機(jī)捕獲數(shù)據(jù)包時(shí),這是最佳選擇。
如果您想要一種更直觀的方式來理解數(shù)據(jù)包捕獲,請(qǐng)嘗試使用Wireshark。
-
網(wǎng)絡(luò)
+關(guān)注
關(guān)注
14文章
7810瀏覽量
90824 -
文件
+關(guān)注
關(guān)注
1文章
579瀏覽量
25342 -
數(shù)據(jù)包
+關(guān)注
關(guān)注
0文章
269瀏覽量
24974
發(fā)布評(píng)論請(qǐng)先 登錄
Linux系統(tǒng)中unlink命令的使用
在Linux中使用tcp轉(zhuǎn)儲(chǔ)命令來分析網(wǎng)絡(luò)
用于分析可執(zhí)行程序和內(nèi)存轉(zhuǎn)儲(chǔ)的命令行工具介紹

Linux的常用網(wǎng)絡(luò)命令
基于TCP/IP協(xié)議的網(wǎng)絡(luò)連接網(wǎng)絡(luò)管理命令

Linux中的35個(gè)find命令用法

評(píng)論