Tcpdump介紹
????Linux環(huán)境下的嗅探器tcpdump是一個多用途的網(wǎng)絡通信監(jiān)測器泛释,可捕獲和顯示報文及其內(nèi)容衫哥。它可用來作為協(xié)議分析器圃伶,在系統(tǒng)及網(wǎng)絡設(shè)備間提供一個最佳途徑來探查通信和(或)連通性問題。大多數(shù)時候毙芜,網(wǎng)絡疑難問題集中在網(wǎng)絡配置問題以及診斷硬件相關(guān)故障忽媒。然而,用戶將常常面對協(xié)議相關(guān)問題并且被迫鉆研特定協(xié)議的機制來解決問題腋粥。使用tcpdump晦雨,被檢查的報文將用長格式或短格式(根據(jù)使用的命令行選項)顯示其信息。tcpdump有一個非常強有力的過濾機制隘冲,可用來查找與指定字符串或規(guī)則相匹配的報文金赦。
????tcpdump提供兩種主要的捕獲模式:雜湊和非雜湊。在雜湊模式下对嚼,捕獲每個在網(wǎng)絡上傳遞的報文夹抗,不管該報文是否發(fā)送到執(zhí)行tcpdump 的系統(tǒng)。tcpdump工具提供了許多命令行選項來選擇捕獲模式纵竖、控制輸出漠烧、指定過濾規(guī)則以及指定其他操作特性杏愤。這些選項根據(jù)它們的功能被分組并且包括以下種類:操作模式、顯示選項已脓、報文過濾選項珊楼。
Tcpdump的使用
centos下安裝Tcpdump
yum install -y tcpdump*
常用的過濾器設(shè)置方法:
地址過濾:
host 192.168.98.169、src 192.168.98.169? # 過濾主機或源地址
dst 192.168.98.169度液、net 111.1.1.0/24? ?# 過濾目的地址
src net 192.168.98.0/24厕宗、dst net 192.168.98.0/24? ?#過濾網(wǎng)段
協(xié)議過濾:udp 、tcp堕担、icmp已慢、esp、not arp等霹购。
端口過濾:port 端口佑惠,例如:port 80
過濾關(guān)鍵字和值之間以空格分隔;各個條件之間用and齐疙、or邏輯符連接膜楷;支持not關(guān)鍵字.例如:
1、tcpdump –i any src 192.168.98.169 or dst 111.1.1.108 and udp and port 2010
2贞奋、tcpdump –i any tcp and not port 21
過濾選項
? -i 指定接口
例:-i eth0赌厅、-i ipsec0 、-i vlan001
? -n? 不把主機的網(wǎng)絡地址轉(zhuǎn)換成名字轿塔。
? -e? 顯示MAC地址特愿。
tcpdump -i any -e -n -c 10
-t? 不顯示時間信息。
tcpdump -i any -t -n -c 10
-tt? 顯示沒有格式化的時間信息催训。
tcpdump -i any -tt -n -c 10
? -c? 收到指定的數(shù)據(jù)包數(shù)目后,就停止顯示
例:-c 10 收到10個包后停止宗收。
tcpdump -i any -c 10
? -s? 顯示信息長度設(shè)置
例:-s 30
tcpdump -i any -s 30 -c 10
? -q? 快速輸出漫拭,僅列出少數(shù)的傳輸協(xié)議信息。
tcpdump -i any -q -c 10
? -v? 詳細顯示指令執(zhí)行過程混稽,使用該選項可以看到數(shù)據(jù)的ttl采驻、ID、長度匈勋、offset礼旅、flag、協(xié)議等信息洽洁。
tcpdump -i any -v host 192.168.98.1 -c 10 and icmp
? -vv? 更詳細顯示指令執(zhí)行過程痘系。
tcpdump -i any -vv host 192.168.98.1 -c 10
? -x? 用十六進制字碼列出數(shù)據(jù)包資料。
tcpdump -i any -x -c 5
? -d? 把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成可閱讀的格式饿自,并傾倒到標準輸出汰翠。
? -dd? 把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成C語言的格式龄坪,并傾倒到標準輸出。
? -ddd? 把編譯過的數(shù)據(jù)包編碼轉(zhuǎn)換成十進制數(shù)字的格式复唤,并傾倒到標準輸出健田。
? -S? 用絕對而非相對數(shù)值列出TCP關(guān)聯(lián)數(shù)。
tcpdump -i any -S tcp -c 5
-w<數(shù)據(jù)包文件>? 把數(shù)據(jù)包數(shù)據(jù)寫入指定的文件佛纫。
-r? 從指定的文件中讀取包(這些包一般通過-w選項產(chǎn)生)妓局。
tcpdump -i any -c 10 -w tcpdump.pcap
tcpdump -i any -c 10 -r tcpdump.pcap
其余常用選項
? -T<數(shù)據(jù)包類型>? 強制將表達方式所指定的數(shù)據(jù)包轉(zhuǎn)譯成設(shè)置的數(shù)據(jù)包類型
? -f? ?用數(shù)字顯示網(wǎng)際網(wǎng)絡地址。
? -F<表達文件>? 指定內(nèi)含表達方式的文件
? -l? 使用標準輸出列的緩沖區(qū)
? -N? 不列出域名
? -O? 不將數(shù)據(jù)包編碼最佳化
? -p? 不讓網(wǎng)絡界面進入混雜模式:只抓發(fā)給給機的數(shù)據(jù)包
注意
各個選項之間用空格分隔呈宇,例如:
tcpdump -i any -c 20 -t -s 200 -n
選項和過濾條件組合如下面的例子:
tcpdump -i any -c 20 -t -s 200 -n host 111.1.1.108 and tcp