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