1、命令:tcpdump
2、命令引數
-a —— 將網路位址和廣播位址轉變成名字-d —— 將匹配資訊包的**以人們能夠理解的彙編格式給出
-dd —— 將匹配資訊包的**以c語言程式段的格式給出
-ddd —— 將匹配資訊包的**以十進位制的形式給出
-e —— 在輸出行列印出資料鏈路層的頭部資訊
-f
—— 將外部的internet位址以數字的形式列印出來
-l —— 使標準輸出變為緩衝行形式
-n —— 不把網路位址轉換成名字
-t —— 在輸出的每一行不列印時間戳
-v —— 輸出乙個稍微詳細的資訊,例如在ip包中可以包括ttl和服務型別的資訊
-vv —— 輸出詳細的報文資訊
-c —— 在收到指定的包的數目後,tcpdump就會停止
-f
—— 從指定的檔案中讀取表示式,忽略其它的表示式
-i —— 指定監聽的網路介面
-r —— 從指定的檔案中讀取包(這些包一般通過-w選項產生)
-w —— 直接將包寫入檔案中,並不分析和列印出來
-t —— 將監聽到的包直接解釋為指定的型別的報文,常見的型別有rpc (遠端過程呼叫)和snmp(簡單網路管理協議)
3、例項
下面的例子全是以抓取eth0介面為例,如果不加」-i eth0」是表示抓取所有的介面包括lo。首先安裝tcpdump包:yum install -y tcpdump
1、抓取包含172.16.1.122的資料報
#tcpdump -i eth0 -vnn host 172.16.1.122
2、抓取包含172.16.1.0/24網段的資料報
#tcpdump -i eth0 -vnn net 172.16.1.0/24
3、抓取包含埠22的資料報
#tcpdump -i eth0 -vnn port 22
4、抓取udp協議的資料報
#tcpdump -i eth0 -vnn udp
5、抓取icmp協議的資料報
#tcpdump -i eth0 -vnn icmp
6、抓取arp協議的資料報
#tcpdump -i eth0 -vnn arp
7、抓取ip協議的資料報
#tcpdump -i eth0 -vnn ip
8、抓取源ip是172.16.1.122資料報。
#tcpdump -i eth0 -vnn src host 172.16.1.122
9、抓取目的ip是172.16.1.122資料報
#tcpdump -i eth0 -vnn dst host 172.16.1.122
10、抓取源埠是22的資料報
#tcpdump -i eth0 -vnn src port 22
11、抓取源ip是172.16.1.253且目的ip是22的資料報
#tcpdump -i eth0 -vnn src host 172.16.1.253 and dst port 22
12、抓取源ip是172.16.1.122或者包含埠是22的資料報
#tcpdump -i eth0 -vnn src host 172.16.1.122 or port 22
13、抓取源ip是172.16.1.122且埠不是22的資料報
[root@ ftp]#
tcpdump -i eth0 -vnn src host 172.16.1.122 and not port 22
14、抓取源ip是172.16.1.2且目的埠是22,或源ip是172.16.1.65且目的埠是80的資料報。
#tcpdump -i eth0 -vnn srchost172.16.1.2anddstport22 or srchost172.16.1.65anddstport80
15、抓取源ip是172.16.1.59且目的埠是22,或源ip是172.16.1.68且目的埠是80的資料報。
#tcpdump -i eth0 -vnn 'src host 172.16.1.59 and dst port 22' or ' src host 172.16.1.68 and dst port 80 '
16、把抓取的資料報記錄存到/tmp/fill檔案中,當抓取100個資料報後就退出程式。
#tcpdump –i eth0 -vnn -w /tmp/fil1 -c 100
17、從/tmp/fill記錄中讀取tcp協議的資料報
#tcpdump –i eth0 -vnn -r /tmp/fil1 tcp
18、從/tmp/fill記錄中讀取包含172.16.1.58的資料報
#tcpdump –i eth0 -vnn -r /tmp/fil1 host 172.16.1.58
1、想要截獲所有210.27.48.1的主機收到的和發出的所有的資料報:#tcpdump host 210.27.48.1
2、想要截獲主機210.27.48.1 和主機210.27.48.2 或210.27.48.3的通訊,使用命令:(在命令列中使用 括號時,一定要轉義)
#tcpdump host 210.27.48.1 and (210.27.48.2 or 210.27.48.3 )
3、如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通訊的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
4、如果想要獲取主機210.27.48.1接收或發出的telnet包,使用如下命令:
#tcpdump tcp port 23 and host 210.27.48.1
5、tcpdump -i eth0 -nn
6、tcpdump -i eth0 -nn -p vrrp
7、tcpdump -i eth0 -nn host 10.10.52.160
也可以使用wireshark來進行抓包。
linux tcpdump命令詳解
tcpdump,就是 dump the traffic on a network,根據使用者的定義對網路上的資料報進行截獲的包分析工具。tcpdump可以將網路中傳送的資料報的 頭 完全截獲下來提供分析。它支援針對網路層 協議 主機 網路或埠的過濾,並提供and or not等邏輯語句來幫助你去掉無...
Linux tcpdump命令詳解
簡介 用簡單的話來定義tcpdump,就是 dump the traffic on a network,根據使用者的定義對網路上的資料報進行截獲的包分析工具。tcpdump可以將網路中傳送的資料報的 頭 完全截獲下來提供分析。它支援針對網路層 協議 主機 網路或埠的過濾,並提供and or not等...
Linux tcpdump 命令使用詳解
在日常工作中,我們總是能遇上各種各樣奇怪的網路問題,比如我這台機器怎麼 ping 不通了,我的 ssh 怎麼又連不上了,這個控制台怎麼又訪問不了了等等各種網路問題,當然有時候可以通過 ping telnet arp 這些命令和工具來排查和解決,但這些都比不上去抓個包來得實在,也就是下面要分享的 tc...