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