Wireshark是非常流行的網絡封包分析軟件,可以截取各種網絡數據包,並顯示數據包詳細信息。常用於開發測試過程各種問題定位。
Wireshark軟件安裝
①軟件下載路徑: Wireshark安裝鏈接按照系統版本選擇下載,下載完成後,按照軟件提示一路Next安裝。
②大家可以選擇官網下載,我下載的時候直接用的電腦管家的軟件管理,它上面可以直接下載。我安裝的是中文版的。
所以接下來我將用中文的講解一個簡單的轉包示例
Wireshark 開始,抓包示例
先介紹一個使用wireshark工具抓取ping命令操作的示例,讓讀者可以先上手操作
1、打開Wireshark,主界面如下
2、選擇菜單欄上捕獲-> 選項,勾選WLAN網卡(這裏需要根據各自電腦網卡使用情況選擇,簡單的辦法可以看使用的IP對應的網卡),點擊開始,啓動抓包。
3、wireshark啓動後,wireshark處於抓包狀態中。
4、執行需要抓包的操作,如ping www.baidu.com。
首先我們需要在windows下使用windows+R鍵啓動,輸入cmd,會打開一個命令行窗口,輸入ping www.baidu.com
5、操作完成後相關數據包就抓取到了。爲避免其他無用的數據包影響分析,可以通過在過濾欄設置過濾條件進行數據包列表過濾,獲取結果如下。說明:ip.addr == 39.156.66.18 and icmp 表示只顯示ICPM協議且源主機IP或者目的主機IP爲39.156.66.18的數據包。
6、ping www.baidu.com裝包完成
Wireshakr抓包界面
WireShark 主要分爲這幾個界面
-
Display Filter(顯示過濾器), 用於過濾
-
Packet List Pane(封包列表), 顯示捕獲到的封包, 有源地址和目標地址,端口號。 顏色不同,代表
-
Packet Details Pane(封包詳細信息), 顯示封包中的字段
-
Dissector Pane(16進制數據)
-
Miscellanous(地址欄,雜項)
說明:封包列表中不同的協議使用了不同的顏色區分。協議顏色標識定位在菜單欄視圖->着色規則。
接下來我們說一下抓包中的過濾器,使用過濾是非常重要的, 初學者使用wireshark時,將會得到大量的冗餘信息,在幾千甚至幾萬條記錄中,以至於很難找到自己需要的部分。搞得暈頭轉向。
過濾器會幫助我們在大量的數據中迅速找到我們需要的信息。
過濾器有兩種,
一種是顯示過濾器,就是主界面上那個,用來在捕獲的記錄中找到所需要的記錄
一種是捕獲過濾器,用來過濾捕獲的封包,以免捕獲太多的記錄。 在捕獲 -> 捕獲過濾器中設置
wireshark過濾器表達式的規則
1、抓包過濾器語法和實例
抓包過濾器類型Type(host、net、port)、方向Dir(src、dst)、協議Proto(ether、ip、tcp、udp、http、icmp、ftp等)、邏輯運算符(&& 與、|| 或、!非)
(1)協議過濾
比較簡單,直接在抓包過濾框中直接輸入協議名即可。
TCP,只顯示TCP協議的數據包列表
HTTP,只查看HTTP協議的數據包列表
ICMP,只顯示ICMP協議的數據包列表
(2)IP過濾
host 192.168.1.104
src host 192.168.1.104
dst host 192.168.1.104
(3)端口過濾
port 80
src port 80
dst port 80
(4)邏輯運算符&& 與、|| 或、!非
src host 192.168.1.104 && dst port 80 抓取主機地址爲192.168.1.80、目的端口爲80的數據包
host 192.168.1.104 || host 192.168.1.102 抓取主機爲192.168.1.104或者192.168.1.102的數據包
!broadcast 不抓取廣播數據包
剛開始我們看一個簡單的抓包分析,現在我們用wireshark工具來分析一下Tcp的三次握手
我們先了解一下什麼時Tcp三次握手
開始抓包操作:
1、打開瀏覽器輸入www.huanwei.com
2、用windows+R查看www.huawei.com的ip地址
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200313124332478.png
3、輸入過濾條件 ip.addr == 221.178.0.151
前三個就是Tcp的三次握手
1、第一次握手數據包
客戶端發送一個TCP,標誌位爲SYN,序列號爲0, 代表客戶端請求建立連接。 如下圖。
2、第二次握手
服務器發回確認包, 標誌位爲 SYN,ACK. 將確認序號(Acknowledgement Number)設置爲客戶的I S N加1以.即0+1=1, 如下圖
3、第三次握手
客戶端再次發送確認包(ACK) SYN標誌位爲0,ACK標誌位爲1.並且把服務器發來ACK的序號字段+1,放在確定字段中發送給對方.並且在數據段放寫ISN的+1, 如下圖:
我只講了一下關於數據到達傳輸層建立連接所要經歷的三次握手,後面的過程大家可以用這個軟件自己分析一下!有錯誤的地方,還請大家幫忙指出!