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

歡迎訪問 生活随笔!

生活随笔

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

linux

Linux网络抓包工具tcpdump

發布時間:2023/12/9 linux 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux网络抓包工具tcpdump 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、tcpdump介紹

tcpdump 是一個Linux的網絡抓包工具。它允許用戶攔截和顯示發送或收到過網絡連接到該計算機的TCP/IP和其他數據包。tcpdump 適用于大多數的類Unix系統操作系統(如linux,BSD等)。

二、安裝&用法說明

2.1、安裝
$ yum -y install tcpdump
2.2、用法說明

tcpdump采用命令行方式,它的命令格式為

tcpdump [ -DenNqvX ] [ -c count ] [ -F file ] [ -i interface ] [ -r file ] [ -s snaplen ] [ -w file ] [ expression ]


抓包選項:

  • -c:指定要抓取的包數量。注意,是最終要獲取這么多個包。例如,指定"-c 10"將獲取10個包,但可能已經處理了100個包,只不過只有10個包是滿足條件的包。
  • -i interface:指定tcpdump需要監聽的接口。若未指定該選項,將從系統接口列表中搜尋編號最小的已配置好的接口(不包括loopback接口,要抓取loopback接口使用tcpdump -i lo),一旦找到第一個符合條件的接口,搜尋馬上結束。可以使用’any’關鍵字表示所有網絡接口。
  • -n:對地址以數字方式顯式,否則顯式為主機名,也就是說-n選項不做主機名解析。
  • -nn:除了-n的作用外,還把端口顯示為數值,否則顯示端口服務名。
  • -N:不打印出host的域名部分。例如tcpdump將會打印’nic’而不是’nic.ddn.mil’。
  • -P:指定要抓取的包是流入還是流出的包。可以給定的值為"in"、“out"和"inout”,默認為"inout"。
  • -s len:設置tcpdump的數據包抓取長度為len,如果不設置默認將會是65535字節。對于要抓取的數據包較大時,長度設置不夠可能會產生包截斷,若出現包截斷,輸出行中會出現"[|proto]"的標志(proto實際會顯示為協議名)。但是抓取len越長,包的處理時間越長,并且會減少tcpdump可緩存的數據包的數量,從而會導致數據包的丟失,所以在能抓取我們想要的包的前提下,抓取長度越小越好。-s0:防止包截斷

輸出選項:

  • -e:輸出的每行中都將包括數據鏈路層頭部信息。例如源MAC和目標MAC。
  • -q:快速打印輸出。即打印很少的協議相關信息,從而輸出行都比較簡短。
  • -X:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出。
  • -A :打印數據報文的 ASCII 值
  • -XX:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出,更詳細。
  • -v:當分析和打印的時候,產生詳細的輸出。
  • -vv:產生比-v更詳細的輸出。
  • -vvv:產生比-vv更詳細的輸出。

其他功能性選項:

  • -D:列出可用于抓包的接口。將會列出接口的數值編號和接口名,它們都可以用于"-i"后。
  • -F:從文件中讀取抓包的表達式。若使用該選項,則命令行中給定的其他表達式都將失效。
  • -w:將抓包數據輸出到文件中而不是標準輸出。可以同時配合"-G time"選項使得輸出文件每time秒就自動切換到另一個文件。可通過"-r"選項載入這些文件以進行分析和打印。
  • -r:從給定的數據包文件中讀取數據。使用"-"表示從標準輸入中讀取。

三種修飾符:

  • type:指定ID的類型。

可以給定的值有host/net/port/portrange。例如"host foo",“net 128.3”,“port 20”,“portrange 6000-6008”。默認的type為host。

  • dir:指定ID的方向。

可以給定的值包括src/dst/src or dst/src and dst,默認為src or dst。例如,"src foo"表示源主機為foo的數據包,"dst net 128.3"表示目標網絡為128.3的數據包,"src or dst port 22"表示源或目的端口為22的數據包。

  • proto:通過給定協議限定匹配的數據包類型。

常用的協議有tcp/udp/arp/ip/ether/icmp等,若未給定協議類型,則匹配所有可能的類型。例如"tcp port 21",“udp portrange 7000-7009”。

三、tcpdump示例

3.1、默認啟動,不帶參數

$ tcpdump

默認情況下,直接啟動tcpdump將監視第一個網絡接口(非lo口)上所有流通的數據包。這樣抓取的結果會非常多,滾動非常快。

3.2、tcpdump -D 命令列出可以抓包的網絡接口

$ tcpdump -D


3.4、監視指定網絡接口的數據包

$ tcpdump -i ens33

如果不指定網卡,默認tcpdump只會監視第一個網絡接口,如ens33。

3.5、對本機的udp 123端口進行監視(123為ntp的服務端口)

$ tcpdump udp port 123

3.6、監視指定網絡的數據包,如本機與192.168網段通信的數據包,"-c 10"表示只抓取10個包

$ tcpdump -c 10 net 192.168

3.7、抓取ping包

$ tcpdump -c 5 -nn -i ens33 icmp

如果明確要抓取主機為192.168.182.130對本機的ping,則使用and操作符。

$ tcpdump -c 5 -nn -i ens33 icmp and src 192.168.182.130


注意不能直接寫icmp src 192.168.182.130,因為icmp協議不支持直接應用host這個type。

3.9、抓取到本機22端口包

$ tcpdump -c 10 -nn -i bond0 tcp dst port 22

4.0、解析包數據

$ tcpdump -c 2 -q -XX -vvv -nn -i bond0 tcp dst port 22


4.1、參數只抓取和特定主機相關的數據包

$ tcpdump -i any -c5 -nn host 192.168.182.152 $ tcpdump -i any -c5 -nn host 192.168.182.130


4.2、保存抓包數據

tcpdump 提供了保存抓包數據的功能以便后續分析數據包,也可以利用wireshark等圖形化工具進行分析。

1)使用 -w 選項來保存數據包而不是在屏幕上顯示出抓取的數據包

$ tcpdump -i any -c10 -nn -w webserver.pcap port 22

該命令將抓取的數據包保存到文件 webserver.pcap。后綴名 pcap 表示文件是抓取的數據包格式。

2)tcpdump 將數據包保存在二進制文件中,所以不能簡單的用文本編輯器去打開它。使用 -r 選項參數來閱讀該文件中的報文內容

$ tcpdump -nn -r webserver.pcap

總結

以上是生活随笔為你收集整理的Linux网络抓包工具tcpdump的全部內容,希望文章能夠幫你解決所遇到的問題。

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