分类: LINUX
2011-01-19 20:38:25
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。