借助 sniffer 诊断 Linux 网络故障

aotou 2013-04-04

夫运维者、善假于物也、形如 sniffer(嗅探器)

sniffer 在网络安全领域是一把双刃剑、或被黑客作为网络攻击工具、或协助运维诊断网络故障,本文以 Linux 平台下三个常用的网络嗅探器 Tcpdump、Ethereal 和 EtherApe 为例。介绍如何借助 sniffer 来诊断网络故障,从而保障网络高效安全地运行。但由于 sniffer 实在太强大、本文也只是入门性的做些介绍、有兴趣的朋友可进一步学习。

● Tcpdump是一个命令行方式的网络流量监测工具。它诞生的时间较早,是许多图形化嗅探器的雏形

● Ethereal是一个图形化的网络流量监测工具,比命令行方式的Tcpdump友好很多,可以实时地观看捕获过程

● EtherApe也是一个图形化的网络流量监测工具、与Ethereal不同,EtherApe可以通过对主机间的连接进行检测

㈠ Tcpdump

在网络性能急剧下降的时候,可以通过 Tcpdump 来分析原因,找出造成网络阻塞的根源

Tcpdump 能截获网卡上收到的数据包,并能够协助网络管理员对其中的内容进行相应的分析

对于运维人员、了解如何使用 Tcpdump 来捕获感兴趣的数据包是一项必须掌握的基本功

⑴ Tcpdump 安装

GNU/Linux 发行版缺省都会安装、如果没有可到:http://www.tcpdump.org 下载

⑵ Tcpdump 命令行选项

Tcpdump是一个命令行方式的网络嗅探器、如果不进行过滤,过多数量的包会使运维人员很难理清头绪

Tcpdump 常用命令行选项:

-a  :        将网络地址和广播地址转变成容易识别的名字

-d  :        将已截获的数据包的代码以人容易理解的格式输出

-dd :      将已截获的数据包的代码以C程序的格式输出

-ddd:      将已截获的数据包的代码以十进制格式输出

-e  :        输出数据链路层的头部信息

-f  :          将internet地址以数字形式输出

-l  :          将标准输出变为行缓冲方式

-n  :        不将网络地址转换成易识别的主机名,只以数字形式列出主机地址(如IP地址),这样可以避免DNS查询

-t  :        不输出时间戳

-v  :        输出较详细的信息,例如IP包中的TTL和服务类型信息

-vv :      输出详尽的报文信息

-c  :        在捕获指定个数的数据包后退出

-F  :        从指定的文件中读取过滤规则,忽略命令行中指定的其它过滤规则

-i  :        指定监听的网络接口

-r  :        从指定的文件中读取数据包(该文件一般通过-w选项产生)

-w  :      将截获的数据包直接写入指定的文件中,不对其进行分析和输出

-T  :      将截获的数据包直接解释为指定类型的报文

相关推荐