Linux環境利用tcpdump對網路資料進行抓包

2021-07-10 15:33:18 字數 3900 閱讀 9193

ubuntu預設是安裝好了tcpdump工具的,如果沒有安裝的話使用sudo apt-get install tcpdump即可安裝。

(如果遇到tcpdump: no suitable device found的問題,檢查一下是不是在用root許可權執行tcpdump,tcpdump只能在root許可權下工作)

安裝好tcpdump之後,執行tcpdump:

1. tcpdump -d 獲取網路介面卡列表

,以下是在ubuntu上獲取到的結果:

root@holmesian-laptop:~# tcpdump -d

1.eth0

2.wlan0

3.usbmon1 (usb bus number 1)

4.usbmon2 (usb bus number 2)

5.usbmon3 (usb bus number 3)

6.usbmon4 (usb bus number 4)

7.usbmon5 (usb bus number 5)

8.any (pseudo-device that captures on all inte***ces)

9.lo

2. tcpdump -i 《需要監控的網路介面卡編號》

,例如我想監控我的無線網絡卡wlan0,則使用tcpdump -i 2。

root@holmesian-laptop:~# tcpdump -i 2

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on wlan0, link-type en10mb (ethernet), capture size 96 bytes

21:24:14.578430 00:24:f9:05:78:00 (oui unknown) unknown ssap 0x78 > 00:1f:3a:18:fa:06 (oui unknown) unknown dsap 0xd8 information, send seq 0, rcv seq 16, flags [command], length 70

21:24:14.578447 00:24:f9:05:78:00 (oui unknown) unknown ssap 0x78 > 00:1f:3a:18:fa:06 (oui unknown) unknown dsap 0xd8 information, send seq 0, rcv seq 16, flags [command], length 223

21:24:14.995603 00:24:f9:05:78:00 (oui unknown) unknown ssap 0x20 > 78:dd:08:d1:b2:ca (oui unknown) unknown dsap 0x76 information, send seq 0, rcv seq 16, flags [command], length 70

21:24:15.019811 00:24:f9:05:78:00 (oui unknown) unknown ssap 0xa6 > 2c:81:58:ec:9c:54 (oui unknown) unknown dsap 0x0a information, send seq 0, rcv seq 16, flags [command], length 72

如果不使用-i來定義監控介面卡的話,預設使用列表中的第乙個;

3. 使用無線網絡卡wlan0監控ip位址為

172.16.86.111

上443埠的tcp協議

:tcpdump -i 2 host 172.16.86.111 and tcp port 443

4. 如果想要顯示資料報的內容,需要使用-x引數

,如,我想要顯示捕獲的https資料報http header的內容:

tcpdump -x -i 2 host 172.16.86.111 and tcp port 443

顯示結果如下:

可以看到該結果只顯示了https頭的一部分,沒有顯示全,是因為tcpdump預設將顯示的資料長度截斷了,可以使用-s後面加資料長度,來設定資料顯示長度:

tcpdump -x -s 0 -i 2 host 172.16.86.111 and tcp port 443

以上的例子中,-s 0 表示自動設定長度使其能夠顯示所有資料。

5. 捕獲的資料太多,不斷刷屏,可能需要將資料內容記錄到檔案裡,需要使用-w引數

:tcpdump -x -s 0 -w aaa host 192.9.200.59 and tcp port 8000

則將之前顯示在螢幕中的內容,寫入tcpdump可執行檔案同級目錄下的aaa檔案中。

檔案檢視方式如下,需要使用-r引數:

tcpdump -x -s 0 -i 2 -r holmesian host 172.16.86.111 and tcp port 443

如果這樣寫:

tcpdump -r holmesian

則只能看到最簡單的資料傳輸互動過程,看不到資料報內容,檢視時也需要使用相應的引數。

6.總結

總結一下,tcpdump的引數分兩個部分,選項(options)和表示式(expression):

root@holmesian-laptop:~# tcpdump -h

tcpdump version 4.0.0

libpcap version 1.0.0

usage: tcpdump [-aaddefikllnnopqrstuuvxx] [ -b size ] [ -c count ]

[ -c file_size ] [ -e algo:secret ] [ -f file ] [ -g seconds ]

[ -i inte***ce ] [ -m secret ] [ -r file ]

[ -s snaplen ] [ -t type ] [ -w file ] [ -w filecount ]

[ -y datalinktype ] [ -z command ] [ -z user ]

[ expression ]

Linux常用命令筆記整理之tcpdump

強大的抓包工具,博大精深內容太多,所以這篇部落格整理得只說常用,具體的參考tcpdump使用者手冊,tcpdump需要root許可權,所以記得加上sudo 注 上述的那個host可以省略 tcpdump支援如下的型別 1.host 指定主機名或ip位址,例如 host roclinux.cn 或 h...

利用yum安裝php lamp環境

今天用yum方法搭建起了個lamp環境,中間遇到了很多問題,經過google和各位前輩的幫助,終於將環境搭建起來,現在把完整的步驟記錄下來,2.用yum安裝apache,mysql,php.2.1安裝apache 安裝完成後,用 etc init.d httpd start 啟動apache 設為開...

利用anaconda進行環境配置

bash anaconda3 5.0.0 linux x86 64.sh一路回車,如果有需要回答的輸入yes就可以。在確認安裝位置時,可以修改,如果不修改就預設安裝到 root anaconda3目錄下,建議使用預設的安裝位置,並記住該位置,後續進行環境配置時會用到。下面就直接回車,開始安裝。安裝結...