Tcpdump 的簡單用法
tcpdump是Linux命令行下使用最廣泛的網絡分析工具,運行的時候會將網卡運行在混雜模式下,需要root權限才能執行
下面是幾個比較常見的參數:
-w 保持到指定的文件
-i 指定監聽的網卡,缺省顯示第一塊網卡
-nn 以IP方式顯示host
-v 顯示詳細信息
-s 指定數據包大小,缺省是65535
-t 不顯示時間 ,缺省是顯示時間戳
-c 獲取數據包數量,缺省不限制,需要用Ctrl+c來終止
下面是關於命令關鍵字的說明
1、主要包括host,net,port,例如 host 210.27.48.2,指明 210.27.48.2是一台主機,net 202.0.0.0 指明 202.0.0.0是一個網絡地址,port 23 指明端口號是23。如果沒有指定類型,缺省的類型是host.
2、主要包括src , dst ,dst or src, dst and src ,這些關鍵字指明了傳輸的方向。舉例說明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的網絡地址是202.0.0.0 。如果沒有指明方向關鍵字,則缺省是src or dst關鍵字。
3、主要包括fddi,ip,arp,rarp,tcp,udp等類型,指明了監聽的包的協議內容。如果沒有指定任何協議,則tcpdump將會監聽所有協議的信息包。
還有三個邏輯關系
非運算是 'not ' '! ';與運算是'and','&&';或運算 是'or' ,'||';
具體命令實例(192.168.85.128是一台服務器):
1、獲取192.168.85.128的網絡信息
tcpdump host 192.168.85.128
2、指定eth0獲取192.168.85.128的詳細信息,忽略時間,截取包長度為10000,獲取100個數據包,保存到指定文件abc.cap(這個文件可以用第三方工具wireshark打開,並在圖形界面分析)
tcpdump -vnn host 192.168.85.128 -i eth0 -t -s10000 -c100 -w ./abc.cap
3、獲取一個網段的網絡信息
tcpdump net 192.168.85.0/24
4、獲取一個網段的網絡信息,但排除某個IP
tcpdump net 192.168.85.0/24 and ! host 192.168.85.2
5、獲取IP是192.168.85.128的110端口的所有信息(此處包括客戶端連服務器和服務器返回給客戶端兩種)
tcpdump host 192.168.85.128 and port 110
等同於
tcpdump dst or src host 192.168.85.128 and dst or src port 110
6、獲取源IP是192.168.85.128的110端口網絡信息
tcpdump src host 192.168.85.128 and src port 110
7、獲取客戶端IP是192.168.85.1與服務器192.168.85.128的所有通訊信息
tcpdump src host 192.168.85.1 and dst host 192.168.85.128
8、獲取客戶端IP是192.168.85.1與服務器192.168.85.128的所有通訊信息,但不包括22端口
tcpdump src host 192.168.85.1 and dst host 192.168.85.128 and ! port 22
9、獲取客戶端IP是192.168.85.1與服務器192.168.85.128的110端口網絡信息
tcpdump src host 192.168.85.1 and dst host 192.168.85.128 and port 110
當然這只是此命令的用法,但是如何分析獲取的數據, 那就需要比較熟悉TCP/IP協議了
