LINUX 抓取網路封包工具 tcpdump的用法說明
LINUX 抓取網路封包工具 tcpdump的用法說明
tcpdump [ -DenNqvX ] [ -c count ] [ -F file ] [ -i interface ] [ -r file ]
[ -s snaplen ] [ -w file ] [ expression ]
抓包選項:
-c:指定要抓取的包數量。注意,是最終要獲取這麼多個包。例如,指定”-c 10″將獲取10個包,但可能已經處理了100個包,只不過只有10個包是滿足條件的包。
-i interface:指定tcpdump需要監聽的介面。若未指定該選項,將從系統介面清單中搜尋編號最小的已配置好的介面(不包括loopback介面,要抓取loopback介面使用tcpdump -i lo),
:一旦找到第一個符合條件的介面,搜尋馬上結束。可以使用’any’關鍵字表示所有網路介面。
-n:對位址以數位方式顯式,否則顯式為主機名稱,也就是說-n選項不做主機名稱解析。
-nn:除了-n的作用外,還把埠顯示為數值,否則顯示埠服務名。
-N:不列印出host的功能變數名稱部分。例如tcpdump將會列印’nic’而不是’nic.ddn.mil’。
-P:指定要抓取的包是流入還是流出的包。可以給定的值為”in”、”out”和”inout”,默認為”inout”。
-s len:設置tcpdump的資料包抓取長度為len,如果不設置預設將會是65535位元組。對於要抓取的資料包較大時,長度設置不夠可能會產生包截斷,若出現包截斷,
:輸出行中會出現”[|proto]”的標誌(proto實際會顯示為協定名)。但是抓取len越長,包的處理時間越長,並且會減少tcpdump可緩存的資料包的數量,
:從而會導致資料包的丟失,所以在能抓取我們想要的包的前提下,抓取長度越小越好。
輸出選項:
-e:輸出的每行中都將包括資料連結層頭部資訊,例如源MAC和目標MAC。
-q:快速列印輸出。即列印很少的協定相關資訊,從而輸出行都比較簡短。
-X:輸出包的頭部資料,會以16進制和ASCII兩種方式同時輸出。
-XX:輸出包的頭部資料,會以16進制和ASCII兩種方式同時輸出,更詳細。
-v:當分析和列印的時候,產生詳細的輸出。
-vv:產生比-v更詳細的輸出。
-vvv:產生比-vv更詳細的輸出。
其他功能性選項:
-D:列出可用于抓包的介面。將會列出介面的數值編號和介面名,它們都可以用於”-i”後。
-F:從文件中讀取抓包的運算式。若使用該選項,則命令列中給定的其他運算式都將失效。
-w:將抓包資料輸出到檔中而不是標準輸出。可以同時配合”-G time”選項使得輸出檔每time秒就自動切換到另一個檔。可通過”-r”選項載入這些檔以進行分析和列印。
-r:從給定的資料包檔中讀取資料。使用”-“表示從標準輸入中讀取。