Ubuntu上進行網絡抓包

1.安裝wireshark

終端運行:sudo apt-get install wireshark

2.修改init.lua

直接運行wireshark的話會報錯:

Lua: Error during loading:
[string "/usr/share/wireshark/init.lua"]:45: dofile has been disabled

要對其進行修改,終端運行

sudo gedit /usr/share/wireshark/init.lua

倒數第二行改爲--dofile(DATA_DIR.."console.lua")

3.啓動軟件

終端運行:sudo wireshark

點擊左上角的圖標,接下來會提示選擇網絡端口,我用的是有線,選擇eth0.



4.分析TCP三次握手過程

我們都知道,在正常情況下的,TCP的連接建立是通過三次握手過程來完成的,如下圖展示的一樣:


具體描述是:

第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認;
第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;

 第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。 完成三次握手,客戶端與服務器開始傳送數據.


打開wireshark之後,軟件開始監聽,我們隨便在瀏覽器中點擊一個網站,這個時候電腦就會和別的服務器建立理解,然後就會產生三次握手的報文了。

下面就是我抓到的一些包,看紅線部分:

第一次握手:ack=0,syn=1;客戶向服務器請求。

第二次握手:ack=1,syn=1.服務器回覆。

第三握手:ack=1,syn=0.客戶確認。


參考:結合Wireshark捕獲分組深入理解TCP/IP協議棧之TCP協議(TCP報文格式+三次握手實例)

http://blog.chinaunix.net/uid-9112803-id-3212041.html

發佈了22 篇原創文章 · 獲贊 6 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章