亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux系統中網絡數據存儲工具命令TcpDump的使用

添加時間:2016-4-8 21:37:45  添加: 思海網絡 
Linux中強大的網絡數據采集分析工具——TcpDump
tcpdump采用命令行方式,它的命令格式為:
tcpdump [ -adeflnNOpqStvx ] [ -c 數量 ] [ -F 文件名 ]
[ -i 網絡接口 ] [ -r 文件名] [ -s snaplen ]
[ -T 類型 ] [ -w 文件名 ] [表達式 ]

1. tcpdump的選項介紹
-a    將網絡地址和廣播地址轉變成名字;
-d    將匹配信息包的代碼以人們能夠理解的匯編格式給出;
-dd    將匹配信息包的代碼以c語言程序段的格式給出;
-ddd    將匹配信息包的代碼以十進制的形式給出;
-e    在輸出行打印出數據鏈路層的頭部信息;
-f    將外部的Internet地址以數字的形式打印出來;
-l    使標準輸出變為緩沖行形式;
-n    不把網絡地址轉換成名字;
-t    在輸出的每一行不打印時間戳;
-v    輸出一個稍微詳細的信息,例如在ip包中可以包括ttl和服務類型的信息;
-vv    輸出詳細的報文信息;
-c    在收到指定的包的數目后,tcpdump就會停止;
-F    從指定的文件中讀取表達式,忽略其它的表達式;
-i    指定監聽的網絡接口;
-r    從指定的文件中讀取包(這些包一般通過-w選項產生);
-w    直接將包寫入文件中,并不分析和打印出來;
-T    將監聽到的包直接解釋為指定的類型的報文,常見的類型有rpc (遠程過程
調用)和snmp(簡單       網絡管理協議;)

2. tcpdump的表達式介紹
表達式是一個正則表達式,tcpdump利用它作為過濾報文的條件,如果一個報文滿足表
達式的條件,則這個報文將會被捕獲。如果沒有給出任何條件,則網絡上所有的信息包將會
被截獲。
在表達式中一般如下幾種類型的關鍵字,一種是關于類型的關鍵字,主要包括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.
第二種是確定傳輸方向的關鍵字,主要包括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關鍵字。
第三種是協議的關鍵字,主要包括fddi,ip ,arp,rarp,tcp,udp等類型。Fddi指明是在
FDDI(分布式光纖數據接口網絡)上的特定的網絡協議,實際上它是"ether"的別名,fddi和e
ther具有類似的源地址和目的地址,所以可以將fddi協議包當作ether的包進行處理和分析。
其他的幾個關鍵字就是指明了監聽的包的協議內容。如果沒有指定任何協議,則tcpdump將會
監聽所有協議的信息包。
除了這三種類型的關鍵字之外,其他重要的關鍵字如下:gateway, broadcast,less,
greater,還有三種邏輯運算,取非運算是 'not ' '! ', 與運算是'and','&&';或運算 是'o
r' ,'||';
這些關鍵字可以組合起來構成強大的組合條件來滿足人們的需要,下面舉幾個例子來
說明。
(1)想要截獲所有210.27.48.1 的主機收到的和發出的所有的數據包:



代碼如下:#tcpdump host 210.27.48.1 
(2) 想要截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通信,使用命令
:(在命令行中適用   括號時,一定要


代碼如下:#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) 
(3) 如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通信的ip包
,使用命令:



代碼如下:#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
(4)如果想要獲取主機210.27.48.1接收或發出的telnet包,使用如下命令:


代碼如下:#tcpdump tcp port 23 host 210.27.48.1
3. tcpdump 的輸出結果介紹
下面我們介紹幾種典型的tcpdump命令的輸出信息
(1) 數據鏈路層頭信息
使用命令#tcpdump --e host ice
ice 是一臺裝有linux的主機,她的MAC地址是0:90:27:58:AF:1A
H219是一臺裝有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一條
命令的輸出結果如下所示:
21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ice.
telne
t 0:0(0) ack 22535 win 8760 (DF)
分析:21:50:12是顯示的時間, 847509是ID號,eth0 <表示從網絡接口eth0 接受該
數據包,eth0 >表示從網絡接口設備發送數據包, 8:0:20:79:5b:46是主機H219的MAC地址,它
表明是從源地址H219發來的數據包. 0:90:27:58:af:1a是主機ICE的MAC地址,表示該數據包的
目的地址是ICE . ip 是表明該數據包是IP數據包,60 是數據包的長度, h219.33357 > ice.
telnet 表明該數據包是從主機H219的33357端口發往主機ICE的TELNET(23)端口. ack 22535
表明對序列號是222535的包進行響應. win 8760表明發送窗口的大小是8760.
(2) ARP包的TCPDUMP輸出信息
使用命令#tcpdump arp 
得到的輸出結果是:
22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)
22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af
:1a)
分析: 22:32:42是時間戳, 802509是ID號, eth0 >表明從主機發出該數據包, arp表明是
ARP請求包, who-has route tell ice表明是主機ICE請求主機ROUTE的MAC地址。 0:90:27:5
8:af:1a是主機ICE的MAC地址。
(3) TCP包的輸出信息
用TCPDUMP捕獲的TCP包的一般輸出信息是:
src > dst: flags data-seqno ack window urgent options
src > dst:表明從源地址到目的地址, flags是TCP包中的標志信息,S 是SYN標志, F (F
IN), P (PUSH) , R (RST) "." (沒有標記); data-seqno是數據包中的數據的順序號, ack是
下次期望的順序號, window是接收緩存的窗口大小, urgent表明數據包中是否有緊急指針. 
Options是選項.
(4) UDP包的輸出信息
用TCPDUMP捕獲的UDP包的一般輸出信息是:
route.port1 > ice.port2: udp lenth
UDP十分簡單,上面的輸出行表明從主機ROUTE的port1端口發出的一個UDP數據包到主機
ICE的port2端口,類型是UDP, 包的長度是lenth

