安装libpcap和jnetpcap,并将jnetpcap配置到IDEA中,安装过程中遇到的问题与程序运行时的问题及解决方法。
libpcap安装
- 下载m4、bison、flex与libpcap,分别解压缩,并按照这个顺序(一定要按照这个顺序)分别进入解压缩后的目录下进行安装。在m4安装前
su root
,然后每一个工具的安装都是三个步骤:./configure
make
make install
。
这个过程详细的话可以看这位大佬的博客,非常详细:https://blog.csdn.net/yu314092706/article/details/54140292 - 如果在make时报EFO错误,说明文件下载时出错,重新下载并解压缩。
- 如果在make时报错“Please port gnulib freadahead.c to your platform”,先后执行这两条指令:
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
后echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
再继续make编译与make install安装。
jnetpcap安装
- 官网下载,解压缩(不需要三步安装)
- 将libjnetpcap.so移动到/usr/lib
mv libjnetpcap.so /usr/lib/libjnetpcap.so
jnetpcap配置到开发环境IDEA中
-
file --> Project Structure
-
modules --> dependencies -->+
-
JARs
-
找到jnetpcap解压缩目录下的jar,导入,点击左边的小方框,然后apply
如果在执行抓包程序时报错动态库连接失败!(具体看自己需要的版本)
-
如果报错
libjnetpcap.so: libpcap.so.0.9: 无法打开共享对象文件:没有那个文件或目录 -
到libjnetpcap.so的目录下查看它需要连接的库,先
cd /usr/lib
然后ldd libjnetpcap.so
,这条指令后会显示它需要的动态库,其中只有libpcap.so.0.9的信息是not found。解决方法: -
第一步,找到安装好的libpcap.so.xxx,将名字改成libpcap.so.0.9(0.9是我需要的版本,根据自己的报错信息改成对应的名字),指令为
mv libpcap.so.1.10.1 libpcap.so.0.9
-
第二步,将这个文件移动到/usr/lib64下,指令:
mv libpcap.so.0.9 /usr/lib64/libpcap.so.0.9
。 -
第三步,编辑ld.so.conf文件,添加libpcap.so.0.9的目录:先
vim /etc/ld.so.conf
(最好直接复制,自己输入的话注意是Ld,L小写看起来可能像大写的I),按i开启编辑,在文件最后面输入/usr/lib64
,Esc退出,:wq
保存并退出。(修改文件需要root权限) -
第四步,输入指令
ldconfig
-
再次回到/usr/lib,
ldd libjnetpcap.so
查看,发现libpcap.so.0.9显示信息已经是具体的信息,不是not found。 -
如果失败,可以额外尝试:在/usr/lib64中查找是不是有其他版本的libpcap.so文件,删除掉多余的。