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
顯示結果如下:
.c可以看到該結果只顯示了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 ]
ubuntu下安裝Tcpdump並使用
因為要在linux測試乙個http協議偽裝的需要,使用到了linux下的wireshark抓包軟體 tcpdump。具體的安裝過程如下 2.安裝c編譯所需包 apt get install build essential 3.安裝 libpcap的前置 apt get install flex,ap...
tcpdump使用詳解
tcpdump採用命令列方式,它的命令格式為 tcpdump adeflnnopqstvx c 數量 f 檔名 i 網路介面 r 檔名 s snaplen t 型別 w 檔名 表示式 1.tcpdump的選項介紹 a 將網路位址和廣播位址轉變成名字 d 將匹配資訊包的 以人們能夠理解的彙編格式給出 ...
tcpdump 日常使用
使用 i引數指定tcpdump監聽的網路介面,這在計算機具有多個網路介面時非常有用,使用 c引數指定要監聽的資料報數量,使用 w引數指定將監聽到的資料報寫入檔案中儲存 a想要截獲所有210.27.48.1 的主機收到的和發出的所有的資料報 tcpdump host 210.27.48.1 b想要截獲...