亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

抓包工具tcpdump怎么用

發布時間:2021-11-01 17:40:48 來源:億速云 閱讀:178 作者:小新 欄目:系統運維

小編給大家分享一下抓包工具tcpdump怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

tcpdump采用命令行方式對接口的數據包進行篩選抓取,其豐富特性表現在靈活的表達式上。

不帶任何選項的tcpdump,默認會抓取第一個網絡接口,且只有將tcpdump進程終止才會停止抓包。

例如:

shell> tcpdump -nn -i eth0 icmp

下面是詳細的tcpdump用法。

1.1 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可緩存的數據包的數量,       :從而會導致數據包的丟失,所以在能抓取我們想要的包的前提下,抓取長度越小越好。  輸出選項:  -e:輸出的每行中都將包括數據鏈路層頭部信息,例如源MAC和目標MAC。  -q:快速打印輸出。即打印很少的協議相關信息,從而輸出行都比較簡短。  -X:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出。  -XX:輸出包的頭部數據,會以16進制和ASCII兩種方式同時輸出,更詳細。  -v:當分析和打印的時候,產生詳細的輸出。  -vv:產生比-v更詳細的輸出。  -vvv:產生比-vv更詳細的輸出。  其他功能性選項:  -D:列出可用于抓包的接口。將會列出接口的數值編號和接口名,它們都可以用于"-i"后。  -F:從文件中讀取抓包的表達式。若使用該選項,則命令行中給定的其他表達式都將失效。  -w:將抓包數據輸出到文件中而不是標準輸出。可以同時配合"-G time"選項使得輸出文件每time秒就自動切換到另一個文件。可通過"-r"選項載入這些文件以進行分析和打印。  -r:從給定的數據包文件中讀取數據。使用"-"表示從標準輸入中讀取。

推薦給你:值得收藏!Linux系統常用命令速查手冊

所以常用的選項也就這幾個:

  •  tcpdump -D

  •  tcpdump -c num -i int -nn -XX -vvv

1.2 tcpdump表達式

表達式用于篩選輸出哪些類型的數據包,如果沒有給定表達式,所有的數據包都將輸出,否則只輸出表達式為true的包。在表達式中出現的shell元字符建議使用單引號包圍。

tcpdump的表達式由一個或多個"單元"組成,每個單元一般包含ID的修飾符和一個ID(數字或名稱)。有三種修飾符:

(1).type:指定ID的類型。

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

(2).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的數據包。

(3).proto:通過給定協議限定匹配的數據包類型。

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

所以,一個基本的表達式單元格式為"proto dir type ID"

抓包工具tcpdump怎么用

除了使用修飾符和ID組成的表達式單元,還有關鍵字表達式單元:gateway,broadcast,less,greater以及算術表達式。

表達式單元之間可以使用操作符" and / && / or / || / not / ! "進行連接,從而組成復雜的條件表達式。如"host foo and not port ftp and not port ftp-data",這表示篩選的數據包要滿足"主機為foo且端口不是ftp(端口21)和ftp-data(端口20)的包",常用端口和名字的對應關系可在linux系統中的/etc/service文件中找到。

另外,同樣的修飾符可省略,如"tcp dst port ftp or ftp-data or domain"與"tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain"意義相同,都表示包的協議為tcp且目的端口為ftp或ftp-data或domain(端口53)。

使用括號"()"可以改變表達式的優先級,但需要注意的是括號會被shell解釋,所以應該使用反斜線"\"轉義為"\(\)",在需要的時候,還需要包圍在引號中。

1.3 tcpdump示例

注意,tcpdump只能抓取流經本機的數據包。

(1).默認啟動

tcpdump

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

(2).監視指定網絡接口的數據包

tcpdump -i eth2

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

(3).監視指定主機的數據包,例如所有進入或離開longshuai的數據包

tcpdump host longshuai

(4).打印helios<-->hot或helios<-->ace之間通信的數據包

tcpdump host helios and \( hot or ace \)

(5).打印ace與任何其他主機之間通信的IP數據包,但不包括與helios之間的數據包

tcpdump ip host ace and not helios

(6).截獲主機hostname發送的所有數據

tcpdump src host hostname

(7).監視所有發送到主機hostname的數據包

tcpdump dst host hostname

(8).監視指定主機和端口的數據包

tcpdump tcp port 22 and host hostname

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

tcpdump udp port 123

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

tcpdump -c 10 net 192.168

(11).打印所有通過網關snup的ftp數據包(注意,表達式被單引號括起來了,這可以防止shell對其中的括號進行錯誤解析)

