萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> linux系統tcpdump使用方法

linux系統tcpdump使用方法

  用戶必須有root權限才可運行tcpdump

  -w file: 將抓包存入指定的文件。

  -r file: 從指定的文件讀入報文(由-w選項保存而成),而不是抓取網卡上的報文

  -c count:指定抓取count個報文後停止,否則一直抓下去,用戶可通過Ctrl-C終止

  -e:將二層報文頭也解析出來。默認情況下,只從IP頭開始解析,增加此選項後會將報

  文的二層頭也解析出來。

  -F:抓包的過濾條件從指定的文件中讀取

  -D:列出可抓取的網卡的列表,如下面的例子有三個網卡

  [p01056@localhost ~]$ sudo /usr/sbin/tcpdump  -D

  1.eth3

  2.any (Pseudo-device that captures on all interfaces)

  3.lo

  -i interface:抓取指定的網卡上的報文,參數就是-D中列出的那些接口。

  如果不指定該參數,將選取link-up狀態的編號最小的網卡抓取(除環回接口外)

  例如,下面就是抓取lo接口上的報文(自己ping自己的報文)

  [p01056@localhost ~]$ sudo /usr/sbin/tcpdump -i 3

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

  listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes

  15:37:24.266382 IP 10.153.107.75 > 10.153.107.75: ICMP echo request, id

  13934, seq 1, length 64

  15:37:24.266434 IP 10.153.107.75 > 10.153.107.75: ICMP echo reply, id 13934,

  seq 1, length 64

  -n:不將主機地址轉換成dns名稱

  -nn:不將協議號和端口號轉換成名稱

  不加-nn

  15:43:37.223798 IP 10.153.107.72.tsdos390 > 10.153.107.75.ssh: . ack 441 win

  62371

  加-nn

  15:43:45.936130 IP 10.153.107.72.1237 > 10.153.107.75.22: P 1:53(52) ack

  4294955024 win 64467

  -q:快速輸出模式,輸出較少的協議信息。

  -S:打印tcp序號的絕對值,而不是相對序號。

  -t:不打印時間戳

  -ttt:打印和前一個報文的時間差

  -v:打印verbose信息

  -vv:打印更多的verbose信息

  -vvv:打印更更多的verbose信息

  -x:以16進制的形式打印,不含二層頭

  -xx:以16進制的形式打印,包含二層頭

  -X:以16進制打印,同時輸出ASCII碼,不含二層頭

  -XX:以16進制打印,同時輸出ASCII碼,包含二層頭

  過濾條件:放在命令的最後

  由一個或多個限定符加上id(名稱或數字)構成。

  限定符有三類:

  type:指明id的類型,如host,net,port,portrange等

  dir:指明id的傳送方向,如src/dst/src or dst/src and dst

  proto:指明協議類型,例如ether,ip,arp等。

  例如:

  ether dst ehost

  ether dst 68:b5:99:79:17:b2   : 目的mac = 68:b5:99:79:17:b2

  ip src 10.153.107.73          : 源IP = 10.153.107.73

  tcp dst port 22               : tcp目的端口號 = 22 (ssh)

  多個簡單過濾條件可以用and,or連接成一個符合過濾條件。如:ip src

  10.153.107.79 && tcp dst port 22

  sudo /usr/sbin/tcpdump -e -c 10 ip src 10.153.107.79 && tcp dst port 22


copyright © 萬盛學電腦網 all rights reserved