歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux下Wireshark的網絡抓包使用方法

Linux下Wireshark的網絡抓包使用方法

日期:2017/3/1 17:35:28   编辑:Linux技術

Wireshark是世界上最流行的網絡分析工具。這個強大的工具可以捕捉網絡中的數據,並為用戶提供關於網絡和上層協議的各種信息。
與很多其他網絡工具一樣,Wireshark也使用pcap network library來進行封包捕捉。

Wireshark的優勢:

- 安裝方便。

- 簡單易用的界面。

- 提供豐富的功能。

Wireshark的原名是Ethereal,新名字是2006年起用的。當時Ethereal的主要開發者決定離開他原來供職的公司,並繼續開發這個軟件。但由於Ethereal這個名稱的使用權已經被原來那個公司注冊,Wireshark這個新名字也就應運而生了。

Wireshark目前世界上最受歡迎的協議分析軟件,利用它可將捕獲到的各種各樣協議的網絡二進制數據流翻譯為人們容易讀懂和理解的文字和圖表等形式,極大地方便了對網絡活動的監測分析和教學實驗。它有十分豐富和強大的統計分析功能,可在Windows,Linux 和UNIX等系統上運行。此軟件於1998年由美國Gerald Combs首創研發,原名Ethereal,至今世界各國已有100多位網絡專家和軟件人員正在共同參與此軟件的升級完善和維護。它的名稱於2006年5月由原Ethereal改為Wireshark。至今它的更新升級速度大約每2~3個月推出一個新的版本,2007年9月時的版本號為0.99.6。但是升級後軟件的主要功能和使用方法保持不變。它是一個開源代碼的免費軟件,任何人都可自由下載,也可參與共同開發。

Wireshark網絡協議分析軟件可以十分方便直觀地應用於計算機網絡原理和網絡安全的教學實驗,網絡的日常安全監測,網絡性能參數測試,網絡惡意代碼的捕獲分析,網絡用戶的行為監測,黑客活動的追蹤等。因此它在世界范圍的網絡管理專家,信息安全專家,軟件和硬件開發人員中,以及美國的一些知名大學的網絡原理和信息安全技術的教學、科研和實驗工作中得到廣泛的應用。

在安裝新舊版本軟件包和使用中,Ethereal與Wireshark的一些細微區別如下:

(1)Ethereal軟件安裝包中包含的網絡數據采集軟件是winpcap 3.0的版本,保存捕獲數據時只能用英文的文件名,文件名默認後綴為 .cap

(2)Wireshark軟件安裝包中,目前包含的網絡數據采集軟件是winpcap 4.0版本,保存捕獲數據時可以用中文的文件名,文件名默認後綴為 .pcap。另外,Wireshark可以翻譯解釋更多的網絡通信協議數據,對網絡數據流具有更好的統計分析功能,在網絡安全教學和日常網絡監管工作中使用更方便,而基本使用方法仍然與Ethereal相同。

winpcap(windows packet capture)是windows平台下一個免費,公共的網絡訪問系統。開發winpcap這個項目的目的在於為win32應用程序提供訪問網絡底層的能力。

在Linux下,當我們需要抓取網絡數據包分析時,通常是使用tcpdump抓取網絡raw數據包存到一個文件,然後下載到本地使用wireshark界面網絡分析工具進行網絡包分析。
最近才發現,原來wireshark也提供有Linux命令行工具-tshark。tshark不僅有抓包的功能,還帶了解析各種協議的能力。下面我們以兩個實例來介紹tshark工具。
1、安裝方法
CentOS:
復制代碼代碼如下:yum install -y wireshark
Ubuntu:
復制代碼代碼如下:apt-get install -y tshark
2、實時打印當前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'

下面介紹參數含義:
-s 512 :只抓取前512個字節數據
-i eth0 :捕獲eth0網卡
-n :禁止網絡對象名稱解析
-f ‘tcp dst port 80′ :只捕捉協議為tcp,目的端口為80的數據包
-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 :輸出到標准輸出
3、實時打印當前mysql查詢語句

復制代碼代碼如下:
tshark -s 512 -i eth0 -n -f 'tcp dst port 3306' -R 'mysql.query' -T fields -e mysql.query

下面介紹參數含義:
-s 512 :只抓取前512個字節數據
-i eth0 :捕獲eth0網卡
-n :禁止網絡對象名稱解析
-f ‘tcp dst port 3306′ :只捕捉協議為tcp,目的端口為3306的數據包
-R ‘mysql.query’ :過濾出mysql.query
-T fields -e mysql.query :打印mysql查詢語句
tshark使用-f來指定捕捉包過濾規則,規則與tcpdump一樣,可以通過命令man pcap-filter來查得。
tshark使用-R來過濾已捕捉到的包,與界面版wireshark的左上角Filter一致。

Copyright © Linux教程網 All Rights Reserved