Linux測(cè)試工具tcpdump執(zhí)行相關(guān)功能的命令
Linux測(cè)試工具tcpdump命令用于監(jiān)視TCP/IP連接并直接讀取數(shù)據(jù)鏈路層的數(shù)據(jù)包頭。您可以指定哪些數(shù)據(jù)包被監(jiān)視、哪些控制要顯示格式。例如我們要監(jiān)視所有Ethernet上來(lái)往的通信,執(zhí)行下述命令:tcpdump -i eth0 ,下面我們來(lái)看看具體內(nèi)容。
即使是在一個(gè)相對(duì)平靜的網(wǎng)絡(luò)上,也有很多的通信,所以我們可能只需要得到我們感興趣的那些數(shù)據(jù)包的信息。在一般情況下,TCP/IP棧只為本地主機(jī)接收入站的數(shù)據(jù)包綁定同時(shí)忽略網(wǎng)絡(luò)上的其它計(jì)算機(jī)編址(除非您使用的是一臺(tái)路由器)。當(dāng)運(yùn)行tcpdump命令時(shí),它會(huì)將TCP/IP棧設(shè)置為 promiscuous模式。該模式可接收所有的數(shù)據(jù)包并使其有效顯示。如果我們關(guān)心的只是我們本地主機(jī)的通信情況,一種方法是使用“-p”參數(shù)禁止 promiscuous模式,還有一種方法就是指定主機(jī)名:
tcpdump -i eth0 host hostname
此時(shí),系統(tǒng)將只對(duì)名為hostname的主機(jī)的通信數(shù)據(jù)包進(jìn)行監(jiān)視。主機(jī)名可以是本地主機(jī),也可以是網(wǎng)絡(luò)上的任何一臺(tái)計(jì)算機(jī)。下面的命令可以讀取主機(jī)hostname發(fā)送的所有數(shù)據(jù):
tcpdump -i eth0 src host hostname
下面的命令可以L(fǎng)inux測(cè)試工具監(jiān)視所有送到主機(jī)hostname的數(shù)據(jù)包:
tcpdump -i eth0 dst host hostname
我們還可以L(fǎng)inux測(cè)試工具監(jiān)視通過(guò)指定網(wǎng)關(guān)的數(shù)據(jù)包:
tcpdump -i eth0 gateway Gatewayname
如果你還想Linux測(cè)試工具監(jiān)視編址到指定端口的TCP或UDP數(shù)據(jù)包,那么執(zhí)行以下命令:
tcpdump -i eth0 host hostname and port 80
該命令將顯示從每個(gè)數(shù)據(jù)包傳出的頭和來(lái)自主機(jī)hostname對(duì)端口80的編址。端口80是系統(tǒng)默認(rèn)的HTTP服務(wù)端口號(hào)。如果我們只需要列出送到80端口的數(shù)據(jù)包,用dst port;如果我們只希望看到返回80端口的數(shù)據(jù)包,用src port。
【編輯推薦】