Linuxtcpdump命令詳解
tcpdump使用詳解及數(shù)據(jù)包分析
簡(jiǎn)介
用簡(jiǎn)單的話來定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者的定義對(duì)網(wǎng)絡(luò)上的數(shù)據(jù)包進(jìn)行截獲的包分析工具。tcpdump可以將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包的“頭”完全截獲下來提供分析。它支持針對(duì)網(wǎng)絡(luò)層、協(xié)議、主機(jī)、網(wǎng)絡(luò)或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息。
實(shí)用命令實(shí)例
默認(rèn)啟動(dòng)
tcpdump
普通情況下,直接啟動(dòng)tcpdump將監(jiān)視第一個(gè)網(wǎng)絡(luò)接口上所有流過的數(shù)據(jù)包。
監(jiān)視指定網(wǎng)絡(luò)接口的數(shù)據(jù)包
tcpdump -i eth1
如果不指定網(wǎng)卡,默認(rèn)tcpdump只會(huì)監(jiān)視第一個(gè)網(wǎng)絡(luò)接口,一般是eth0,下面的例子都沒有指定網(wǎng)絡(luò)接口。
監(jiān)視指定主機(jī)的數(shù)據(jù)包
打印所有進(jìn)入或離開sundown的數(shù)據(jù)包.
tcpdump hostsundown
也可以指定ip,例如截獲所有210.27.48.1的主機(jī)收到的和發(fā)出的所有的數(shù)據(jù)包
tcpdump host 210.27.48.1
打印helios 與 hot 或者與 ace 之間通信的數(shù)據(jù)包
tcpdump hosthelios and \( hot or ace \)
截獲主機(jī)210.27.48.1和主機(jī)210.27.48.2或210.27.48.3的通信
tcpdump host210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)
打印ace與任何其他主機(jī)之間通信的IP 數(shù)據(jù)包, 但不包括與helios之間的數(shù)據(jù)包.
tcpdump ip hostace and not helios
如果想要獲取主機(jī)210.27.48.1除了和主機(jī)210.27.48.2之外所有主機(jī)通信的ip包,使用命令:
tcpdump ip host210.27.48.1 and ! 210.27.48.2
截獲主機(jī)hostname發(fā)送的所有數(shù)據(jù)
tcpdump -i eth0src host hostname
監(jiān)視所有送到主機(jī)hostname的數(shù)據(jù)包
tcpdump -i eth0dst host hostname
監(jiān)視指定主機(jī)和端口的數(shù)據(jù)包
如果想要獲取主機(jī)210.27.48.1接收或發(fā)出的telnet包,使用如下命令
tcpdump tcp port 23 and host 210.27.48.1
對(duì)本機(jī)的udp 123端口進(jìn)行監(jiān)視123為ntp的服務(wù)端口
tcpdump udp port123
監(jiān)視指定網(wǎng)絡(luò)的數(shù)據(jù)包
打印本地主機(jī)與Berkeley網(wǎng)絡(luò)上的主機(jī)之間的所有通信數(shù)據(jù)包(nt: ucb-ether, 此處可理解為'Berkeley網(wǎng)絡(luò)'的網(wǎng)絡(luò)地址,此表達(dá)式最原始的含義可表達(dá)為: 打印網(wǎng)絡(luò)地址為ucb-ether的所有數(shù)據(jù)包)
tcpdump netucb-ether
打印所有通過網(wǎng)關(guān)snup的ftp數(shù)據(jù)包(注意, 表達(dá)式被單引號(hào)括起來了, 這可以防止shell對(duì)其中的括號(hào)進(jìn)行錯(cuò)誤解析)
tcpdump 'gatewaysnup and (port ftp or ftp-data)'
打印所有源地址或目標(biāo)地址是本地主機(jī)的IP數(shù)據(jù)包
如果網(wǎng)絡(luò)a中的主機(jī)發(fā)現(xiàn)數(shù)據(jù)包的目的主機(jī)不在本地網(wǎng)絡(luò)中,就把數(shù)據(jù)包轉(zhuǎn)發(fā)給自己的網(wǎng)關(guān),再由網(wǎng)關(guān)轉(zhuǎn)發(fā)給網(wǎng)絡(luò)b 的網(wǎng)關(guān),網(wǎng)絡(luò)b的網(wǎng)關(guān)再轉(zhuǎn)發(fā)給網(wǎng)絡(luò)b的某個(gè)主機(jī)。如果網(wǎng)絡(luò)a中的主機(jī)發(fā)現(xiàn)數(shù)據(jù)包的目的主機(jī)不在本地網(wǎng)絡(luò)中,就把數(shù)據(jù)包轉(zhuǎn)發(fā)給它自己的網(wǎng)關(guān),再由網(wǎng)關(guān)轉(zhuǎn)發(fā)給網(wǎng)絡(luò)b的網(wǎng)關(guān),網(wǎng)絡(luò)b的網(wǎng)關(guān)再轉(zhuǎn)發(fā)給網(wǎng)絡(luò)b的某個(gè)主機(jī)。網(wǎng)絡(luò)b的ip地址范圍為“192那么網(wǎng)關(guān)到底是什么呢.254”.1~192.0,就把數(shù)據(jù)包轉(zhuǎn)發(fā)給它自己的網(wǎng)關(guān).0.2.168,tcp/,網(wǎng)絡(luò)b的網(wǎng)關(guān)再轉(zhuǎn)發(fā)給網(wǎng)絡(luò)b的某個(gè)主機(jī)(如附圖所示),兩個(gè)網(wǎng)絡(luò)之間是不能進(jìn)行tcp/.2. 168.255,再由網(wǎng)關(guān)轉(zhuǎn)發(fā)給網(wǎng)絡(luò)b的網(wǎng)關(guān),子網(wǎng)掩碼為255。