tcpdump之命令總結詳解

2022-09-23 00:24:19 字數 3396 閱讀 4867

預設啟動

tcpdump普通情況下,直接啟動tcpdump將監視第乙個網路介面上所有流過的資料報。

監視指定網路介面的資料報

tcpdump -i eth1

tcpdump -i eth1

如果不指定網絡卡,預設tcpdump只會監視第乙個網路介面,一般是eth0,下面的例子都沒有指定網路介面。

監視指定主機的資料報

列印所有進入或離開sundown的資料報.

tcpdump host sundown

tcpdump host sundown

也可以指定ip,例如截獲所有210.27.48.1的主機收到的和發出的所有的資料報

tcpdump host 210.27.48.1

tcpdump host 210.27.48.1

列印helios 與 hot 或者與 ace 之間通訊的資料報

tcpdump host helios and ( hot or ace )

tcpdump host helios and ( hot or ace )

截獲主機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 )

tcpdump host 210.27.48.1 and(210.27.48.2 or 210.27.48.3 )

列印ace與任何其他主機之間通訊的ip 資料報, 但不包括與helios之間的資料報.

tcpdump ip host ace and not helios

tcpdump ip host ace and not helios

如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通訊的ip包,使用命令:

tcpdump ip host 210.27.48.1 and ! 210.27.48.2

tcpdump ip host 210.27.48.1 and ! 210.27.48.2

截獲主機hostname傳送的所有資料

tcpdump -i eth0 src host hostname

tcpdump -i eth0 src host hostname

監視所有送到主機hostname的資料報

tcpdump -i eth0 dst host hostname

tcpdump -i eth0 dst host hostname

監視指定主機和埠的資料報

如果想要獲取主機210.27.48.1接收或發出的telnet包,使用如下命令

tcpdump tcp port 23 and host 210.27.48.1

tcpdump tcp port 23 and host 210.27.48.1

對本機的udp 123埠進行監視123為ntp的服務埠

tcpdump udp port 123

tcpdump udp port 123

監視指定網路的資料報

列印本地主機與berkeley網路上的主機之間的所有通訊資料報(nt: ucb-ether, 此處可理解為』berkeley網路』的網路位址,此表示式最原始的含義可表達為: 列印網路位址為ucb-ether的所有資料報)

tcpdump net ucb-ether

tcpdump net ucb-ether

列印所有通過閘道器snup的ftp資料報(注意, 表示式被單引號括起來了, 這可以防止shell對其中的括號進行錯誤解析)

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

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

列印所有源位址或目標位址是本地主機的ip資料報

(如果本地網路通過閘道器連到了另一網路, 則另一網路並不能算作本地網路.(nt: 此句翻譯曲折,需補充).localnet 實際使用時要真正替換成本地網路的名字)

tcpdump ip and not net localnet

tcpdump ip and not net localnet

監視指定協議的資料報

列印tcp會話中的的開始和結束資料報, 並且資料報的源或目的不是本地網路上的主機.(nt: localnet, 實際使用時要真正替換成本地網路的名字))

tcpdump 'tcp[tcpflags]

tcpdump 'tcp[tcpflags]

列印所有源或目的埠是80, 網路層協議為ipv4, 並且含有資料,而不是syn,fin以及ack-only等不含資料的資料報.(ipv6的版本的表示式可做練習)

tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]

tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]

(nt: 可理解為, ip[2:2]表示整個ip資料報的長度, (ip[0]&0xf)

成位元組數需要乘以4, 即左移2. (tcp[12]&0xf0)>>4 表示tcp頭的長度, 此域的單位也是32bit, 換算成位元數為 ((tcp[12]&0xf0) >> 4) 即 ((tcp[12]&0xf0)>>2). ((ip[2:2] – ((ip[0]&0xf)>2)) != 0 表示: 整個ip資料報的長度減去ip頭的長度,再減去

tcp頭的長度不為0, 這就意味著, ip資料報中確實是有資料.對於ipv6版本只需考慮ipv6頭中的』payload length』 與 『tcp頭的長度』的差值, 並且其中表達方式』ip』需換成』ip6』.)

列印長度超過576位元組, 並且閘道器位址是snup的ip資料報

tcpdump 'gateway snup and ip[2:2] > 576'

tcpdump 'gateway snup and ip[2:2] > 576'

列印所有ip層廣播或多播的資料報, 但不是物理乙太網層的廣播或多播資料報

tcpdump 'ether[0]

tcpdump 'ether[0]

列印除』echo request』或者』echo reply』型別以外的icmp資料報( 比如,需要列印所有非ping 程式產生的資料報時可用到此表示式 .

(nt: 『echo reuqest』 與 『echo reply』 這兩種型別的icmp資料報通常由ping程式產生))

tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'

tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'

linux之tcpdump命令詳解

簡介 tcpdump dump the traffic on a network,是指根據使用者的定義對網路上的資料報進行截獲的包分析工具。tcpdump可以將網路中傳送的資料報的 頭 完全截獲下來提供分析。它支援針對網路層 協議 主機 網路或埠的過濾,並提供and or not等邏輯語句來幫助你去...

Linux命令 tcpdump詳解

前言 tcpdump 是一款靈活 功能強大的抓包工具,能有效地幫助排查網路故障問題。1.1 檢視是否安裝 2.2 使用工具安裝 sudo yum install y tcpdump 2.1 獲取網絡卡的列表 2.2 引數 i 2.2.1 抓取en0的資料 tcpdump i en0 2.2.2 抓取...

tcpdump命令及輸出詳解

一.使用方法 1.指定型別 host 指定主機 tcpdump host 192.168.100.1 tcpdump host 192.168.100.1 and 192.168.100.2 tcpdump host 192.168.100.1 and 192.168.100.2 or 192.16...