在以前工作中和教学中,如果使用网络截包软件,一般使用都是使用Windows 下的图形的软件,如Sniffer Pro /Ethereal/EtherPeek ,Linux 下字符界面的TCPDump 操作实现太难记了,而且演示,分析,培训效果都不好.也曾试图安装了LINUX的图形界面的ethereal未成功,就停止安装了.
换了一家新的机构任职,这里全部采用RHEL5作为基本的操作系统.这样安装一个Linux的图形界面的截包软件的任务就迫在眉睫,没这个我后面协议分析,SOCKET编程包的传输,TCP三次握手都没有直观演示了。逼得我必须解决这一问题。
因为最新版是已经换成,所以最先安装这个包试试。一开始发现官方网站没有针对RHEL5 的RPM下载,后来在互联网找到这两个链接:
其中wireshark-gnome-1.1.2-1.pre1.i386.rpm是基于gnome的图形界面,wireshark-1.1.2-1.pre1.i386.rpm 是核心库。后者要先安装。
但安装后有如下提示
即安装wireShark-gnome出现问题 ,尝试安装libportaudio.从网上找rpm安装需要先安装libjack,安装libjack后出现大家都极为痛恨rpm 版本过低的提示.即需要rpm 4.4.6更高版本提示
[root@rhel5 tmp]# rpm -ivh libjack0-0.116.2-4.1.i586.rpm warning: libjack0-0.116.2-4.1.i586.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID 3dbdc284 error: Failed dependencies: libc.so.6(GLIBC_2.7) is needed by libjack0-0.116.2-4.1.i586 rpmlib(PayloadIsLzma) <= 4.4.6-1 is needed by libjack0-0.116.2-4.1.i586
|
这个原因也简单,即RHEL自带的是RPM version 4.4.2.3,但网上并无4.4.6以上的rpmlib的安装包.下了rpmlib 最新版的源码,费尽周折编译,make install后仍然提示如下.
其中又试了ethereal 的源码编译安装.但因为ethereal 需要很多较老的库.RHEL已经更新.发现安装更麻烦,这种方法取消掉.
后又试用 wireShark 编译,但是发现其支持库GTK+的编译安装更为麻烦.装了半天仍未成功.而我只是想用一个工具用来教学和使用.这么麻烦还是算了.
当然还有用yum从互联网自动下载方法,但这个方法要求机器能接入互联网.对于未上网的教室的多台机器这样安装还是非常麻烦.
快速安装方法
首先使用rpm 的--force --nodeps 强行安装,忽略依赖包.
rpm -i --force --nodeps wireshark-1.1.2-1.pre1.i386.rpm
注:最早是采用rpm -ivh wireshark-1.1.2-1.pre1.i386.rpm安装,但是如果这样安装旧的wireshark版本,如1.0.2将会导致新版本的库安装不上。一种解决办法是强行安装,另一种是把旧版本清除再安装新版本
rpm -i --force --nodeps wireshark-gnome-1.1.2-1.pre1.i386.rpm
然后再将其的支持包用源码编译.
一般的包RHEL已经自带,第三方所缺的包有 pcap/portaudio
这两种在x86都是简单的 tar /configure /make /make install
libpcap 的编译
[root@rhel5 libpcap-1.0.0]# make gcc -O2 -fPIC -I. -DHAVE_CONFIG_H -D_U_="__attribute__((unused))" -c ./fad-getad.c In file included from ./fad-getad.c:67: /usr/include/linux/if_packet.h:52: error: expected specifier-qualifier-list before '__u32' |
解决办法 #include 加入到 /usr/include/linux/if_packet.h
portaudio编译安装简单.
这一些动态库一般安装在/usr/local/lib下.执行时可以用如下方法调用
export LD_LIBRARY_PATH=/usr/local/lib;wireshark
还有一种方法是把 /usr/local/lib加入到 /etc/ld.so.conf中,这样这个目录所以有动态库都不需要特殊操作即可调用
vim /etc/ld.so.conf #加一行/usr/local/lib
ldconfig #让路径生效
这是RHEL运行的界面
跟WINDOWS界面比较一下
快速使用手册
-
点击第一个列表,可以选择一个网卡抓包,LINUX版的可以抓lo,就是本机内部之间包交流的包.这给开发带来不少方便,WireShark也能抓无线网卡的包了.
- 抓包时界面,分为三栏,上面是包列表,中间包分析结果,下面包原始数据罗列,最方便功能是原始数能按BYTE拷贝出来.这样在C语言构造一个包,拿这现成包改改就行
安装问题解决
如果提示 libwsutil.so 找不到,这个往往是因为系统中有老的版本wireshark 在系统导致安装冲突.可以先卸掉这个老版本,再安装.如果无法卸载,可以强行安装wireshark库
rpm -i --force --nodeps wireshark-1.1.2-1.pre1.i386.rpm
阅读(4115) | 评论(0) | 转发(0) |