日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【linux】【tcpdump】linux之tcpdump抓包及wireshark分析详解

發布時間:2023/12/19 linux 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【linux】【tcpdump】linux之tcpdump抓包及wireshark分析详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

linux的tcpdump命令主要用于網絡問題的調試中,通過抓取傳輸過程的數據包進行分析和調試。而wireshark則是一款功能強大,使用方便的數據包分析工具,tcpdump+wireshark組合使用,完美,perfect,讓網絡問題無處遁形。

目錄

1 tcpdump及wireshark基本介紹

1.1 tcpdump

1.2 wireshark

2 tcpdump抓包

2.1 常用命令

2.1.1 默認啟動

2.1.2 監視指定網絡接口的數據包?

2.1.3?監視指定主機的數據包

2.1.4 指定抓包數量

2.1.5 抓包精簡顯示

2.1.6 按照協議類型抓包

2.1.7?指定主機和端口號進行抓包

2.1.8 抓包并保存

2.2 tcpdump詳細參數

3 wireshark導入數據包進行分析


1 tcpdump及wireshark基本介紹

1.1 tcpdump

tcpdump是基于Unix系統的命令行式的數據包嗅探工具,可以抓取流動在網卡上的數據包。默認情況下,tcpdump不會抓取本機內部通訊的報文。根據網絡協議棧的規定,對于報文,即使是目的地是本機,也需要經過本機的網絡協議層,所以本機通訊肯定是通過API進入了內核,并且完成了路由選擇。

linux抓包原理:

Linux抓包是通過注冊一種虛擬的底層網絡協議來完成對網絡報文(準確的說是網絡設備)消息的處理權。當網卡接收到一個網絡報文之后,它會遍歷系統中所有已經注冊的網絡協議,例如以太網協議、x25協議處理模塊來嘗試進行報文的解析處理,這一點和一些文件系統的掛載相似,就是讓系統中所有的已經注冊的文件系統來進行嘗試掛載,如果哪一個認為自己可以處理,那么就完成掛載。當抓包模塊把自己偽裝成一個網絡協議的時候,系統在收到報文的時候就會給這個偽協議一次機會,讓它來對網卡收到的報文進行一次處理,此時該模塊就會趁機對報文進行窺探,也就是把這個報文完完整整的復制一份,假裝是自己接收到的報文,匯報給抓包模塊。

1.2 wireshark

wireshark是一種數據包分析工具,在各種網絡應用中,比如通過思博倫的Spirent_TestCenter(TC)、Ixia測試儀抓取接口報文或者利用本文介紹的linux自帶的tcpdump監聽抓包工具,抓包后導出報文再導入wireshark工具中進行圖形化分析。

2 tcpdump抓包

2.1 常用命令

2.1.1 默認啟動

# tcpdump

普通情況下,直接啟動tcpdump將監視第一個網絡接口上所有流過的數據包。但是由于linux默認網卡的問題,可能出現下面報錯:

tcpdump: packet printing is not supported for link type NFLOG: use -w

此時,可以通過ifconfig或者ip address命令查看網卡信息,并通過指定網口進行數據抓包

2.1.2 監視指定網絡接口的數據包?

# tcpdump -i ens33

2.1.3?監視指定主機的數據包

指定通過網口ens33, 并且進出口IP地址為10.193.12.119的數據包

# tcpdump -i ens33 host 10.193.12.119

指定通過網口ens33, 并且主機10.193.12.12 和主機10.193.17.4 或10.193.12.119之間的通信

# tcpdump -i ens33 -n host 10.193.12.12 and \( 10.193.17.4 or 10.193.12.119 \)

指定通過網口ens33, 并且主機10.193.12.12 和非主機10.193.17.4之間的通信

# tcpdump -i ens33 -n host 10.193.12.12 and ! 10.193.17.4?

指定通過網口ens33, 并且由主機10.193.12.12發送的所有數據

# tcpdump -i ens33 -n src 10.193.12.12

指定通過網口ens33, 并且由主機10.193.12.12接收的所有數據

# tcpdump -i ens33 -n dst 10.193.12.12

2.1.4 指定抓包數量

指定通過網口ens33, 并且由主機10.193.12.12接收的連續5個數據包

# tcpdump -i ens33 -n dst 10.193.12.12 -c 5

2.1.5 抓包精簡顯示

# tcpdump -i ens33 -n dst 10.193.12.12 -c 5 -q

指定通過網口ens33, 并且由主機10.193.12.12接收的連續5個數據包,并采用精簡顯示,可與上圖進行對比

2.1.6 按照協議類型抓包

以ping為例,我們知道ping的協議類型為icmp,我們可以指定icmp協議類型進行抓包

# tcpdump -i ens33 -n icmp?

2.1.7?指定主機和端口號進行抓包

指定網卡ens33,端口號為55555并且ip地址為10.193.12.12的連續10個數據包

# tcpdump -i ens33 -n tcp port 55555 and host 10.193.12.12 -c 10

2.1.8 抓包并保存

抓包并保存package.cap文件,可導出后再導入wireshark進行包分析

# tcpdump -i ens33 -n ?port 55555 and host 10.193.12.12 -c 10 -w package.cap

2.2 tcpdump詳細參數

  • -a 嘗試將網絡和廣播地址轉換成名稱。
  • -c<數據包數目> 收到指定的數據包數目后,就停止進行傾倒操作。
  • -d 把編譯過的數據包編碼轉換成可閱讀的格式,并傾倒到標準輸出。
  • -dd 把編譯過的數據包編碼轉換成C語言的格式,并傾倒到標準輸出。
  • -ddd 把編譯過的數據包編碼轉換成十進制數字的格式,并傾倒到標準輸出。
  • -e 在每列傾倒資料上顯示連接層級的文件頭。
  • -f 用數字顯示網際網絡地址。
  • -F<表達文件> 指定內含表達方式的文件。
  • -i<網絡界面> 使用指定的網絡截面送出數據包。
  • -l 使用標準輸出列的緩沖區。
  • -n 不把主機的網絡地址轉換成名字。
  • -N 不列出域名。
  • -O 不將數據包編碼最佳化。
  • -p 不讓網絡界面進入混雜模式。
  • -q 快速輸出,僅列出少數的傳輸協議信息。
  • -r<數據包文件> 從指定的文件讀取數據包數據。
  • -s<數據包大小> 設置每個數據包的大小。
  • -S 用絕對而非相對數值列出TCP關聯數。
  • -t 在每列傾倒資料上不顯示時間戳記。
  • -tt 在每列傾倒資料上顯示未經格式化的時間戳記。
  • -T<數據包類型> 強制將表達方式所指定的數據包轉譯成設置的數據包類型。
  • -v 詳細顯示指令執行過程。
  • -vv 更詳細顯示指令執行過程。
  • -x 用十六進制字碼列出數據包資料。
  • -w<數據包文件> 把數據包數據寫入指定的文件。

3 wireshark導入數據包進行分析

?

?

總結

以上是生活随笔為你收集整理的【linux】【tcpdump】linux之tcpdump抓包及wireshark分析详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。