Linux 基礎教程 31-tcpdump命令-3

来源:https://www.cnblogs.com/surpassme/archive/2018/08/01/9404297.html
-Advertisement-
Play Games

    經過前面的學習,tcpdump的用法相信應該都掌握了,今天我們來學習對tcpdump輸出內容的學習和瞭解。我們以第一個示例進行講解如下所示: IP協議包分析 第一行 這裡僅僅是提示如果想獲取和查看更詳細的命令可以嘗試添加的參數。 第二行 tcpdump監聽的網路設備介面和 ...


    經過前面的學習,tcpdump的用法相信應該都掌握了,今天我們來學習對tcpdump輸出內容的學習和瞭解。我們以第一個示例進行講解如下所示:

IP協議包分析

[root@localhost ~]# tcpdump -i ens5f1 -nn -X 'port 22' -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes
22:34:11.334916 IP 192.168.8.8.22 > 112.64.61.186.37035: Flags [P.], seq 3341229570:3341229782, ack 1999159071, win 31152, length 212
    0x0000:  4510 00fc 7e99 4000 4006 44a8 c0a8 0808  E...~.@[email protected].....
    0x0010:  7040 3dba 0016 90ab c727 1e02 7728 bf1f  p@=......'..w(..
    0x0020:  5018 79b0 7799 0000 0000 00b0 823d 4cf1  P.y.w........=L.
    0x0030:  1108 58fc 3686 2bd2 5220 fe37 85ab 74cc  ..X.6.+.R..7..t.
    0x0040:  bfb1 8831 7d1c 3b57 52ae aa91 28a2 67d8  ...1}.;WR...(.g.
    0x0050:  08fb a257 7fc8 7186 39dc d266 3d32 cce8  ...W..q.9..f=2..
    0x0060:  3eb7 130b a7d3 833b 59c9 bdf8 2141 6863  >......;Y...!Ahc
    0x0070:  7cae 25ff 459e c94a a635 7098 6925 db48  |.%.E..J.5p.i%.H
    0x0080:  a9b0 32ab 5393 737f cf8c f2ed b47a 7d8b  ..2.S.s......z}.
    0x0090:  346c 39df 3ecc d2b0 e0ad 5104 272d 6513  4l9.>.....Q.'-e.
    0x00a0:  4b8d 5ee6 6c7d 9477 e40b 8637 996a bb5a  K.^.l}.w...7.j.Z
    0x00b0:  471a 2ac4 3335 266d 0485 2e52 b2c2 f6e8  G.*.35&m...R....
    0x00c0:  0549 5ae0 9c7b ad45 da0a eef2 1ccb b2ac  .IZ..{.E........
    0x00d0:  a4a2 0a96 cc5f 238c 9570 0d15 984e 6f58  ....._#..p...NoX
    0x00e0:  d8ff 8034 1165 cf44 02e4 ed6b 631e 2548  ...4.e.D...kc.%H
    0x00f0:  56fd 4c8a 664c e5ee d845 2e50            V.L.fL...E.P
1 packet captured
1 packet received by filter
0 packets dropped by kernel

第一行

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes

這裡僅僅是提示如果想獲取和查看更詳細的命令可以嘗試添加的參數。

第二行

listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes

tcpdump監聽的網路設備介面和鏈路層類型(乙太網)要抓包的大小限制

第三行

22:34:11.334916 IP 192.168.8.8.22 > 112.64.61.186.37035: Flags [P.], seq 3341229570:3341229782, ack 1999159071, win 31152, length 212
  • 22:34:11.334916 :抓包的時間
  • IP : 抓取的數據包位於網路層,即IP包
  • 192.168.8.8.22:抓取包的源IP地址和埠
  • > :數據的傳輸方向
  • 112.64.61.186.37035:抓取的包目的地IP和埠
  • Flags和後面內容:建立三次握手信息

第4~16行

    0x0000:  4510 00fc 7e99 4000 4006 44a8 c0a8 0808  E...~.@[email protected].....
    0x0010:  7040 3dba 0016 90ab c727 1e02 7728 bf1f  p@=......'..w(..
    0x0020:  5018 79b0 7799 0000 0000 00b0 823d 4cf1  P.y.w........=L.
    0x0030:  1108 58fc 3686 2bd2 5220 fe37 85ab 74cc  ..X.6.+.R..7..t.
    0x0040:  bfb1 8831 7d1c 3b57 52ae aa91 28a2 67d8  ...1}.;WR...(.g.
    0x0050:  08fb a257 7fc8 7186 39dc d266 3d32 cce8  ...W..q.9..f=2..
    0x0060:  3eb7 130b a7d3 833b 59c9 bdf8 2141 6863  >......;Y...!Ahc
    0x0070:  7cae 25ff 459e c94a a635 7098 6925 db48  |.%.E..J.5p.i%.H
    0x0080:  a9b0 32ab 5393 737f cf8c f2ed b47a 7d8b  ..2.S.s......z}.
    0x0090:  346c 39df 3ecc d2b0 e0ad 5104 272d 6513  4l9.>.....Q.'-e.
    0x00a0:  4b8d 5ee6 6c7d 9477 e40b 8637 996a bb5a  K.^.l}.w...7.j.Z
    0x00b0:  471a 2ac4 3335 266d 0485 2e52 b2c2 f6e8  G.*.35&m...R....
    0x00c0:  0549 5ae0 9c7b ad45 da0a eef2 1ccb b2ac  .IZ..{.E........
    0x00d0:  a4a2 0a96 cc5f 238c 9570 0d15 984e 6f58  ....._#..p...NoX
    0x00e0:  d8ff 8034 1165 cf44 02e4 ed6b 631e 2548  ...4.e.D...kc.%H
    0x00f0:  56fd 4c8a 664c e5ee d845 2e50            V.L.fL...E.P

以上這些是IP包的內容,左側是16進位,右側是ASCII部分。如果想看到這些具體的數據則需要查看前一期中TCP數據報的格式。

  • 4510
    4:IP版本,此處代表為IPv4
    5:代表首部長度,此處代表為20B
    10:代表協議的服務類型
  • 00fc
    表示數據總長度,00FC:代表總長度為252B
  • 7e99
    表示標識,如果IP包的大小超過了數據鏈路層的MTU限制,就需要對IP包進行拆分,此時就要用這個域來表示哪些包在拆分前是同一組的。此處的標識域為0x7e99
  • 4
    再繼續向後看,就是3位標誌位,用來控制IP抓分後重新組裝用,最低位為MF(More Fragment),中間位為DF(Don't Fragment)不能分片
  • MF=1:表示後面還有分片
  • MF=0:表示這已經是若幹分片中的最後一個
  • DF=0:允許分片
  • 000:片偏移量,本次沒有拆分包,所以全為0
  • 40:TTL(Time To Life),數據包在網路中的壽命。此處為0x40,進位為64,表示如果中間超過了這個路由節點,則認為目的不可達,中間路由器將進行丟棄處理。
  • 06:指上一層協議類型,此處為0x06,可以看出協議編號為6,代表為TCP協議。
  • 44a8:表示IP首部校驗和,此處為0x44a8
  • c0a8 0808:IP源地址,此處為192.168.8.8
  • 7040 3dba:IP目的地址:此處為:112.64.60.186
    到此,數據包頭部已經全部解釋完成。

UDP協議包分析

    我們先來抓取一個UDP包,如下所示:

[root@localhost ~]# tcpdump -i ens5f1 -nn -X 'udp' -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes
18:18:12.499924 IP 192.168.8.101.137 > 192.168.8.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
    0x0000:  4500 004e 31ab 0000 8011 763f c0a8 0865  E..N1.....v?...e
    0x0010:  c0a8 08ff 0089 0089 003a 1277 ddc1 0110  .........:.w....
    0x0020:  0001 0000 0000 0000 2046 4b46 4545 4643  .........FKFEEFC
    0x0030:  4e44 4344 4144 4244 4744 4144 4944 4144  NDCDADBDGDADIDAD
    0x0040:  4245 4945 4645 4841 4100 0020 0001       BEIEFEHAA.....
1 packet captured
1 packet received by filter
0 packets dropped by kernel

相對於IP包來講,UDP的包要簡單很多,其首部總共就8個位元組。而UDP位於傳輸層,自然前面也增加了IP包相關的頭部。

  • 0089:源埠為0x0089即:137
  • 0089:目的埠為0x0089即:137
  • 003a:UDP包的總長度,即58位元組,去掉首部的8位元組後,真正可以用來傳輸的只有50位元組。
  • 1277:UDP校驗和。為0x1277

本文同步在微信訂閱號上發佈,如各位小伙伴們喜歡我的文章,也可以關註我的微信訂閱號:woaitest,或掃描下麵的二維碼添加關註:
MyQRCode.jpg


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • [TOC] 一、前言 在C 學習過程中,多線程一直都是比較難的部分,因為其中涉及到很多與操作系統相關的知識。比如:如何進行多線程編程、線程同步、線程鎖、線程非同步、並行編程、並行集合等等的知識。所以筆者在學習過程中也是遇到了重重困難,而且一直沒有好的教程。 但是筆者在瀏覽GitHub時,發現有大佬已經 ...
  • [引用BobWei的blog:https://www.cnblogs.com/BObwei/p/4869157.html] 在C#中,ArrayList,List都能夠存儲一組對象,那麼這三者到底有什麼樣的區別呢。 數組 數組在C#中是最早出現的。它在記憶體中是連續的存儲的,所以索引速度很快,而且賦值 ...
  • 升訊威微信營銷系統(微信第三方平臺) 線上體驗:http://wxcm.eeipo.cn/開源地址:https://github.com/iccb1013/Sheng.WeixinConstruction說明:有問題上QQ群交流 QQ群:173459027 作者最初的期望是實現一個微信雲平臺,類似於 ...
  • 廢話不多說,直接上圖看效果,左上角是原圖片大小,右邊是局部放大的效果 主要代碼貼在下麵,picBox是原圖控制項名,picBox_Show是放大控制項名 private void picBox_Paint(object sender, PaintEventArgs e) { if (isMove == ...
  • 這個標題我也不知道咋起,意思說一下你就明白。 1. 對官方控制項的模板進行定製修改,以滿足多樣化需求,還有漂亮的UI 比如ListView,GridView等。 2. 在設計的情況下並沒有這個控制項,而在運行時的時候出現了它 比如微軟的廣告組件,他們叫AdControl,在運行時其實就是一個WebVie ...
  • 分享出來的初衷,我分享一下最近我在小黃豆CRM2.0版本(小黃豆CRM+v2.0.925.3)上加的功能,如果有類似需求的,可以把功能代碼發你,節約你的開發時間。(這是在小黃豆開源免費CRM①群2317681發出的聲音) 小黃豆CRM是一款開源免費的客戶關係管理系統,是為幫助企業快速成長髮展而開發的 ...
  • 1.發佈項目是出現這個錯誤網上找了有兩種方式, 一種是重新安裝VS2015的ClickOnce程式 第二種是修改項目文件的簽名 右擊項目文件的屬性,選擇簽名,然後把紅框內去掉,保存即可。 ...
  • 出錯信息如上所示 解決方案: 首先停止防火牆 然後安裝iptables-services 設置開機啟動防火牆 可以使用下麵命令管理iptables 這時可以保存防火牆規則了 如果你之後要使用firewall的話: 執行命令,即可實現取消服務的鎖定 # systemctl unmask firewal ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...