下面的例子全是以抓取eth0介面為例,如果不加」-i eth0」是表示抓取第一塊網絡卡。
首先安裝tcpdump包:yum install -y tcpdump
1、抓取包含172.16.1.122的資料報
# tcpdump -i eth0 -vnn host 172.16.1.122
2、抓取包含172.16.1.0/24網段的資料報
# tcpdump -i eth0 -vnn net 172.16.1.0/24
3、抓取包含埠22的資料報
# tcpdump -i eth0 -vnn port 22
4、抓取udp協議的資料報
# tcpdump -i eth0 -vnn udp
5、抓取icmp協議的資料報
# tcpdump -i eth0 -vnn icmp
6、抓取arp協議的資料報
# tcpdump -i eth0 -vnn arp
7、抓取ip協議的資料報
# tcpdump -i eth0 -vnn ip
8、抓取源ip是172.16.1.122資料報。
# tcpdump -i eth0 -vnn src host 172.16.1.122
9、抓取目的ip是172.16.1.122資料報
# tcpdump -i eth0 -vnn dst host 172.16.1.122
10、抓取源埠是22的資料報
# tcpdump -i eth0 -vnn src port 22
11、抓取源ip是172.16.1.253且目的ip是22的資料報
# tcpdump -i eth0 -vnn src host 172.16.1.253 and dst port 22
12、抓取源ip是172.16.1.122或者包含埠是22的資料報
# tcpdump -i eth0 -vnn src host 172.16.1.122 or port 22
13、抓取源ip是172.16.1.122且埠不是22的資料報
[root@ ftp]# tcpdump -i eth0 -vnn src host 172.16.1.122 and not port 22
14、抓取源ip是172.16.1.2且目的埠是22,或源ip是172.16.1.65且目的埠是80的資料報。
# tcpdump -i eth0 -vnn src
host
172.16.1.2an
ddst
port
22srchost172.16.1.2anddstport22
or src
host
172.16.1.65an
ddst
port
80srchost172.16.1.65anddstport80
15、抓取源ip是172.16.1.59且目的埠是22,或源ip是172.16.1.68且目的埠是80的資料報。
# tcpdump -i eth0 -vnn 'src host 172.16.1.59 and dst port 22' or ' src host 172.16.1.68 and dst port 80 '
16、把抓取的資料報記錄存到/tmp/fill檔案中,當抓取100個資料報後就退出程式。
# tcpdump –i eth0 -vnn -w /tmp/fil1 -c 100
17、從/tmp/fill記錄中讀取tcp協議的資料報
# tcpdump –i eth0 -vnn -r /tmp/fil1 tcp
18、從/tmp/fill記錄中讀取包含172.16.1.58的資料報
# tcpdump –i eth0 -vnn -r /tmp/fil1 host 172.16.1.58
tcpdump抓包並儲存成cap檔案
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
首選介紹一下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(簡單網路管理協議;)
當網路出現故障時,由於直接用tcpdump抓包分析有點困難,而且當網路中資料比較多時更不容易分析,使用tcpdump的-w引數+ethereal分析會很好的解決這個問題,具體引數如下:
tcpdump -i eth
1
-c
2000
-w eth
1
.cap
-i eth
1
只抓eth
1
口的資料
-c
2000
代表資料報的個數,也就是只抓
2000
個資料報
-w eth
1
.cap 儲存成cap檔案,方便用ethereal分析
抓完資料報後ftp到你的ftp伺服器,put一下,然後用ethereal軟體開啟就可以很直觀的分析了
注:有時將.cap檔案上傳到ftp伺服器後,發現用ethreal開啟時提示資料報大於
65535
另:有的**提示在tcpdump中用-s
0
命令,例如 tcpdump -i eth
1
-c
2000
-s
0
-w eth
1
.cap,可實際執行該命令時系統卻提示無效的引數,去掉-s
0
引數即可
例子:
[root@localhost cdr]#tcpdump -i eth
0
-t tcp -s
60000
-w diaoxian.cap
[root@localhost cdr]# tcpdump host
58.240
.
72.195
-s
60000
-w x.cap
easyui常用控制項常用方法
easyui常用控制項使用方法 1.文字框 取值 id textbox getvalue 或 id val 2.鏈結按鈕 register 3.日曆控制項 顯示年月日 取值 kssj datebox getvalue 顯示年月日時分秒 取值 regtime datetimebox getvalue ...
常用指令碼 常用指令碼整理
1 addloadevent 網頁載入完成後把多個自己編寫的函式繫結到window.onload事件中 把現有的window.onload事件處理函式的值存入便令oldonload。如果在這個處理函式上還沒有繫結任何函式,就像平時那樣把新函式新增給它。如果在這個處理函式上已經繫結了一些函式,就把新函...
Redis set集合常用常用指令
sadd scard srem smember 檢視指定集合的所有元素 srandmember 隨機抽取指定元素的乙個值 srandmember 隨機抽取指定元素的多個值 spop smove 127.0.0.1 6379 sadd set1 2 3 4 5 6 1 設定集合元素 integer 6...