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