shell> tcpdump 'gateway snup and (port ftp or ftp-data)'

(12).抓取ping包

[root@server2 ~]# tcpdump -c 5 -nn -i eth0 icmp   tcpdump: verbose output suppressed, use -v or -vv for full protocol decode  listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes  12:11:23.273638 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16422, seq 10, length 64  12:11:23.273666 IP 192.168.100.62 > 192.168.100.70: ICMP echo reply, id 16422, seq 10, length 64  12:11:24.356915 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16422, seq 11, length 64  12:11:24.356936 IP 192.168.100.62 > 192.168.100.70: ICMP echo reply, id 16422, seq 11, length 64  12:11:25.440887 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16422, seq 12, length 64  packets captured  packets received by filter  packets dropped by kernel

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

[root@server2 ~]# tcpdump -c 5 -nn -i eth0 icmp and src 192.168.100.62  tcpdump: verbose output suppressed, use -v or -vv for full protocol decode  listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes  12:09:29.957132 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16166, seq 1, length 64  12:09:31.041035 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16166, seq 2, length 64  12:09:32.124562 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16166, seq 3, length 64  12:09:33.208514 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16166, seq 4, length 64  12:09:34.292222 IP 192.168.100.70 > 192.168.100.62: ICMP echo request, id 16166, seq 5, length 64  packets captured  packets received by filter  packets dropped by kernel

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

(13).抓取到本機22端口包

[root@server2 ~]# tcpdump -c 10 -nn -i eth0 tcp dst port 22    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode  listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes  12:06:57.574293 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 535528834, win 2053, length 0  12:06:57.629125 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 193, win 2052, length 0  12:06:57.684688 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 385, win 2051, length 0  12:06:57.738977 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 577, win 2050, length 0  12:06:57.794305 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 769, win 2050, length 0 12:06:57.848720 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 961, win 2049, length 0  12:06:57.904057 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 1153, win 2048, length 0  12:06:57.958477 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 1345, win 2047, length 0  12:06:58.014338 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 1537, win 2053, length 0  12:06:58.069361 IP 192.168.100.1.5788 > 192.168.100.62.22: Flags [.], ack 1729, win 2052, length 0  packets captured  packets received by filter  packets dropped by kernel

(14).解析包數據

[root@server2 ~]# tcpdump -c 2 -q -XX -vvv -nn -i eth0 tcp dst port 22  tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes  12:15:54.788812 IP (tos 0x0, ttl 64, id 19303, offset 0, flags [DF], proto TCP (6), length 40)      192.168.100.1.5788 > 192.168.100.62.22: tcp 0          0x0000:  000c 2908 9234 0050 56c0 0008 0800 4500  ..)..4.PV.....E.          0x0010:  0028 4b67 4000 4006 a5d8 c0a8 6401 c0a8  .(Kg@.@.....d...          0x0020:  643e 169c 0016 2426 5fd6 1fec 2b62 5010  d>....$&_...+bP.          0x0030:  0803 7844 0000 0000 0000 0000            ..xD........  12:15:54.842641 IP (tos 0x0, ttl 64, id 19304, offset 0, flags [DF], proto TCP (6), length 40)      192.168.100.1.5788 > 192.168.100.62.22: tcp 0          0x0000:  000c 2908 9234 0050 56c0 0008 0800 4500  ..)..4.PV.....E.          0x0010:  0028 4b68 4000 4006 a5d7 c0a8 6401 c0a8  .(Kh@.@.....d...          0x0020:  643e 169c 0016 2426 5fd6 1fec 2d62 5010  d>....$&_...-bP.          0x0030:  0801 7646 0000 0000 0000 0000            ..vF........  packets captured  packets received by filter  packets dropped by kernel

以上是“抓包工具tcpdump怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節
推薦閱讀:
  1. tcpdump筆記
  2. Tcpdump使用

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

腾冲县| 农安县| 淮北市| 垫江县| 桂平市| 大冶市| 乾安县| 万全县| 措美县| 张家港市| 东丽区| 镇巴县| 马鞍山市| 互助| 岳普湖县| 沙洋县| 湄潭县| 平乡县| 大安市| 三穗县| 高雄市| 宁河县| 元氏县| 山阴县| 芒康县| 遂溪县| 麻城市| 张家界市| 屯昌县| 芦山县| 荆门市| 凉城县| 固原市| 苍山县| 偏关县| 连平县| 武强县| 常德市| 香港| 资兴市| 元阳县|