如何借助Sniffer来诊断Linux网络故障?
夫运维者、善假于物也、形如 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 : 将截获的数据包直接解释为指定类型的报文
⑶ 例子
① 从指定的网络接口截获5个 ARP 数据包,并且不将网络地址转换成主机名
view plaincopy [root@Rocky ~]# tcpdump arp -i eth0 -c 5 -n tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 10:59:46.728425 arp who-has 192.168.1.1 tell 192.168.1.110 11:00:17.315719 arp who-has 192.168.1.1 tell 192.168.1.111 11:00:17.317911 arp who-has 192.168.1.1 tell 192.168.1.111 11:00:17.418271 arp who-has 192.168.1.1 tell 192.168.1.111 11:00:17.418980 arp who-has 192.168.1.1 tell 192.168.1.111 5 packets captured 5 packets received by filter 0 packets dropped by kernel
10:59:46:为截获数据包的时间
728425 :为毫秒数
arp:表明该数据包时 ARP 请求
who-has 192.168.1.1 tell 192.168.1.110:表示 110 请求 1 的 MAC 地址
② 截获主机“9.185.10.57”所有收到和发出的数据包
tcpdump host 9.185.10.57
③ 截获在主机“9.185.10.57”和主机“9.185.10.58”或“9.185.10.59”之间传递的数据包
tcpdump host 9.185.10.57 and / /(9.185.10.58 or 9.185.10.59/)
④ 截获主机“9.185.10.57”和除主机“9.186.10.58”外所有其它主机之间通信的IP数据包
tcpdump ip host 9.185.10.57 and ! 9.185.10.58
⑤ 截获主机“9.185.10.57”接收或发出的FTP(端口号为21)数据包
tcpdump tcp port 21 host 9.185.10.57
⑥ 如果怀疑系统正受到(DoS)攻击,可通过截获发往本机的所有ICMP包,确定目前是否有大量的ping流向服务器
tcpdump icmp -n -i eth0
㈡ Ethereal
⑴ 下载并安装
***请确认 libpcap 包已经安装****
# cp ethereal-0.9.9.tar.bz2 /usr/local/src/ # cd /usr/local/src/ # bzip2 -d ethereal-0.9.9.tar.bz2 # tar xvf ethereal-0.9.9.tar # cd ethereal-0.9.9 # ./configure # make # make install
⑵ 简单的捕获过程
大概可分 2 步:
Ⅰ 点击 filter :可直接在预置的条件里选择、也可自己新建、比如:
Filter name:Rocky
Filter string: host 124.127.185.106
Ⅱ 点击 capture 、在 capture filter 选项框里面填上过滤条件
㈢ EtherApe
⑴ 安装
# gunzip etherape-0.9.11.tar.gz # tar vxf etherape-0.9.11.tar # cd etherape-0.9.11 # ./configure # make # make install
⑵ 简单的捕获过程
大致如下:
Ⅰ 单击“Pref.”按钮,打开“Preferences”,在“Capture”属性页中“Capture filter”
Ⅱ 如果对IP数据包感兴趣,这时可以将EtherApe切换到IP模式。单击“Capture”菜单,选择“Mode”菜单项
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/58146.html
linux相关文章
- Linux处理大文件的方法(linux打开大文件)
- 掌握Linux系统 快速打开文件夹(linux如何打开文件夹)
- 服务Linux 上启动 Telnet 服务的指南(linux启动telnet)
- Linux网络连接指南:快速实现安全上网!(linux如何连接网络)
- Linux系统如何关闭端口(linux端口关闭)
- Linux 优酷客户端安装指南(linux优酷客户端)
- Linux下活力无限:颜色代码篇(linux颜色代码)
- 如何在Linux中查看根目录?(linux查看根目录命令)
- Linux IP命令:浅析实用功能(linux的ip命令)
- Linux下如何去除文件中的空格(linux去除空格)
- 命令如何使用LINUX删除LN命令(linux删除ln)
- 升级电脑,从U盘装载Linux系统(u盘装linux)
- Linux系统中如何移除服务(linux移除服务)
- Linux安装LZMA压缩工具(linux安装lzma)
- 版本Linux分类及其分支版本介绍(linux的分支)
- 从Linux系统启动DB2数据库(linux启动db2)
- 改变Linux系统:如何关闭防火墙(关闭linux的防火墙)
- 简单教程:如何在Linux系统上安装五笔输入法?(linux安装五笔)
- 如何在Linux下搭建完善的安卓开发环境(linux搭建安卓开发环境)
- 深入探究Linux:如何安装系统?(深度linux系统安装)
- Linux下删除程序的简单命令指南(linux删除程序命令)
- Linux安装软件的简单方法(linux如何下载软件)
- 如何在Linux上挂载光纤存储设备?(linux挂载光纤存储)
- 如何在Linux上实现服务自启动(linux服务自启动)
- 教你如何在Linux系统下简单高效地复制文件(linux系统 复制文件)
- 如何在Linux中导入cer证书?(linux导入cer证书)
- 深入探究: Linux如何获取服务器时间(linux获取服务器时间)
- 老男孩使用Linux,成为IT新英雄(老男孩 linux)
- Linux如何更改Mac电脑上的设置(linux 修改 mac)