centos 7下hping3的编译安装和测试
最新由于调试测试ipv4到ipv6过渡技术中的map技术需要,需要一个工具模拟发送icmp、tcp和udp的ipv4报文,尤其是分片报文,可是环境所限,没有接入思博伦测试仪,所以我就想到了hping3测试工具。
1.hping3下载:
hping的工具官方网站是http://www.hping.org/download.html,大家可以到官方网站溜达一圈看看,可以到官网下载压缩包拷贝到本地,也可以wget http://www.hping.org/hping3-20051105.tar.gz下载到本地;
如果wget下载是出现下面的问题:
在/etc/resolv.conf里加入nameserver 114.114.114.114这个是电信的dns服务器地址;
2.hping3编译安装
tar zxvf hping3-20051105.tar.gz
cd hping3-20051105/
./configure
make
make install
在这个配置和编译安装过程中会发现如下问题,咱们一个一个解决;
1. build byteorder.c时出现如下错误
因为我的centos7虚机镜像是3.10.0-229.el7.x86_64,64位的操作系统:
而bytesex.h没有对64位的支持
所以我们需要加上defined(__x86_64__)来支持64位的系统环境下编译:
2. main.c:29:18: fatal error: pcap.h: No such file or directoryX
我们缺少pcap库,安装yum install -y libpcap libpcap-devel
3. libpcap_stuff.c:20:21: fatal error: net/bpf.h: No such file or directory
创建一个软链接:
ln -sf /usr/include/pcap-bpf.h /usr/include/net/bpf.h,
我们查看pcap-bpf.h文件,其实它包含的
也就是/usr/include/pcap/bpf.h头文件。
4. cannot find -ltcl
我们需要安装tcl库,yum -y install tcl tcl-devel
5. Can't install the man page: /usr/local/confd/man/man8 does not exist
有可能环境没有/usr/local/confd/man8目录,我们可以手动创建此目录,或者自己修改脚本实现(我们需要把INSTALL_MANPATH改为/usr/local/confd/man)
OK,到此为止hping3就已经安装完毕了,我们就可以hping3 -h或者man hping3查看使用方法了,为了方便测试,我自己写了一个shell脚本模拟不停发送icmp、tcp和udp的报文:
每隔5秒就想目的地址发送一个icmp、tcp和udp的报文,后续有时间对hping3的测试展开详细分析。