4.實例



代碼如下:
[root@www ~]# tcpdump -i eth1 #監視指定網絡接口的數據包



代碼如下:
[root@www ~]# tcpdump host webserver #打印所有進入或離開webserver的數據包.



代碼如下:
[root@www ~]# tcpdump host 210.27.48.1 #也可以指定ip,例如截獲所有210.27.48.1 的主機收到的和發出的所有的數據包



代碼如下:
[root@www ~]# tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) #截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通信



代碼如下:
[root@www ~]# tcpdump ip host 210.27.48.1 and ! 210.27.48.2 #獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通信的ip包



代碼如下:
[root@www ~]# tcpdump -i eth0 src host webserver #截獲主機webserver發送的所有數據



代碼如下:
[root@www ~]# tcpdump -i eth0 dst host webserver #監視所有送到主機webserver的數據包




代碼如下:
[root@www ~]# tcpdump tcp port 23 host 210.27.48.1 #獲取主機210.27.48.1接收或發出的telnet包



代碼如下:
[root@www ~]# tcpdump udp port 123 #對本機的udp 123 端口進行監視 123 為ntp的服務端口



代碼如下:
[root@www ~]# tcpdump net ucb-ether #打印本地主機與Berkeley網絡上的主機之間的所有通信數據包(nt: ucb-ether, 此處可理解為'Berkeley網絡'的網絡地址,此表達式最原始的含義可表達為: 打印網絡地址為ucb-ether的所有數據包)



代碼如下:
[root@www ~]# tcpdump 'gateway snup and (port ftp or ftp-data)' #打印所有通過網關snup的ftp數據包(注意, 表達式被單引號括起來了, 這可以防止shell對其中的括號進行錯誤解析)



代碼如下:
[root@www ~]# tcpdump ip and not net localnet #打印所有源地址或目標地址是本地主機的IP數據包



代碼如下:
[root@www ~]# tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet' #打印TCP會話中的的開始和結束數據包, 并且數據包的源或目的不是本地網絡上的主機.(nt: localnet, 實際使用時要真正替換成本地網絡的名字))



代碼如下:
[root@www ~]# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2 -="" tcp="" 12="" 0xf0="">>2)) != 0)' #打印所有源或目的端口是80, 網絡層協議為IPv4, 并且含有數據,而不是SYN,FIN以及ACK-only等不含數據的數據包



代碼如下:
[root@www ~]# tcpdump 'gateway snup and ip[2:2] > 576' #打印長度超過576字節, 并且網關地址是snup的IP數據包



代碼如下:
[root@www ~]# tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224' #打印所有IP層廣播或多播的數據包, 但不是物理以太網層的廣播或多播數據報



代碼如下:
[root@www ~]# tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply' #打印除'echo request'或者'echo reply'類型以外的ICMP數據包



代碼如下:
[root@www ~]# tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap

#(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個參數的位置,用來過濾數據報的類型
#(2)-i eth1 : 只抓經過接口eth1的包
#(3)-t : 不顯示時間戳
#(4)-s 0 : 抓取數據包時默認抓取長度為68字節。加上-S 0 后可以抓到完整的數據包
#(5)-c 100 : 只抓取100個數據包
#(6)dst port ! 22 : 不抓取目標端口是22的數據包
#(7)src net 192.168.1.0/24 : 數據包的源網絡地址為192.168.1.0/24
#(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析


代碼如下:
[root@www ~]# tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 #使用tcpdump抓取HTTP包

關鍵字:Linux、系統、網絡數據
分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站