Linux命令 tcpdump詳解

2021-09-24 04:12:22 字數 2397 閱讀 9107

前言:

tcpdump 是一款靈活、功能強大的抓包工具,能有效地幫助排查網路故障問題。

1.1 檢視是否安裝

2.2 使用工具安裝

sudo yum install -y tcpdump

2.1 獲取網絡卡的列表

2.2 引數:-i

2.2.1 抓取en0的資料

tcpdump -i en0

2.2.2 抓取所有網絡卡的資料

tcpdump -i any

2.3 引數-c

限制抓包數量,例如只抓取5個包

2.4 引數-n和-nn

2.4.1 引數-n用於顯示ip

2.4.2 引數-nn用於顯示ip和埠

2.5 篩選協議,如tcp,icmp

tcpdump -i en0 -c 5 -n icmp

2.6 篩選host

tcpdump -i any -c 5 -nn host 127.0.0.1

2.7 篩選port

tcpdump -i any -c 5 -nn port 3306

2.8 篩選源ip

tcpdump -i any -c 5 -nn src 127.0.0.1

2.9 篩選目的ip

tcpdump -i any -c 5 -nn dst 127.0.0.1

2.10 多條件篩選(or或者and)

tcpdump -i any -c 5 -nn dst 127.0.0.1 and port 3306

tcpdump -i any -c5 -nn "port 80 and (src 192.168.122.98 or src 54.204.39.132)"

該例子中我們只抓取了來自源 ip 為 192.168.122.98 或者 54.204.39.132 的 http (埠號80)的資料報。使用該方法就很容易抓取到資料流中互動雙方的資料報了。

2.10 引數-w和-r

儲存抓包資料

tcpdump -i any -c10 -nn -w webserver.pcap port 80

tcpdump -r webserver.pcap

tcpdump 抓取的 tcp 報文看起來如下:

08:41:13.729687 ip 192.168.64.28.22 > 192.168.64.1.41916: flags [p.],seq196:568, ack 1, win 309, options [nop,nop,ts val 117964079 ecr 816509256], length 372

具體的字段根據不同的報文型別會有不同,但上面這個例子是一般的格式形式。

第乙個字段 08:41:13.729687 是該資料報文被抓取的系統本地時間戳。

然後, ip 是網路層協議型別,這裡是 ipv4 ,如果是 ipv6 協議,該字段值是 ip6 。

192.168.64.28.22 是源 ip 位址和埠號,緊跟其後的是目的 ip 位址和其埠號,這裡是 192.168.64.1.41916 。

在源 ip 和目的 ip 之後,可以看到是 tcp 報文標記段 flags [p.] 。該欄位通常取值如下:

該字段也可以是這些值的組合,例如 [s.] 代表 syn-ack 資料報。

接下來是該資料報中資料的序列號。對於抓取的第乙個資料報,該字段值是乙個絕對數字,後續包使用相對數值,以便更容易查詢跟蹤。例如此處 seq 196:568 代表該資料報包含該資料流的第 196 到 568 位元組。

接下來是 ack 值: ack 1 。該資料報是資料傳送方,ack 值為 1。在資料接收方,該欄位代表資料流上的下乙個預期位元組資料,例如,該資料流中下乙個資料報的 ack 值應該是 568。

接下來欄位是接收視窗大小 win 309 ,它表示接收緩衝區中可用的位元組數,後跟 tcp 選項如 mss(最大段大小)或者視窗比例值。更詳盡的 tcp 協議內容請參考 transmission control protocol(tcp) parameters 。

最後, length 372 代表資料報有效載荷位元組長度。這個長度和 seq 序列號中位元組數值長度是不一樣的。

linux下抓包工具tcpdump命令詳解

tcpdump採用命令列方式,它的命令格式為 tcpdump adeflnnopqstvx c 數量 f 檔名 i 網路介面 r 檔名 s snaplen t 型別 w 檔名 表示式 1.tcpdump的選項介紹 a 將 網路位址和 廣播位址轉變成名字 d 將匹配資訊包的 以人們能夠理解的彙編格式給...

linux之tcpdump命令詳解

簡介 tcpdump dump the traffic on a network,是指根據使用者的定義對網路上的資料報進行截獲的包分析工具。tcpdump可以將網路中傳送的資料報的 頭 完全截獲下來提供分析。它支援針對網路層 協議 主機 網路或埠的過濾,並提供and or not等邏輯語句來幫助你去...

Linux抓包命令tcpdump

tcpdump是乙個抓包工具,用於抓取網際網路上傳輸的資料報 tcpdump是乙個用於擷取網路分組,並輸出分組內容的工具。憑藉強大的功能和靈活的擷取策略,使其成為類unix系統下用於網路分析和問題排查的首選工具 tcpdump 支援針對網路層 協議 主機 網路或埠的過濾,並提供and or not等...