在Linux下,當(dāng)我們需要抓取網(wǎng)絡(luò)數(shù)據(jù)包分析時,通常是使用tcpdump抓取網(wǎng)絡(luò)raw數(shù)據(jù)包存到一個文件,然后下載到本地使用wireshark界面網(wǎng)絡(luò)分析工具進(jìn)行網(wǎng)絡(luò)包分析。
最近才發(fā)現(xiàn),原來wireshark也提供有Linux命令行工具-tshark。tshark不僅有抓包的功能,還帶了解析各種協(xié)議的能力。下面我們以兩個實(shí)例來介紹tshark工具。
1、安裝方法
??? CentOS: yum install -y wireshark
??? Ubuntu: apt-get install -y tshark
2、實(shí)時打印當(dāng)前http請求的url(包括域名)
??? tshark -s 512 -i eth0 -n -f 'tcp dst port 80' -R 'http.host and http.request.uri' -T fields -e http.host -e http.request.uri -l | tr -d '\t'
下面介紹參數(shù)含義:
??? -s 512 :只抓取前512個字節(jié)數(shù)據(jù)
??? -i eth0 :捕獲eth0網(wǎng)卡
??? -n :禁止網(wǎng)絡(luò)對象名稱解析
??? -f 'tcp dst port 80' :只捕捉協(xié)議為tcp,目的端口為80的數(shù)據(jù)包
??? -R 'http.host and http.request.uri' :過濾出http.host和http.request.uri
??? -T fields -e http.host -e http.request.uri :打印http.host和http.request.uri
??? -l :輸出到標(biāo)準(zhǔn)輸出
3、實(shí)時打印當(dāng)前mysql查詢語句
??? tshark -s 512 -i eth0 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e mysql.query
下面介紹參數(shù)含義:
??? -s 512 :只抓取前512個字節(jié)數(shù)據(jù)
??? -i eth0 :捕獲eth0網(wǎng)卡
??? -n :禁止網(wǎng)絡(luò)對象名稱解析
??? -f 'tcp dst port 3306' :只捕捉協(xié)議為tcp,目的端口為3306的數(shù)據(jù)包
??? -R 'mysql.query' :過濾出mysql.query
??? -T fields -e mysql.query :打印mysql查詢語句
tshark使用-f來指定捕捉包過濾規(guī)則,規(guī)則與tcpdump一樣,可以通過命令man pcap-filter來查得。
tshark使用-R來過濾已捕捉到的包,與界面板wireshark的左上角Filter一致。
?
來自: https://www.centos.bz/2014/07/linux-commandline-capture-packets-tshark-wireshark/
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
