tcpdump 使用方法


***** tcpdump是 Linux 系統提供一個非常強大的抓包工具。

centos 安裝:

sudo yum install tcpdump

ubuntu 安裝:

sudo apt-get install tcpdump

如果要使用 tcpdump 命令必須具有 sudo 權限\或者切換到root 用戶下去執行。

 

****** tcpdump常用的選項有:

-i 指定要捕獲的目標網卡名,網卡名可以使用前面章節中介紹的 ifconfig 命令獲得;如果要抓所有網卡的上的包,可以使用 any 關鍵字。## 抓取網卡ens33上的包tcpdump -i ens33## 抓取所有網卡上的包tcpdump -i any

-X 以 ASCII 和十六進制的形式輸出捕獲的數據包內容,減去鏈路層的包頭信息;

-XX 以 ASCII 和十六進制的形式輸出捕獲的數據包內容,包括鏈路層的包頭信息。

-n 不要將 ip 地址顯示成別名的形式;

-nn 不要將 ip 地址和端口以別名的形式顯示

-S 以絕對值顯示包的 ISN 號(包序列號),默認以上一包的偏移量顯示。

-vv 抓包的信息詳細地顯示;

-vvv 抓包的信息更詳細地顯示。

-w 將抓取的包的原始信息(不解析,也不輸出)寫入文件中,后跟文件名:tcpdump -i any -w 文件名稱

-r 從利用 -w 選項保存的包文件中讀取數據包信息。除了可以使用選項以外,tcpdump 還支持各種數據包過濾的表達式,常見的形式如下:

## 僅顯示經過端口 8888 上的數據包(包括tcp:8888和udp:8888)tcpdump -i any 'port 8888'

## 僅顯示經過端口是 tcp:8888 上的數據包tcpdump -i any 'tcp port 8888'

## 僅顯示從源端口是 tcp:8888 的數據包tcpdump -i any 'tcp src port 8888'

## 僅顯示源端口是 tcp:8888 或目標端口是 udp:9999 的包 tcpdump -i any 'tcp src port 8888 or udp dst port 9999'## 僅顯示地址是127.0.0.1 且源端口是 tcp:9999 的包 ,以 ASCII 和十六進制顯示詳細輸出,

## 不顯示 ip 地址和端口號的別名tcpdump -i any 'src host 127.0.0.1 and tcp src port 9999' -XX -nn -vv

-t:在每行的輸出中不輸出時間

-tt:在每行的輸出中會輸出時間戳

-ttt:輸出每兩行打印的時間間隔(以毫秒為單位)

-tttt:在每行打印的時間戳之前添加日期的打印(此種選項,輸出的時間最直觀)

 

***** 使用抓包

打開兩個會話窗口,A  會話窗口執行抓包等待命令

tcpdump -i any 'port 80' -nn -vv

 

 B  會話窗口執行請求百度的命令:

 

 

切換到A窗口查看抓包信息:

以下信息 包含了 tcp 的三次握手與四次揮手

 

輸出格式說明:

從上面的輸出來看,可以總結出:

第一列:時分秒毫秒 21:26:49.013621

第二列:網絡協議 IP

第三列:發送方的ip地址+端口號,其中172.20.20.1是 ip,而15605 是端口號

第四列:箭頭 >, 表示數據流向

第五列:接收方的ip地址+端口號,其中 172.20.20.2 是 ip,而5920 是端口號

第六列:冒號

第七列:數據包內容,包括Flags 標識符,seq 號,ack 號,win 窗口,數據長度 length,其中 [P.] 表示 PUSH 標志位為 1,

更多標識符見下面 Flags 標識符

使用 tcpdump 抓包后,會遇到的 TCP 報文 Flags,有以下幾種:

[S] : SYN(開始連接)

[P] : PSH(推送數據)

[F] : FIN (結束連接)

[R] : RST(重置連接)

[.] : 沒有 Flag,由於除了 SYN 包外所有的數據包都有ACK,所以一般這個標志也可表示 ACK

 

********* 將 tcpdump抓包保存在文件中,再用tcpdump打開文件

A會話窗口執行以下命令:

tcpdump -i any  'port 80' -XX -nn -vv   -w 1.pcap

 

 B  會話窗口執行請求百度的命令:

 

A會話窗口執行如下Ctrl+c 結束tcpdump 抓包

 

 

A會話窗口使用tcpdump 打開1.pcap 文件:

# tcpdump -XXtttnnr  1.pcap

# tcpdump -tttnnr  1.pcap

 

 

 

 

 

 

 

 

 文章參考:

https://www.cnblogs.com/chenpingzhao/p/9108570.html

https://baijiahao.baidu.com/s?id=1671144485218215170&wfr=spider&for=pc

https://baijiahao.baidu.com/s?id=1684480257066370010&wfr=spider&for=pc

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM