Linux系統 tcpdump 抓包命令

2021-10-21 11:32:47 字數 4332 閱讀 5335

tcpdump是linux系統下的乙個強大的命令,可以將網路中傳送的資料報完全截獲下來提供分析。它支援針對網路層、協議、主機、網路或埠的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的資訊。

本教程對tcpdump命令使用進行講解說明,通過本教程您可以學會linux系統下使用tcpdump命令進行網路抓包,實現對資料報進行捕獲分析。

首先我們對linux系統下tcpdump命令格式進行乙個介紹說明,在下面的使用教程中講到tcpdump命令示例時,您就可以參考tcpdump命令引數說明進行學習。

該命令示例在centos release 6.10 (final) 中tcpdump演示

語法:

tcpdump [ -addefijkllnnopqrstuuvxx ]

[ -b buffer_size ]

[ -c count ]

[ -c file_size ]

[ -g rotate_seconds ]

[ -f file

][ -i inte***ce ]

[ -j tstamp_type ]

[ -m module ]

[ -m secret ]

[ -q|-p in

|out|inout ]

[ -r file

][ -s snaplen ]

[ -t type

][ -w file

][ -w filecount ]

[ -e spi@ipaddr algo:secret,... ]

[ -y datalinktype ]

[ -z postrotate-command ]

[ -z user ]

[ expression ]

命令列引數介紹:

linux系統下執行tcpdump命令需要root賬號或者具備sudo許可權的賬號,否則執行tcpdump命令說,系統會提示tcpdump: no suitable device found

在下面的例子中,-i eth0引數表示只抓取 eth0 介面資料報,不加-i eth0是表示抓取所有的介面包括lo。

01、抓取所有網路包,並在terminal中顯示抓取的結果,將包以十六進製制的形式顯示。

tcpdump
02、抓取所有的網路包,並存到result.cap檔案中。

tcpdump -w result.cap
03、抓取所有的經過eth0網絡卡的網路包,並存到result.cap檔案中。

tcpdump -i eth0 -w result.cap
04、抓取源位址是192.168.1.100的包,並將結果儲存到result.cap檔案中。

tcpdump src host 192.168.1.100 -w result.cap
05、抓取位址包含是192.168.1.100的包,並將結果儲存到result.cap檔案中。

tcpdump host 192.168.1.100 -w result.cap
06、抓取目的位址包含是192.168.1.100的包,並將結果儲存到result.cap檔案中。

tcpdump dest host 192.168.1.100 -w result.cap
07、抓取主機位址為192.168.1.100的資料報

tcpdump -i eth0 -vnn host 192.168.1.100
08、抓取包含192.168.1.0/24網段的資料報

tcpdump -i eth0 -vnn net 192.168.1.0/24
09、抓取網絡卡eth0上所有包含埠22的資料報

tcpdump -i eth0 -vnn port 22
10、抓取指定協議格式的資料報,協議格式可以是「udp,icmp,arp,ip」中的任何一種,例如以下命令:

tcpdump udp  -i eth0 -vnn
11、抓取經過eth0網絡卡的源 ip 是192.168.1.100資料報,src引數表示源。

tcpdump -i eth0 -vnn src host 192.168.1.100
12、抓取經過eth0網絡卡目的 ip 是192.168.1.100資料報,dst引數表示目的。

tcpdump -i eth0 -vnn dst host 192.168.1.100
13、抓取源22的資料報

tcpdump -i eth0 -vnn src port 22
14、抓取源ip192.168.1.100且目的ip埠是22的資料報

tcpdump -i eth0 -vnn src host 192.168.1.100 and dst port 22
15、抓取源ip192.168.1.100或者22

tcpdump -i eth0 -vnn src host 192.168.1.100 or port 22
16、抓取源ip192.168.1.100並且不是22

tcpdump -i eth0 -vnn src host 192.168.1.100 and not port 22
17、抓取源ip192.168.1.100且目的22,或源ip192.168.1.102目的埠80的資料報。

tcpdump -i eth0 -vnn ( src host 192.168.1.100 and dst port 22 ) or ( src host 192.168.1.102 and dst port 80 )
18、把抓取的資料報記錄存到/tmp/result檔案中,當抓取100個資料報後就退出程式。

tcpdump –i eth0 -vnn -w /tmp/result -c 100
19、從/tmp/result記錄中讀取tcp協議的資料報

tcpdump -i eth0  tcp  -vnn -r /tmp/result
20、想要截獲所有192.168.1.100的主機收到的和發出的所有的資料報:

tcpdump host 192.168.1.100
21、如果想要獲取主機192.168.1.100除了和主機192.168.1.101之外所有主機通訊的ip包,使用命令:

tcpdump ip host 192.168.1.100 and ! 192.168.1.101
22、如果想要獲取主機192.168.1.100接收或發出的telnet包,使用如下命令:

tcpdump tcp port 23 host 192.168.1.100

Linux系統網路抓包工具 tcpdump

linux抓包是通過註冊一種虛擬的底層網路協議來完成對網路報文 準確的是網路裝置 訊息的處理權。命令 netstat i 1 型別的關鍵字 2 確定方向的關鍵字 3 協議的關鍵字 預設是所有協議的資訊包 4 其它關鍵字 5 常用表示式 6 引數詳解 root bigdata tcpdump host...

linux系統的抓包工具tcpdump的使用

是windows系統下的wireshark工具的linux系統版本。name tcpdump dump traffic on a network synopsis tcpdump addefijkllnnopqrstuuvxx b buffer size c count c file size g ...

Linux系統下如何用tcpdump抓包?

很多時候我們的系統部署在linux系統上面,在一些情況下定位問題就需要檢視各個系統之間傳送資料報文是否正常,下面我就簡單講解一下如何使用tcpdump抓包 tcpdump是linux下面的乙個開源的抓包工具,和windows下面的wireshark抓包工具一樣,支援抓取指定網口 指定目的位址 指定源...