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、抓取源ip
是192.168.1.100
且目的ip
埠是22
的資料報
tcpdump -i eth0 -vnn src host 192.168.1.100 and dst port 22
15、抓取源ip
是192.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、抓取源ip
是192.168.1.100
且目的埠
是22
,或源ip
是192.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抓包工具一樣,支援抓取指定網口 指定目的位址 指定源...